Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] Zusätzlichen Raspberry per Remote per Script Booten

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    12
    2
    230

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.7k

[gelöst] Zusätzlichen Raspberry per Remote per Script Booten

[gelöst] Zusätzlichen Raspberry per Remote per Script Booten

Scheduled Pinned Locked Moved Skripten / Logik
18 Posts 5 Posters 3.8k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    mariohbs
    wrote on last edited by
    #1

    Hi Leute,

    ich suche eine Möglichkeit, wie ich einen Raspberry per Skript bei eintreten eines Ereignisses Remote rebooten kann. Da ich mich leider nicht wirklich mit Javascript oder gar Linux auskenne steh ich da grad total auf dem Schlauch und hoffe mal auf eure Unterstützung.

    So nun mal zum Hintergrund: Ich habe einen Raspberry als Homematic Gateway am WLAN hängen. Von Zeit zu Zeit (sehr selten) kommt es vor, dass das Gateway nicht mehr funktioniert und ich den PI booten muss. Danach ist alles wieder fein. Wohl bemerkt ist der PI im Netzwerk erreichbar, nur das HM Gateway geht halt nicht mehr.

    Da ich im IoB ja auch den Datenpunkt habe, ob das Gateway erreichbar ist, würde ich nun gerne ein Script integrieren, welches bei einem Problem mit dem Gateway z.B. den folgenden Befehl an den Gateway PI schickt um diesen zu rebooten. Gerne natürlich auch jede andere Methode - den Befehl habe ich auch nur gegoogelt 🙂

    $ ssh pi@192.168.1.XXX 'echo raspberry | sudo shutdown -r now'
    

    Vielen Dank schon einmal für eure Unterstützung!

    LG

    Mario

    1 Reply Last reply
    0
    • agreenA Offline
      agreenA Offline
      agreen
      wrote on last edited by
      #2

      Step 1) du musst dafür sorgen, dass eine SSH Verbindung ohne Passwort möglich ist. Google mal "private ssh key"

      z.b. das hier

      http://wiki.openelec.tv/index.php?title … o_password

      du musst mit root eine ssh Verbindung ohne Passwort machen können

      Step 2

      exec('ssh pi@192.168.1.XXX 'echo raspberry | sudo shutdown -r now');

      1 Reply Last reply
      0
      • M Offline
        M Offline
        mariohbs
        wrote on last edited by
        #3

        @agreen:

        Step 1) du musst dafür sorgen, dass eine SSH Verbindung ohne Passwort möglich ist. Google mal "private ssh key" `

        Warum muss ich denn ohne Passwort arbeiten? Ich hatte es so verstanden, dass der Befehl das entsprechende Passwort (im Beispiel raspberry) mitschickt 😢

        @agreen:

        Step 2

        exec('ssh pi@192.168.1.XXX 'echo raspberry | sudo shutdown -r now'); `

        Das kann ich dann einfach aus dem Java Script so abschicken? Dann wäre es ja wirklich easy….

        Danke und Gruß

        Mario

        1 Reply Last reply
        0
        • agreenA Offline
          agreenA Offline
          agreen
          wrote on last edited by
          #4

          zur 1) man kann kein Passwort beim SSH Befehl als Parameter mitgeben.

          Deswegen brauchst du den PrivateKey.

          1 Reply Last reply
          0
          • DutchmanD Offline
            DutchmanD Offline
            Dutchman
            Developer Most Active Administrators
            wrote on last edited by
            #5

            Als remark, du willst nicht booten sondern rebooten richtig ?

            Neben dem Remote ssh Kommando könnte man auch nen ioBroker multihost drauf setzen mit localer JavaScript Instanz und damit über exec local das Reboot Kommando abschiessen

            –-----------------------

            Send from mobile device

            1 Reply Last reply
            0
            • M Offline
              M Offline
              mariohbs
              wrote on last edited by
              #6

              @agreen:

              zur 1) man kann kein Passwort beim SSH Befehl als Parameter mitgeben.

              Deswegen brauchst du den PrivateKey. `

              Habe grad mal von der Konsole aus getestet und jepp, leider kommt die Passwort abfrage separat. Also man muss das Kennwort angeben, dann geht es aber. Muss mich also mal mit dem PrivateKey beschäftigen, weis nur nicht ob das auf dem HM Gateway geht oder ob es dann Probleme mit der Homematic gibt…. 😞

              @Dutchman:

              Als remark, du willst nicht booten sondern rebooten richtig ?

              Neben dem Remote ssh Kommando könnte man auch nen ioBroker multihost drauf setzen mit localer JavaScript Instanz und damit über exec local das Reboot Kommando abschiessen `

              Ja klar, ich will das Ding rebooten wenn es nicht mehr mit der Homematic kommuniziert. Mit dem Multihost wird das wohl nicht gehen, da auf dem Raspberrymatic (mein HM Gateway) ja nicht parallel IoB läuft 😞

              Nu ja, dann werde ich mal weitersuchen wobei ich auch keine Idee habe, was da eigentlich nicht mehr geht wenn er die Verbindung mit der Homematic verliert. Das Netzwerk ist auf alle fälle noch da, daran liegt es also mal nicht.

              1 Reply Last reply
              0
              • DutchmanD Offline
                DutchmanD Offline
                Dutchman
                Developer Most Active Administrators
                wrote on last edited by
                #7

                @mariohbs:

                Mit dem Multihost wird das wohl nicht gehen, da auf dem Raspberrymatic (mein HM Gateway) ja nicht parallel IoB läuft [emoji20] `

                Was nicht läuft kan man installieren [emoji6]

                –-----------------------

                Send from mobile device

                1 Reply Last reply
                0
                • M Offline
                  M Offline
                  mariohbs
                  wrote on last edited by
                  #8

                  Also wenn ich mich recht entsinne nicht - hieß es hier im Forum zumindest immer. Da meine Kenntnisse an der Stelle mit "Rudimentär" wohl sogar schon übertrieben gut dargestellt werden, habe ich nicht mal ne Idee 😢

                  1 Reply Last reply
                  0
                  • HomoranH Offline
                    HomoranH Offline
                    Homoran
                    Global Moderator Administrators
                    wrote on last edited by
                    #9

                    Ist schon richtig.

                    bei RaspberryMatic kann man (so einfach) nichts anderes installieren.

                    Bliebe nur der Schritt zu piVCCU, dann geht alles 😉

                    Gruß

                    Rainer

                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      mariohbs
                      wrote on last edited by
                      #10

                      Also eigentlich wollte ich ja mit dem RaspberryMatic Gateway die Komplexität vereinfachen in dem ich Com-Errors wegbekomme auf die ich reagieren müsste…. nun noch piVCCU.... ich glaub eher nicht wirklich wobei es sich sehr interessant darstellt.

                      Ich glaub ich mach das jetzt mal ganz einfach so, dass ich das Gateway per Job täglich einmal boote und beobachte mal ob das Problem dann überhaupt noch auftritt 😉

                      1 Reply Last reply
                      0
                      • HomoranH Offline
                        HomoranH Offline
                        Homoran
                        Global Moderator Administrators
                        wrote on last edited by
                        #11

                        Ich habe im Downloadbereich fertige images für RasPi und Tinkerboard mit ioBroker incl. piVCCU eingestellt.

                        Probier doch mal eins davon aus.

                        Gruß Rainer

                        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                        1 Reply Last reply
                        0
                        • M Offline
                          M Offline
                          mariohbs
                          wrote on last edited by
                          #12

                          Sodele, habe wohl nun doch einen Weg mit "sshpass" gefunden - zumindest vom Terminal-Fenster aus kann ich Remote den Raspi mit dem HM Gateway booten.

                          @agreen:

                          Step 2

                          exec('ssh pi@192.168.1.XXX 'echo raspberry | sudo shutdown -r now'); `

                          Irgendwie funktioniert der "exec" Befehl aber nicht 😞 Er wird zwar im Log protokolliert, aber es passiert nichts. Habe mit Blockly ein Script gemacht, welches anläuft, scheinbar den Befehl ausführt aber der raspi auf der anderen Seite tut nichts. Mach ich es aus dem Termin-Fenster geht es.

                          So sieht der Code vom Blockly aus:

                          schedule("34 * * * *", function () {
                            exec('sshpass -p \'passwort\' ssh root@192.168.1.325 \'reboot -d 2 | exit\'');
                            console.log("exec: " + 'sshpass -p \'passwort\' ssh root@192.168.1.325 \'reboot -d 2 | exit\'');
                          });
                          

                          Irgend jemand ne Idee was ich falsch mache?

                          @Homoran:

                          Ich habe im Downloadbereich fertige images für RasPi und Tinkerboard mit ioBroker incl. piVCCU eingestellt.

                          Probier doch mal eins davon aus. `
                          Wer dich mal machen - sobald wir hier mit Renovieren durch sind und ich mal wieder Zeit habe. Wird wohl aber erst nächstes Jahr 😞 Im Moment rennt irgendwie mal wieder die Zeit von dannen und man kommt nicht zu den ganzen schönen Projekten die man noch so machen will 😉

                          LG

                          Mario

                          1 Reply Last reply
                          0
                          • M Offline
                            M Offline
                            mariohbs
                            wrote on last edited by
                            #13

                            So langsam gehen mir echt die Ideen aus. Habe nun nen Bash Datei gemacht und den Befehlt dort reingelegt. Ausführen auf der Konsole geht Problemlos.

                            Dann den Aufruf der Bash in ein Javascript eingebunden, da ich dachte ich bin für Blockly zu Blöd:

                            schedule("38 * * * *", function () {
                              exec('bash /home/pi/reboot-hmgw.sh', function(err, stderr, stdout) {
                                    console.log('Err: ' + err);
                                    console.log('Fehler: ' + stderr);
                                    console.log('Ergebnis: ' + stdout);
                                });
                            });
                            
                            

                            Aber auch das führt leider nicht zum Erfolg 😞 Ich verzweifele….

                            Ausgabe im Log:

                            javascript.0	2017-12-09 18:38:00.395	info	script.js.Systemscripte.Test_HM-GW_Reboot: Ergebnis:
                            javascript.0	2017-12-09 18:38:00.395	info	script.js.Systemscripte.Test_HM-GW_Reboot: Fehler:
                            javascript.0	2017-12-09 18:38:00.394	info	script.js.Systemscripte.Test_HM-GW_Reboot: Err: Error: Command failed: bash /home/pi/reboot-hmgw.sh
                            

                            Hat noch irgend jemand eine Idee was ich falsch mache?

                            1 Reply Last reply
                            0
                            • agreenA Offline
                              agreenA Offline
                              agreen
                              wrote on last edited by
                              #14

                              also … nochmal eine andere Idee von mir.

                              Wenn der Raspberry nach einem Reboot wieder funktioniert, warum lässt du den nicht einfach jede Nacht einmal Neustarten.

                              das kannst du auf dem PI direkt machen.

                              Codewort lautet cronjob 😉

                              1 Reply Last reply
                              0
                              • M Offline
                                M Offline
                                mariohbs
                                wrote on last edited by
                                #15

                                @agreen:

                                Codewort lautet cronjob `

                                Tja, das habe ich mittlerweile auch ins Auge gefasst wobei ich es schade finde nen täglichen Restart für ein Problem zu machen, was vielleicht 1x im Monat oder eher 1x in 2 Monaten auftaucht. Da dacht ich doch, dass mit so einer Umgebung man darauf anders reagieren kann 😞

                                Normal würde ich da ja auch gar nichts machen aber wenn es passiert, dann natürlich immer wenn man nicht da ist und an der Stelle wird es halt dumm und daher muss ich irgendwas machen.

                                Warum der Exec Befehl aber da nicht funzt versteh ich auch nicht aber wäre wohl sonst auch zu einfach…

                                LG

                                Mario

                                1 Reply Last reply
                                0
                                • agreenA Offline
                                  agreenA Offline
                                  agreen
                                  wrote on last edited by
                                  #16

                                  wie gesagt, du musst das Thema mit dem SSH Privatkey lösen.

                                  probiere doch mal folgendes aus …

                                  1. erstelle ein Shell Script auf dem PI z.b.

                                  nano /root/scripts/testscript.sh

                                  inhalt

                                  echo "hallo">>/root/scripts/test.txt

                                  2. script ausführbar machen

                                  chmod 755 testscript.sh

                                  jetzt im iobroker folgendes javascript erstellen

                                  exec('/home/root/scripts/testscript.sh');

                                  3 . Script Starten

                                  4. prüfen ob in dem Verzeichnis /home/root/scripts/ prüfen ob eine Datei test.txt vorhanden ist.

                                  wenn dein script auf diese Art nicht starten, dann liegt es am script selbst.

                                  p.s. ob du ein Script ausführst oder einen Befehl ist fällig egal.

                                  1 Reply Last reply
                                  0
                                  • M Offline
                                    M Offline
                                    mariohbs
                                    wrote on last edited by
                                    #17

                                    @agreen:

                                    probiere doch mal folgendes aus … `

                                    Hab ich probiert, konnte es unter root aber nicht so anlegen. Aber mir kam dabei eine Idee und die war auch des Rätsels Lösung. Bei der 1. Verbindung zu einem Remote-Raspberry kommt ja bei SSH die Abfrage mit dem ECDSA Fingerprint, welche man Bestätigen muss. Dann wird diese permanent zur Liste der "known hosts" hinzugefügt. Das hatte ich ja schon gemacht aber halt nicht unter dem user "root" sondern unter dem User "pi". Und damit ging natürlich weder der Behle noch die Bash weil beide letztendlich auf ECDSA liefen.

                                    Nun einmal mit "root" gemacht und ohh Wunder -> es geht. Reboot des Remote-Raspberry per Exec Befehl ohne Private Key 😄 😄 😄

                                    Danke agreen! Du hast mich auf die richtige Fährte geschupst :lol:

                                    Die finale Lösung - falls es nochmal jemand anders braucht:

                                    1. sshpass installieren

                                    sudo apt-get install sshpass
                                    

                                    2. Eine Verbindung zum entfernten Raspi per SSH unter dem User "root" aufbauen, da IoB (oder die Script-Engine) ja auch darunter läuft

                                    ssh user@192.168.2.325
                                    

                                    3. die ECDSA Abfrage mit "yes" bestätigen

                                    4. Entfernten Raspi aus einem Java oder Blockly Script booten mit

                                    exec('sshpass -p \'Kennwort\' ssh user@192.168.2.325 \'reboot -d 2\'');
                                    

                                    LG

                                    Mario

                                    1 Reply Last reply
                                    0
                                    • J Offline
                                      J Offline
                                      Joshude
                                      wrote on last edited by
                                      #18

                                      Moin!

                                      Die Lösung aus dem letzten Post wollte ich ebenfalls mal probieren.

                                      Hintergrund: Ich würde gerne meinen 3D Drucker ausschalten, nachdem die Steckdose an dem er hängt 15 Minuten unter 15w verbraucht hat.

                                      An die Steckdose möchte ich auch meinen OctoPrint Raspberry hängen. Problem ist jedem bekannt: Nen Raspberry einfach ausschalten killt ihn. Ergo würde ich gerne nach 14 Minuten unter 15w den Befehl zum Herunterfahren senden.

                                      Problem ist, wenn ich per ssh auf meinem iobroker bin und

                                      sshpass -p passwort ssh -t pi@172.16.17.6 'sudo poweroff'
                                      

                                      absetze klappt das.

                                      Wenn ich das ganze in einem Blockly mache, zum Testen gebunden an einen Lichtschalter passiert nichts.

                                      Ergo, wenn Lichtschalter gedrückt (Der funzt, hab ich mit einer Lampe noch mal extra probiert) dann führe den o.g. Befehl aus.

                                      Eigentlich würde ich erwarten, dass das dann auch so funktioniert.

                                      Das einzige, was mir jetzt gerade kommt ist, dass iobroker auf dem Raspberry nicht unter dem Nutzer "pi" ausgeführt wird.

                                      Das müsste ja der User "admin" sein. Allerdings klappt das auch nicht so recht, wie ich mir das vorstelle.

                                      Ein versuch mich mit dem user "admin" und dem gesetzten Passwort per SSH zu verbinden schlägt fehl, daher vermute ich, dass der user "admin" kein SSH kann/darf und daher kann der Befehl, wenn ich ihn oben auf den User "admin" anpasse vermutlich auch nicht ausgeführt werden.

                                      Wo muss ich ansetzen das Problem zu lösen?

                                      1 Reply Last reply
                                      0
                                      Reply
                                      • Reply as topic
                                      Log in to reply
                                      • Oldest to Newest
                                      • Newest to Oldest
                                      • Most Votes


                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      55

                                      Online

                                      32.4k

                                      Users

                                      81.3k

                                      Topics

                                      1.3m

                                      Posts
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                      ioBroker Community 2014-2025
                                      logo
                                      • Login

                                      • Don't have an account? Register

                                      • Login or register to search.
                                      • First post
                                        Last post
                                      0
                                      • Recent
                                      • Tags
                                      • Unread 0
                                      • Categories
                                      • Unreplied
                                      • Popular
                                      • GitHub
                                      • Docu
                                      • Hilfe