Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Raspi aus VIS herunterfahren

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    Raspi aus VIS herunterfahren

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

      Hallo zusammen,

      ich habe einen RasPi mit einem kleinen Touchdisplay im Garten. Da der aber nur bei Bedarf eingeschalten wird wäre es schön wenn ich ihn auch ordentlich herunterfahren könnte weil ja sonst beim Neustart der Browser immer erst herumschimpft dass er eben nicht ordentlich beendet wurde usw. Da ich den Browser natürlich im Vollbildmodus laufen habe und auch keine Tastatur anschließen will hätte ich gerne einen Button auf meiner View mit dem ich den RasPi sauber herunterfahren könnte. Allerdings fehlt mir da im Moment die Idee wie ich überhaupt rangehen könnte :?:

      Hat von Euch jemand eine Idee oder schon mal sowas gemacht?

      Gruß und Danke

      Thilo

      1 Reply Last reply Reply Quote 1
      • N
        nobody last edited by

        Hallo Thisoft,

        ein kleines javascript oder Node-red Flow schreiben, der auf einen selbst angelegten State hört (Wert=1) und mit Exec das Kommando shutdown aufruft.

        Im Programm erst den State wieder zurück auf 0 setzen und danach erst das Kommando aufrufen.

        In VIS dann einfach einen Schalter mit dem State verbinden.

        Gesendet von meinem GT-N8000 mit Tapatalk

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

          @nobody:

          der auf einen selbst angelegten State hört (Wert=1) und mit Exec das Kommando shutdown aufruft. `
          Beispielscript:

          createState("RaspPi-down", false, {
                            read: true, 
                            write: true, 
                            desc: "RaspPi herunterfahren", 
                            type: "boolean", 
                            def: false
          });
          
          on("javscript.0.RaspPi-down", function(dp) {
              if(dp.state.val) { 
                  setState(dp.id, false);
                  exec("shutdown");
              }
          });
          
          
          1 Reply Last reply Reply Quote 0
          • D
            dwm last edited by

            … der Raspi ist aber remote, oder?

            Dann wird exec("shutdown") den Vis server runterfahren.

            Einfach das shutdown Kommando auf dem Raspi mit ssh aufrufen, SSH muss man dann natürlich mit public/private key login konfigurieren, damits ohne Passwort-Eingabe klappt.

            Werner

            1 Reply Last reply Reply Quote 0
            • N
              nobody last edited by

              Nein, es wird das System runtergefahren, auf dem sich der Javascript-Adapter befindet.

              Auf dem Remote-System muss hierfür natürlich eine Instanz sein.

              Außerdem steht ja oben, dass auch das Touch-Display im Garten ist. Deswegen gehe ich mal davon aus, dass auf dem System auch vis drauf ist. 😉

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

                Oder ein Script zum Runterfahren auf dem Raspi anlegen und wie folgt aufrufen:

                createState('javascript.0.System.Shutdown', false, {name: 'Skript bei VIS Tastendruck starten'});
                
                setState('javascript.0.System.Shutdown', false);
                
                on ({
                id: "javascript.0.System.Backup",
                change: 'ne',
                val: true
                },
                function(){
                   log ("--> Shutdown gestartet!");
                   exec('/opt/shutdown.sh', function(err, stdout, stderr) {
                    if (err) {
                       log(stderr,'error');
                       return;
                        }
                    });
                });
                
                

                Dann einfach den Status per Tastendruck auf "true" ändern.

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

                  @Brati:

                  createState('javascript.0.System.Shutdown', false, {name: 'Skript bei VIS Tastendruck starten'});
                  ```` `  
                  

                  Erzeugt einen Datenpunkt vom Typ "mixed", was vermieden werden sollte. Außerdem ist die Beschreibung ("desc") leer.
                  @Brati:

                  setState('javascript.0.System.Shutdown', false);
                  ```` `  
                  

                  erzeugt beim ersten Scriptstart ein Fehler-Log, da dann der Datenpunkt noch nicht vorhanden ist (createState() ist noch nicht fertig); außerdem unnötig, da der Wert schon mit createState(id, false, {…}) auf false gesetzt wird. Dafür fehlt das Rücksetzen auf false in der on-Funktion.@Brati:

                  on ({
                  id: "javascript.0.System.Backup",
                  change: 'ne',
                  val: true
                  },
                  function(){
                  ...
                  });
                  ```` `  
                  

                  ist identisch mit

                  on("javscript.0.System.Backup", function(dp) {
                      if(dp.state.val) {
                          ...
                      }
                  });
                  

                  Die ID in on(id, …) stimmt nicht mit der iD des mit createState() erzeugten Datenpunktes überein. Das Shellscript "shutdown.sh" im Ordner "/opt" existiert normalerweise nicht. "shutdown" ist ein Symlink im Suchpfad "/sbin". Besser:

                  on({id: "javascript.0.System.Shutdown", change: 'ne', val: true}, function(){
                     log ("--> Shutdown gestartet!");
                     setState("javascript.0.System.Shutdown", false);
                     exec('shutdown', function(err, stdout, stderr) {
                         if (err) log(stderr,'error');
                     });
                  });
                  
                  
                  1 Reply Last reply Reply Quote 0
                  • Thisoft
                    Thisoft last edited by

                    Hallo und vielen Dank für Eure Antworten.

                    Das mit dem exec-Befehl klingt ja eigentlich gut und einfach. Allerdings - nochmal zum Verständnis: Ich lasse auf diesem RasPi lediglich VIS in einem Browser anzeigen, da ist nix ioBroker-seitiges drauf installiert. Bedeutet das, dass mein Vorhaben so gar nicht geht, oder wäre die Lösung mit einem Shutdown-Script "irgendwo" auf diesem RasPi und Aufruf des Scripts per exec möglich?

                    Gruß Thilo

                    1 Reply Last reply Reply Quote 0
                    • N
                      nobody last edited by

                      Interessante Zusatzinformation, die ich oben nicht raus gelesen hatte …

                      Dann kannst du das System, wie dwm geschrieben hat, mittels ssh runter fahren.

                      Schau mal hier: https://www.raspberrypi.org/forums/view ... 31&t=13640

                      Hier ist beschrieben wie man ssh keys erstellt, sodass beim Aufruf des ssh Kommandos mit exec kein Passwort erforderlich ist:

                      https://jankarres.de/2013/12/raspberry- ... t-aendern/

                      Gesendet von meinem GT-N8000 mit Tapatalk

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      1.0k
                      Online

                      32.1k
                      Users

                      80.7k
                      Topics

                      1.3m
                      Posts

                      5
                      9
                      2919
                      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