Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [gelöst] Problem mit dem Blockly-Block "exec"

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    [gelöst] Problem mit dem Blockly-Block "exec"

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

      Hallo ins Forum,
      ich habe ein Prblem mit dem Blockly-Block "exec":
      Ich möchte mein QNAP-NAS über eine SSH-Verbindung herunterfahren. Der Befehl dazu lautet "poweroff".
      Ich möchte mich dann mit dem Befehl "ssh" mit dem QNAP-NAS verbinden, das dazu notwendige Passwort übergebe ich mit dem Befehl "sshpass".
      Der vollständige Befehl lautet:

      sshpass -pPASSWORT ssh ADMINUSER@XXX.XXX.XXX.XXX poweroff
      

      Wennich diesen Befehl in einem Terminal eingebe, wird das QNAP-NAS ordnungsgemäß heruntergefahren. Sende ich diesen Befehl jedoch mit dem Blockly-Block "exec", passiert gar nichts.
      Wenn ich jedoch einen Befehl über den Blockly-Block "exec" absetze, der auf dem ioBroker-Server ausgeführt wird (beispielsweise "cd /" oder "pwd"), wird dieser auch ordnungsgemäß ausgeführt.
      Kann mir jemand sagen, ob dieses Verhalten so gewollt oder ein Fehler ist und ob es einen Workaround oder eine Lösung gibt?

      Viele Grüße

      "Klaus"

      Asgothian Thomas Braun haus-automatisierung 3 Replies Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer @KlausStoertebeker last edited by

        @klausstoertebeker sagte in Problem mit dem Blockly-Block "exec":

        Kann mir jemand sagen, ob dieses Verhalten so gewollt oder ein Fehler ist und ob es einen Workaround oder eine Lösung gibt?

        bist du sicher das der Benutzer iobroker den Befehl ausführen darf ?

        KlausStoertebeker 1 Reply Last reply Reply Quote 0
        • Thomas Braun
          Thomas Braun Most Active @KlausStoertebeker last edited by

          @klausstoertebeker sagte in Problem mit dem Blockly-Block "exec":

          sshpass -pPASSWORT ssh ADMINUSER@XXX.XXX.XXX.XXX poweroff

          Die Frage ist immer, welcher user setzt den Befehl ab und welche Rechte hat der. Der user 'iobroker' hat z. B. nur eingeschränkte Rechte.

          Selbstversuch:

          sudo -H -u iobroker sshpass -pPASSWORT ssh ADMINUSER@XXX.XXX.XXX.XXX poweroff
          

          Wird vermutlich nicht ausgeführt.

          1 Reply Last reply Reply Quote 0
          • KlausStoertebeker
            KlausStoertebeker @Asgothian last edited by

            Moin asgothian,
            wie meinst Du das? Ich habe in der JavaScript-Instanz sowohl das Kommando "setObject" als auch das Kommando "exec" erlaubt, das Komanndo "sendToHost jedoch nicht.
            Meist Du, daran könnte es liegen?

            Asgothian 1 Reply Last reply Reply Quote 0
            • Asgothian
              Asgothian Developer @KlausStoertebeker last edited by

              @klausstoertebeker sagte in Problem mit dem Blockly-Block "exec":

              Meist Du, daran könnte es liegen?

              nein. Siehe den Post von @Thomas-Braun

              KlausStoertebeker 1 Reply Last reply Reply Quote 0
              • KlausStoertebeker
                KlausStoertebeker @Asgothian last edited by

                @asgothian
                Ich habe den Befehl als normaler Nutzer absetzen können - ohne sudo. Ich melde mich auch nicht als root an meinem ioBroker-Server an.

                Asgothian J 2 Replies Last reply Reply Quote 0
                • crunchip
                  crunchip Forum Testing Most Active last edited by

                  @klausstoertebeker sagte in Problem mit dem Blockly-Block "exec":

                  Ich habe den Befehl als normaler Nutzer absetzen können

                  korrekt, aber nicht als user iobroker

                  1 Reply Last reply Reply Quote 1
                  • Asgothian
                    Asgothian Developer @KlausStoertebeker last edited by

                    @klausstoertebeker sagte in Problem mit dem Blockly-Block "exec":

                    @asgothian
                    Ich habe den Befehl als normaler Nutzer absetzen können - ohne sudo. Ich melde mich auch nicht als root an meinem ioBroker-Server an.

                    Liest du auch was wir schreiben ? @Thomas-Braun hat im Detail geschrieben was du ausprobieren musst.

                    A.

                    KlausStoertebeker 1 Reply Last reply Reply Quote 0
                    • J
                      J_Paul @KlausStoertebeker last edited by

                      @klausstoertebeker
                      Wäre der umgekehrte Weg eine Option für Dich?
                      Ich habe einen DP den ich auf true setzen kann und das QNAP „guckt“ da nach, setzt den wieder auf false und fährt runter.

                      KlausStoertebeker BananaJoe 2 Replies Last reply Reply Quote 0
                      • KlausStoertebeker
                        KlausStoertebeker @Asgothian last edited by

                        @asgothian
                        Ja, ich lese, was Ihr schreibt. Und alles, was Thomas aufgelistet hat, habe ich durchexerziert und bis auf die Versionsnummern war alles so wie berschrieben:

                        Ich HABE eine sudo-Gruppe
                        Ich HABE einen Standardnutzer in der sudo-Gruppe (Nutzer iobroker ist da übrigens auch drin, weil ich den mal wegen eines anderen Problems dort eintragen musste)
                        Ich HABE sowohl Betriebssystem UND ioBroker nebst Adaptern auf dem aktuellen Stand

                        Das Einzige, was sich unterscheidet, ist das Repsotory. Das steht bei mir auf "latest", weil ich von dort Adapter nutze, die nicht im "stable" verfügbar sind.

                        Und was hilft mir das jetzt bei meinem Problem? Sollte es funktionieren?

                        Thomas Braun 1 Reply Last reply Reply Quote 0
                        • Thomas Braun
                          Thomas Braun Most Active @KlausStoertebeker last edited by

                          @klausstoertebeker sagte in Problem mit dem Blockly-Block "exec":

                          (Nutzer iobroker ist da übrigens auch drin, weil ich den mal wegen eines anderen Problems dort eintragen musste)

                          Das ist schon falsch. Der iobroker gehört unter keinen Umständen in die Gruppe 'sudo' rein.

                          Was ergibt denn der Selbstversuch nun?

                          KlausStoertebeker 1 Reply Last reply Reply Quote 1
                          • KlausStoertebeker
                            KlausStoertebeker @J_Paul last edited by

                            Hallo j_paul,

                            die Idee ist nicht schlecht, aber ich möchte auch andere Geräte per Remote herunterfahren oder eventuell auch starten (mit "etherwake" zum Beispiel). Daher wäre es schön, wenn ich den Blockly-Block "exec" nutzenkönnte.
                            Wenn ich Deinen Vorschlag aber richtig interpretiere, schlägst Du vor, auf dem QNAP ein Skript laufen zu lassen, das regelmäßig über einen Webhook den Wert des Datenpunktes abfragt, oder? Und dieses Skript müsste ich dann auf dem QNAP als cron-Job starten?

                            Viele Grüße
                            "Klaus"

                            1 Reply Last reply Reply Quote 0
                            • haus-automatisierung
                              haus-automatisierung Developer Most Active @KlausStoertebeker last edited by haus-automatisierung

                              Warum eigentlich so kompliziert mit "sshpass"?

                              • Für den iobroker Linux-User ein Keypair erstellen
                              • Den public key auf dem QNAP in die authorized_keys eintragen
                              • fertig
                              KlausStoertebeker 1 Reply Last reply Reply Quote 2
                              • BananaJoe
                                BananaJoe Most Active @J_Paul last edited by BananaJoe

                                @j_paul sagte in Problem mit dem Blockly-Block "exec":

                                @klausstoertebeker
                                Wäre der umgekehrte Weg eine Option für Dich?
                                Ich habe einen DP den ich auf true setzen kann und das QNAP „guckt“ da nach, setzt den wieder auf false und fährt runter.

                                Moin,
                                die Lösung würde ich zu gerne sehen!
                                Ich fahre das QNAP bisher auch per ssh herunter, was das QNAP dann Zeitweise bemängelt (Das es nicht ordentlich heruntergefahren wurde).
                                Hochfahren per Magic-Paket funktioniert ohne Probleme.

                                1 Reply Last reply Reply Quote 0
                                • KlausStoertebeker
                                  KlausStoertebeker @Thomas Braun last edited by

                                  @thomas-braun
                                  Nachdem ich den Nutzer iobroker aus der sudo-Gruppe wieder herausgenommen habe und deinen Befehl in einem Terminal eingegeben hatte, passierte nichts.Nach dem Drücken der Eingabetaste kam sofort der nächste Eingabeprompt und auf dem QNAP passierte auch nichts.

                                  1 Reply Last reply Reply Quote 0
                                  • KlausStoertebeker
                                    KlausStoertebeker @haus-automatisierung last edited by

                                    @haus-automatisierung
                                    Wenn ich wüsste, wie das mit dem ganzen Schlüssel-Gedöns funktionieren würde, hätte ich das bestimmt schonmal versucht. Aber das und auch diese Zertifikatsdinge sind ein Buch mit sieben Siegeln (noch) und ich greife da eher auf "einfache" Sachen zurück.
                                    In einem ganz normalen Terminal funktioniert das ja auch einwandfrei, ich kann Nutzernamen und Passworte aus versteckten Dateien extrahieren und einen Befehl zusammen"bauen" und mein QNAP damit herunter fahren.
                                    Das Ganze funktioniert auch unter Blockly mit dem einzigen Unterschied, dass der zusammen"gebaute" Befehl nicht ausgeführt wird...

                                    BananaJoe 1 Reply Last reply Reply Quote 0
                                    • BananaJoe
                                      BananaJoe Most Active @KlausStoertebeker last edited by BananaJoe

                                      @klausstoertebeker wechsle doch in einer SSH-Sitzung einmal ganz zum Benutzer ioBroker:

                                      sudo -u iobroker /usr/bin/bash
                                      

                                      Gib dann noch mal deinen SSH-Befehl ein wie du ihn im Skript hast.
                                      Die Fehlermeldung sollte die Lösung bringen. Er wird irgendetwas nicht dürfen bzw. vermutlich musst du einmal den SSH-Host-Key aktzeptieren, der wird dann gespeichert und danach geht es.

                                      Mit exit verlässt du die Sitzung wieder.

                                      Edit: Alternativ musst du sshpass bzw. ssh mit den zusätzlichen Parametern aufrufen:

                                      sshpass -pMeinPasswort ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no
                                      

                                      Dann ignoriert er den Host-Key ohne Warnung

                                      KlausStoertebeker 1 Reply Last reply Reply Quote 0
                                      • KlausStoertebeker
                                        KlausStoertebeker @BananaJoe last edited by

                                        @BananaJoe
                                        😞 Funktioniert leider nicht. Und eine Fehlermeldung kommt auch nicht, sondern einfach nur der nächste Eingabeprompt..

                                        BananaJoe Thomas Braun 2 Replies Last reply Reply Quote 0
                                        • BananaJoe
                                          BananaJoe Most Active @KlausStoertebeker last edited by

                                          @klausstoertebeker poste hier noch mal den genauen, vollständigen String den du getestet hast, nur das Passwort ersetze mit etwas unverfänglichen.

                                          1 Reply Last reply Reply Quote 0
                                          • Thomas Braun
                                            Thomas Braun Most Active @KlausStoertebeker last edited by

                                            @klausstoertebeker

                                            Ich würde das per key machen. Ob das auf einem QNAP funktioniert weiß ich allerdings nicht. Sollte aber eigentlich.

                                            https://linuxconfig.org/passwordless-ssh

                                            Dolomiti KlausStoertebeker 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            947
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            26
                                            1108
                                            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