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.
    • 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

                        573
                        Online

                        31.6k
                        Users

                        79.5k
                        Topics

                        1.3m
                        Posts

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