Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Blockly und exec

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Blockly und exec

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

      Hab jetzt diversetes probiert aber bekomme im Blockly keine befehle über exec ausgeführt.
      die Option ist im Adapter aktiv und im Log wird auch angezeigt das der befehl über den Trigger raus geht.
      Ausgeführt wird er aber nich und ein Ergebniss taucht im log auch nicht auf.

      Hoffe ihr habe Tips

      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @AndreB last edited by

        @andreb sagte in Blockly und exec:

        Hoffe ihr habe Tips

        Tipp 1:
        Blockly zeigen

        1 Reply Last reply Reply Quote 0
        • A
          AndreB last edited by

          Ist ganz simple sol nur auf tastendruck ein exec absetzen

          blockly.png

          log.png

          das exec geht wohl auch raus aber mehr tut sich nicht

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @AndreB last edited by Homoran

            @andreb sagte in Blockly und exec:

            aber mehr tut sich nicht

            was soll denn da passieren?
            du hast ihm ja nichts gesagt
            die klammer ist ja leer

            1 Reply Last reply Reply Quote 1
            • A
              AndreB last edited by

              Sorry wenn ich doof frage aber der befeht steht ja drin und klammern sehe ich im Blockly nicht nur in der JS Ansicht.

              machen soll er ja "sudo /home/pi/uhubclt -l 2 -a 0"

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @AndreB last edited by

                @andreb sagte in Blockly und exec:

                machen soll er ja "sudo /home/pi/uhubclt -l 2 -a 0"

                das macht er ja auch - im angegebenen Verzeichnis

                Was erwartest du denn dann?

                1 Reply Last reply Reply Quote 0
                • A
                  AndreB last edited by

                  Macht er nicht, wenn ich es auf der Console aufrufe das schaltet er die USBPower aus macht er über exec aber nicht und ich bekomme ja auch keine rückgabewerte

                  Homoran paul53 2 Replies Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @AndreB last edited by Homoran

                    @andreb sagte in Blockly und exec:

                    ch bekomme ja auch keine rückgabewerte

                    die forderst du ja auch nicht an.

                    Variable 'result' anlegen, dann mit dieser weiterarbeiten.
                    zb. erst einmal debug-Baustein zum anzeigen von result

                    @andreb sagte in Blockly und exec:

                    Macht er nicht, wenn ich es auf der Console aufrufe das schaltet er die USBPower aus macht er über exec aber nicht

                    wahrscheinlich darf der User ioBroker das nicht

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

                      @andreb sagte: bekomme ja auch keine rückgabewerte

                      exec() funktioniert und gibt auch das Ergebnis in der lokalen Variablen result zurück.

                      Bild_2021-03-02_212405.png

                      1 Reply Last reply Reply Quote 0
                      • A
                        AndreB last edited by

                        probiere ich mal, den gedanken mit den berechtigungen hatte ich auch schon ging aber davon aus das der iobroker sudo kann.

                        A 1 Reply Last reply Reply Quote 0
                        • A
                          aleks-83 @AndreB last edited by aleks-83

                          Ich klinke mich mal ein da ich ein ähnliches Problem habe.

                          Und zwar möchte ich bei einer Störung, per exec einen Adapter neu starten.

                          Wenn ich "iobroker restart sonos.0" in der Konsole direkt unter Windows eingebe, funktioniert der Befehl.
                          Wie kann ich den auch durch JavaScript ausführen lassen?

                          9353d1f6-23e1-4310-ab43-4cfc6a2dc42f-image.png

                          javascript.0	2021-03-04 11:05:34.367	warn	(6216) script.js.Xiaomi.SonosDurchBWMschalten: exec: iobroker restart sonos.0
                          javascript.0	2021-03-04 11:05:34.416	warn	(6216) script.js.Xiaomi.SonosDurchBWMschalten: *** Error. Please start the ioBroker commandline with the correct Windows startmenu shortcut. Aborting...
                          

                          b8508f92-aead-412e-9f81-131b76bea734-image.png

                          A O 2 Replies Last reply Reply Quote 0
                          • A
                            aleks-83 @aleks-83 last edited by aleks-83

                            Ich habe einen Blog-Eintrag gefunden in dem jemand dem iobroker user sudo Rechte verleiht.
                            Mit dem Hinweis dass dies nicht der sicherste Weg sei.

                            Was spricht denn dagegen, dem iobroker sudo zu verleihen?
                            Würde das hier bei meiner Fehlermeldung überhaupt helfen?

                            1 Reply Last reply Reply Quote 0
                            • E
                              ente34 last edited by

                              @aleks-83
                              Ich würde das zuerst über /etc/sudoers versuchen. Dort eine neue Datei anlegen (nicht iobroker benutzen!) und in dieser neuen Datei dem User iobroker die Rechte für das spezielle Kommando geben (vgl auch hier)

                              A 1 Reply Last reply Reply Quote 1
                              • A
                                aleks-83 @ente34 last edited by aleks-83

                                @ente34
                                Den Post habe ich mir angesehen.
                                Leider läuft ioBroker bei mir unter Windows, sodass ich hier andere Befehle und Verzeichnisse nutzen muss.
                                (Which scp funktioniert z.b. nicht)
                                Diese kenn ich aber nicht.

                                AlCalzone 1 Reply Last reply Reply Quote 0
                                • AlCalzone
                                  AlCalzone Developer @aleks-83 last edited by

                                  @aleks-83 Du meinstest nicht zufällig where scp? which ist ein Linux-Befehl.

                                  Bei mir geht's einwandfrei unter Windows:

                                  exec("ping 127.0.0.1", (err, stdout, stderr) => {
                                      log(`err: ${err}`);
                                      log(`stdout: ${stdout}`);
                                      log(`stderr: ${stderr}`);
                                  })
                                  

                                  Log:

                                  javascript.0	2021-03-15 16:06:52.603	info	Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms
                                  javascript.0	2021-03-15 16:06:52.603	info	Ca. Zeitangaben in Millisek.:
                                  javascript.0	2021-03-15 16:06:52.603	info	(0% Verlust),
                                  javascript.0	2021-03-15 16:06:52.603	info	Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
                                  javascript.0	2021-03-15 16:06:52.603	info	Ping-Statistik f�r 127.0.0.1:
                                  javascript.0	2021-03-15 16:06:52.603	info	
                                  javascript.0	2021-03-15 16:06:52.603	info	Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128
                                  javascript.0	2021-03-15 16:06:52.603	info	Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128
                                  javascript.0	2021-03-15 16:06:52.603	info	Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128
                                  javascript.0	2021-03-15 16:06:52.603	info	Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128
                                  javascript.0	2021-03-15 16:06:52.603	info	Ping wird ausgef�hrt f�r 127.0.0.1 mit 32 Bytes Daten: 
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • O
                                    oFbEQnpoLKKl6mbY5e13 @aleks-83 last edited by

                                    @aleks-83 sagte in Blockly und exec:

                                    Und zwar möchte ich bei einer Störung, per exec einen Adapter neu starten.

                                    Das geht doch mit dem Datenpunkt system.adapter.sonos.0.alive. Wozu da ein exec benutzen?

                                    A 1 Reply Last reply Reply Quote 1
                                    • A
                                      aleks-83 @oFbEQnpoLKKl6mbY5e13 last edited by

                                      Oh cool. Das wusste ich gar nicht.
                                      Wieder was gelernt. Danke.

                                      Das löst zwar mein aktuelles Problem, aber wenn ich irgendwann mal wieder exec() ausführen will, habe ich das eigentliche Problem immer noch.
                                      Obwohl @AlCalzone mir ja schon einen anderen Tipp gegeben hat um exec() mit ioBroker Befehlen auszuführen.

                                      Danke euch.

                                      AlCalzone 1 Reply Last reply Reply Quote 0
                                      • AlCalzone
                                        AlCalzone Developer @aleks-83 last edited by

                                        @aleks-83 sagte in Blockly und exec:

                                        aber wenn ich irgendwann mal wieder exec() ausführen will, habe ich das eigentliche Problem immer noch.

                                        Nein, nur wenn du iobroker-Befehle ausführen willst (was eigentlich nicht nötig sein dürfte).

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        447
                                        Online

                                        31.6k
                                        Users

                                        79.5k
                                        Topics

                                        1.3m
                                        Posts

                                        7
                                        18
                                        2544
                                        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