Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Gelöst] Monitor per Scriptbefehl aufwecken. (Linux / Raspian)

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Gelöst] Monitor per Scriptbefehl aufwecken. (Linux / Raspian)

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      ThomasD last edited by

      Hallo,

      das commando an sich funktioniert, nur hab ich ein Problem das Kommando nicht ausführt.

      Als Test habe ich dann das Beispiel aus der Javascipt Beschreibung genommen und erhalte auch dort einen Fehler:
      ` > javascript.0 2017-12-01 22:45:00.111 error at Object. (script.js.STH_Test:2:1)

      javascript.0 2017-12-01 22:45:00.111 error Error in callback: ReferenceError: sendToHost is not defined `

      Hier das Script:

      schedule("* * * * *", function (obj) {
      sendToHost('iobroker3', cmdExec, 'ls /', function (res) {
          console.log('List of files: ' + res.data);
      });
      });
      
      

      Wo ran kann das liegen?

      IOBroker und System hab ich schon mal auf den neusten Update Stand gebracht.

      Schöne Grüße

      ThomasD

      1 Reply Last reply Reply Quote 0
      • T
        ThomasD last edited by

        Hallo,

        und noch ein Update, der Verwarungsort latest ist auch nicht ganz aktuell und ich hab den Javascript Adapter direkt über Git installiert, nun mit der Version 3.5.0 gibt es die Funktion sendToHost, aber leider nicht das "cmdExec", Fehlermeldung:
        ` > javascript.0 2017-12-01 23:48:00.131 error at Object. (script.js.STH_Test:2:25)

        javascript.0 2017-12-01 23:48:00.130 error Error in callback: ReferenceError: cmdExec is not defined `

        Wenn ich Git nach cmdExec durchsuche finde ich auch nichts zu cmdExec gefunden ausser die Beschreibung das cmdExec Funktionieren soll.

        Schöne Grüße

        ThomasD

        1 Reply Last reply Reply Quote 0
        • T
          ThomasD last edited by

          Hallo,

          im Moment bringt es wohl nichts hier weiter zu machen, ist ein Fehler beseitigt kommt ein anderer oder neuer Fehler hinzu.

          In der Javescript instanz gibt es probleme mit der Instanz Zuordnung, zum einen geht die Liste mit den Instanzen extrem schnell wieder zu und hat man eine Instanz ausgewählt, springt sie beim speichern des Scriptes wieder zurück auf die vorige.

          Schöne Grüße

          ThomasD

          1 Reply Last reply Reply Quote 0
          • Jey Cee
            Jey Cee Developer last edited by

            Du hast nirgendwo geschrieben ob iobroker auf dem pi läuft oder wo anders.

            Und ohne die information kann man ein ganzes Buch für eine Lösung verfassen und trotzdem ist nicht die Lösung dabei die du brauchst.

            Das sendToHost nur funktioniert wenn du eine Multihost Umgebung hast ist dir klar?

            Und setObject hast du in den Einstellungen deiner JS Instanz aktiviert?

            Möglicherweise ist die sendToHost Implementierung noch nicht fertiggestellt.

            Gesendet von Unterwegs

            1 Reply Last reply Reply Quote 0
            • T
              ThomasD last edited by

              Hallo,

              ja, es handelt sich um einen Multihost.

              SetObjekt ist Aktiviert, ebendso SendToHost und Exec.

              Schöne Grüße

              ThomasD

              1 Reply Last reply Reply Quote 0
              • Jey Cee
                Jey Cee Developer last edited by

                Wenn das so nicht geht könntest du noch versuchen eine JS instanz auf dem slave zu installieren und mit exec deinen Aufruf machen.

                Gesendet von Unterwegs

                1 Reply Last reply Reply Quote 0
                • Dutchman
                  Dutchman Developer Most Active Administrators last edited by

                  @Jey Cee:

                  Wenn das so nicht geht könntest du noch versuchen eine JS instanz auf dem slave zu installieren und mit exec deinen Aufruf machen.

                  Gesendet von Unterwegs `

                  So würde ich es auch machen, bei mir läufts genau auf diese Art und Weise seit Monaten ohne Probleme

                  –-----------------------

                  Send from mobile device

                  1 Reply Last reply Reply Quote 0
                  • T
                    ThomasD last edited by

                    Hallo,

                    so wollte ich es dann auch machen, aber irgend wie bekomme ich den exec() string nicht hin, egal wie ich es drehe und wende, schicke ich den Befehl vom IOBroker aus funktioniert es nicht.

                    Der String sieht so aus:

                    export DISPLAY=":0"
                    xdotool mousemove 10 20
                    
                    

                    Versuch 1, direkt exec('xdotool mousemove 10 20') kein Erfolg.

                    Um Leerzeichen und Sonderzeichen zu umgehen hab ich das dann in eine Batchdatei gepackt.

                    Über SSH eingelogt und ausgeführt funktioniert, mit exec('/opt/iobroker/wakeup.sh') kein Erfolg.

                    Zur Sicherheit noch einen Befehl eingefügt der mir zeigt das die Datei ausgeführt wird.

                    Dann per Remote Befehl mit ssh pi@rechnername 'xdotool mousemove 10 20' oder ssh pi@rechnername '/opt/iobroker/wakeup.sh', direkt funktioniert es mit exec('ssh pi@rechnername '/opt/iobroker/wakeup.sh'') oder exec('ssh pi@rechnername '/opt/iobroker/wakeup.sh'') funktioniert wieder nicht. Und zur Sicherheit das es nicht an einen fehlenden Consolenfenster liegt das ganze zum Test als cron Job angelegt, funktioniert auch.

                    Schöne Grüße

                    ThomasD

                    1 Reply Last reply Reply Quote 0
                    • Dutchman
                      Dutchman Developer Most Active Administrators last edited by

                      Poste Mal dein komplettes Script

                      –-----------------------

                      Send from mobile device

                      1 Reply Last reply Reply Quote 0
                      • T
                        ThomasD last edited by

                        Hallo,

                        so, ich denke ich hab es.

                        Hier aber trotzdem nach meine Skripte:

                        Javascript Adapter auf dem slave wo auch der Webbrowser läuft:

                        schedule("* * * * *", function (obj) {
                        var wakeup = '/opt/iobroker/wakeup.sh';
                        exec(wakeup);
                        });
                        
                        

                        Da ioBroker als root läuft, braucht man den ersten Schritt nicht:
                        > setfacl -m u:the-user:r ~/.Xauthority

                        Hier dann das shell Skript:

                        #!/bin/bash
                        DISPLAY=:0 XAUTHORITY=~pi/.Xauthority xdotool mousemove 10 20
                        
                        

                        Danke und Schöne Grüße

                        ThomasD

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        671
                        Online

                        32.0k
                        Users

                        80.5k
                        Topics

                        1.3m
                        Posts

                        3
                        12
                        1457
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo