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,

      Eine Möglichkeit die ich gefunden habe ist das "xdotool".

      Damit eine Mausbewegung gesendet und der Monitor geht an.

      Schöne Grüße

      ThomasD

      1 Reply Last reply Reply Quote 0
      • 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

                          664
                          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