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,

      wenn keine besonderen Ereignisse anstehen kann der Monitor in den Energiesparmodus gehen, wenn ein Ereigniss kommt soll der Monitor aufwachen. Hat jemand eine Idee wie man das machen könnte?

      Schöne Grüße

      ThomasD

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

                            862
                            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