Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] Exec Befehl im Multihost

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Exec Befehl im Multihost

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @bonafide last edited by paul53

      @bonafide sagte:

      das ich in Blockly einen DP erzeugen soll?

      Ja, den zum Triggern (Licht true/false).

      Blockly_Exec_RPi.JPG

      Ob sudo in exec funktioniert, weiß ich nicht.

      1 Reply Last reply Reply Quote 0
      • B
        bonafide last edited by bonafide

        Es ist mir fast schon peinlich.....
        In Deinem Beispiel sind jetzt zwei Variablen, Wert und cmd.

        Ich habe versucht diese nachzustellen:

        alt text

        Der Datenpunkt ist auch jetzt in der Übersicht richtig eingeordnet, wenn ich jetzt hier den Wert ändere tut sich jedoch nichts....

        alt text

        var Wert, cmd;
        
        
        createState("Test_L1", function () {
        });
        // Test_L1
        on({id: "Object ID", change: "ne"}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          if (Wert) {
            cmd = 'sudo /home/pi/raspberry-remote/./send 11110 5 1';
          } else {
            cmd = 'sudo /home/pi/raspberry-remote/./send 11110 5 0';
          }
          exec(cmd);
          console.log("exec: " + cmd);
        });
        

        Heute klappt irgendwie gar nichts, an einer anderen Baustelle (Conbee Stick) geht auch nichts....

        paul53 1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @bonafide last edited by paul53

          @bonafide Wert ist keine Variable, sondern eine Eigenschaft des Triggerdatenpunktes (unter Blöcke Trigger) ! Hat leider die gleiche Farbe ☹

          Weshalb befindet sich der Datenpunkt Test_L1 unter scriptEnabled ? createState() legt ihn direkt unter javascript.1 an.

          1 Reply Last reply Reply Quote 0
          • B
            bonafide last edited by

            Ok die Eigenschaft habe ich gefunden und getauscht.
            Damit das ganze übersichtlicher wird habe ich die alten "Test-Skripts" gelöscht und ein neues erstellt.
            Dieses wird wieder an dieser Stelle abgelegt:

            alt text

            Allerdings nicht im Ordner "Enabled"

            var cmd;
            
            
            createState("Neuer_Test", function () {
            });
            // Neuer_Test
            on({id: "Object ID", change: "ne"}, function (obj) {
              var value = obj.state.val;
              var oldValue = obj.oldState.val;
              if ((obj.state ? obj.state.val : "")) {
                cmd = 'sudo /home/pi/raspberry-remote/./send 11110 5 1';
              } else {
                cmd = 'sudo /home/pi/raspberry-remote/./send 11110 5 0';
              }
              exec(cmd);
              console.log("exec: " + cmd);
            });
            

            Wenn ich jetzt manuell den Wert ändere passiert nichts, auch kein Log-Eintrag.

            paul53 1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @bonafide last edited by paul53

              @bonafide sagte:

              on({id: "Object ID",

              Ja, es muss auch erst die Datenpunkt-ID "javascript.1.Neuer_Test" zugeordnet werden, damit der Trigger darauf reagieren kann.

              B 1 Reply Last reply Reply Quote 0
              • B
                bonafide @paul53 last edited by

                @paul53

                Ok das habe ich angepasst:
                alt text

                var cmd;
                
                
                createState("Neuer_Test", function () {
                });
                // Neuer_Test
                on({id: "javascript.1.Neuer_Test"/*Neuer_Test*/, change: "ne"}, function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                  if ((obj.state ? obj.state.val : "")) {
                    cmd = 'sudo /home/pi/raspberry-remote/./send 11110 5 1';
                  } else {
                    cmd = 'sudo /home/pi/raspberry-remote/./send 11110 5 0';
                  }
                  exec(cmd);
                  console.log("exec: " + cmd);
                });
                

                Bin ich richtig damit das wenn ich in den "Objekten" hier den Wert ändere zum. ein Log-Eintrag entstehen sollte?

                alt text

                Vielen vielen Dank für Deine Geduld!

                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @bonafide last edited by

                  @bonafide sagte:

                  Bin ich richtig damit das wenn ich in den "Objekten" hier den Wert ändere zum. ein Log-Eintrag entstehen sollte?

                  Ja.

                  B 1 Reply Last reply Reply Quote 0
                  • B
                    bonafide @paul53 last edited by

                    @paul53

                    Es passiert nichts, der Log bleibt leer.....

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @bonafide last edited by

                      @bonafide sagte:

                      der Log bleibt leer

                      Kein Log-Eintrag im Reiter "Log" ?
                      Die Logs unter dem Skript sind immer leer, wenn man den Reiter wechselt.

                      1 Reply Last reply Reply Quote 0
                      • B
                        bonafide last edited by bonafide

                        BINGO!!!

                        Ich bin ein Idiot!!
                        Arbeite mit zwei Bildschirmen und habe jeweils auf einem IOBroker geöffnet.
                        Bei Änderungen entstand so kein Log-Eintag auf dem anderen.

                        Dein Tipp mit Sudo war dann auch absolut Richtig, das weggenommen und schon schalten die Stecker wieder!

                        Vielen vielen Dank für Deine Hilfe!!
                        Mach jetzt ein Bier auf Dich auf, und schreibe Skripte für meine 15 Steckdosen!

                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @bonafide last edited by

                          @bonafide sagte:

                          schon schalten die Stecker

                          Bitte noch [gelöst] in der Überschrift eintragen.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          929
                          Online

                          31.9k
                          Users

                          80.1k
                          Topics

                          1.3m
                          Posts

                          2
                          16
                          978
                          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