Ankündigung

Einklappen
Keine Ankündigung bisher.

Gira OS Connect funktionierte nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Gira OS Connect funktionierte nicht

    Anwendungsbeschreibung:

    In einem EFH wird über eine unterbrechungsfreie Stromversorgung (USV) die KNX-Spannungsversorgung, Homeserver, Türstelle, Netzwerk, Telefonanlage und zwei Desktop-Computer mit Strom versorgt. Bei einem Stromausfall sollen die beiden Desktop-Computer ausgeschaltet werden, um die maximale Dauer der Notstromversorgung für die anderen Komponenten zu verlängern.

    Umfeld:

    USV mit effektiv 900 Wh
    Gira Homeserver 4
    HS Experte 4.1.1
    iMAC mit OS X Yosemite 10.10.5
    Gira OS Connect 1.4

    Zielsetzung:

    Wenn ein Stromausfall erkannt wird (230V-Binäreingang) sollen die beiden Desktop-Computer ausgeschaltet werden. Um Datenverlust zu vermeiden sollen die Computer zuvor in den Schlafmodus versetzt werden. Anschließend werden über einen KNX-Schaltaktor die Computer stromlos geschaltet.

    Sobald der Stromausfall beendet wird, wird der Strom für die Computer wieder eingeschaltet.

    Installation:

    Auf den beiden Computern wird Gira OS Connect installiert. Im Homeserver wird über eine Logiksteuerung im Fall eines Stromausfalls das Skript sleep.spct auf den beiden Computern ausgeführt. Das Installieren von Gira OS Connect und das Definieren der Logiksteuerung hat anhand der von Gira mitgelieferten Beschreibung einwandfrei und auf Anhieb funktioniert. Beim tatsächlichen Ausführen des Skriptes gab es jedoch ein Problem:

    Der Homeserver hat das Skript korrekt angestoßen. Siehe Ausgabe debug (Event-Senden):

    16.12.2015 22:16:30 (Prot: TCP) (IP: 192.168.xx.xx) (Port: 7016)
    (Len: 12) 0x73 0x6c 0x65 0x65 0x70 0x2e 0x73 0x63 0x70 0x74 0xd 0xa
    sleep.scpt
    (OK: 1)

    Auf dem Computer geschah jedoch nichts - zumindest ging der Computer nicht in den Ruhezustand. Die Konsole sagt:


    Mi. 16.12.2015 22:16:31,093 GiraOSConnectServer[98742]: Socket 2 accepting connection.
    Mi. 16.12.2015 22:16:31,093 GiraOSConnectServer[98742]: Socket 2 successfully accepted connection from 192.168.xx.xx 36027.
    Mi. 16.12.2015 22:16:31,093 GiraOSConnectServer[98742]: Socket 2 sent command: sleep.spct
    Mi. 16.12.2015 22:16:31,093 GiraOSConnectServer[98742]: Try to run /Users/xxx/Gira Sample Scripts/sleep.spct
    Mi. 16.12.2015 22:16:31,094 GiraOSConnectServer[98742]: Extension not allowed or invalid command, execution aborted!
    Mi. 16.12.2015 22:16:31,094 GiraOSConnectServer[98742]: Socket will disconnect without error.

    Problemlösung:

    Beim Skript sleep.spct müssen die Unix-Execution-Bits gesetzt sein. Dies kann durch den Terminal-Befehl

    chmod 755 sleep.scpt

    gesetzt werden. (Beim Installieren von Gira OS Connect wurden diese mit 644 bereitgestellt.)

    Anschließend funktionierte es korrekt. Die Konsole sagt dann:

    Mi. 16.12.2015 22:45:34,650 GiraOSConnectServer[98742]: Socket 6 accepting connection.
    Mi. 16.12.2015 22:45:34,650 GiraOSConnectServer[98742]: Socket 6 successfully accepted connection from 192.168.xx.xx 39494.
    Mi. 16.12.2015 22:45:34,651 GiraOSConnectServer[98742]: Socket 6 sent command: sleep.scpt
    Mi. 16.12.2015 22:45:34,651 GiraOSConnectServer[98742]: Try to run /Users/xxx/Gira Sample Scripts/sleep.scpt
    Mi. 16.12.2015 22:45:34,651 GiraOSConnectServer[98742]: Extension allowed, try to execute...
    Mi. 16.12.2015 22:45:34,651 GiraOSConnectServer[98742]: Launching applescript task...
    Mi. 16.12.2015 22:45:34,661 GiraOSConnectServer[98742]: Release applescript task...
    Mi. 16.12.2015 22:45:34,661 GiraOSConnectServer[98742]: Socket will disconnect without error.

    Erweiterung:

    Jetzt will ich nur noch das Skript sleep.scpt erweitern, so dass vor dem Aktivieren des Ruhezustands eine Meldung ausgegeben wird. Dies soll verhindern, dass der Benutzer über den dunkel werdenden Bildschirm irritiert ist, und durch Drücken einer Taste den Ruhezustand gleich wieder beendet.

    #2
    Und was ist deine konkrete Frage ?
    Danke und LG, Dariusz
    GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

    Kommentar


      #3
      Oder brauchst du nur das ?

      set antwort to display dialog „Stromausfall, drücke sie OK um runter zu fahren" buttons {"Abbrechen", "Ok"} default button "Abbrechen" with title „sleep.scpt"

      if button returned of antwort = "Ok" then
      --Programmcode, der bei "Ok" ausgeführt werden soll
      end if
      Danke und LG, Dariusz
      GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

      Kommentar


        #4
        Hallo coliflower,

        da habe ich mich wohl falsch ausgedrückt. Sorry. Ich wollte nur, dass wenn jemand anderes das Problem auch hat, dass er dann über die Suche eine Lösung findet. Ich habe mich längers mit diesem Problem auseinandergesetzt, und nirgends eine Hilfe gefunden. Erst aus Verzweiflung habe ich den chmod ausprobiert.

        Aber trotzdem vielen Dank. Insbesondere für den Code-Schnipsel.

        VG
        Dietrich

        Kommentar


          #5
          Kann es sein dass Du da einen kleinen Tipfehler drin hast? Console sagt:

          Mi. 16.12.2015 22:16:31,093 GiraOSConnectServer[98742]: Try to run /Users/xxx/Gira Sample Scripts/sleep.spct
          Mi. 16.12.2015 22:16:31,094 GiraOSConnectServer[98742]: Extension not allowed or invalid command, execution aborted!

          Und tatsächlich wäre die korrekte Dateiendung wohl eher .scpt (script). In Deinem Aufruf scheinst du da zwei Buchstaben vertauscht zu haben

          Kommentar


            #6
            Hi,

            with title „sleep.scpt"
            Dieser Teile ist nur die Überschrift des Meldungsfensters und hat mit dem Aufruf des Skripts nichts zu tun.

            Der Skript selbst ist ja schon der den du aufrufst um diese Meldung vorab zu erhalten um zu entscheiden (OK/ABBRECHEN) bevor das Skript weiter ausgeführt wird.

            Siehe Beispiel - wenn du das Skript startest dann kommt hier die Meldung „Möchtest du die Playlist abspielen“ mit der Überschrift „play.scpt“ oder wie auch immer (z.B.: Playlist, …).
            Wenn du „OK“ drückst, dann wir der Skript weiter ausgeführt … if appIs Running …..
            Wenn du „Abbreche“ drückst, dann wird das Skript angehalten.

            set antwort to display dialog "Möchtest du die Playlist abspielen" buttons {"Abbrechen", "OK"} default button "OK" with title "play.scpt"
            if button returned of antwort = "Ok" then
            if appIsRunning("iTunes") then
            tell application "iTunes" to play playlist "Meine Lieblingstitel"
            end if
            end if
            Und ja, es heißt .scpt und nicht .spct
            Danke und LG, Dariusz
            GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

            Kommentar


              #7
              Au Backe, da habe ich aber weiße Mäuse gejagt. Danke frogstar. Ich hatte tatsächlich im Homeserver sleep.spct statt sleep.scpt stehen. Da ist es kein Wunder, dass es nicht funktioniert hat. Die ACLs habe ich auch wieder per chmod auf 644 zurückgedreht, und es tut immer noch.

              Mein Applescript zum Herunterfahren ist jetzt fertig (zusammengegoggelt im Netz):

              # Meldung über bevorstehenden Ruhezustand ausgeben
              repeat with i from 10 to 1 by -1
              set D to display dialog "Stromausfall! Der Rechner wird in " & i & " Sekunden in den Ruhezustand versetzt. Eine Minute später wird der Rechner stromlos geschaltet!" buttons {"Ok"} default button ¬
              "Ok" with iconcautiongiving up after 1
              if (button returned of D) is "Ok" then
              exit repeat
              end if
              end repeat

              # Windows in Standby versetzen
              try
              do shell script "/usr/local/bin/prlctl suspend "Windows 7""
              end try

              # Ruhezustand aktivieren
              tell application "System Events" to sleep


              (Vor die Gänsefüßchen um "Windows 7" herum gehört noch jeweils ein Backslash, der wird aber vom Editor hier immer rausgenommen.)

              Vielen Dank für alles. Und Entschuldigung für die unnötigen Mühen.
              Zuletzt geändert von Diwi; 20.12.2015, 10:17.

              Kommentar

              Lädt...
              X