Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Qnap NAS von Iobroker aus herunterfahren

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Qnap NAS von Iobroker aus herunterfahren

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

      @BananaJoe

      Hier die gewünschte Beschreibung QNAP von Iobroker aus herunterfahren zu lassen indem ein DP gesetzt wird, wie besprochen in [Problem mit dem Blockly-Block "exec"]
      Die Idee mit dem Qnap runterfahren kam, als ich den "Core Temperaturen zu Iobroker Beitrag hier aus dem Forum um die Möglichkeit erweitert hatte Proxmox (z.B. bei Stromausfall mit USV) von Iobroker heraus runter fahren zu lassen.
      Script zum schicken der Core Temperaturen und Shutdown von Proxmox
      Qnap herunterfahren von Iobroker aus:

      Ziel soll sein einen DP auf true zu setzen und die Qnap fährt eigenständig runter. Hoch fahren klappt ja bereits über den WOL Befehl.

      Vorbereitung im Iobroker, Erstellung eines DP
      0_userdata.0.System.nas.shutdown

      0_userdata.0.System.nas.shutdown
      

      Per ssh auf der Qnap einloggen (Putty)
      login admin passwort

      cd /share/homes
      (DP1 und IPP anpassen)
      vim shutdown.sh

      #!/bin/bash
      #ioBroker-Datenpunkt der den Shutdown auslöst
      DP1=0_userdata.0.System.nas.shutdown
      #ioBroker-IP:Port
      IPP=192.168.0.222:8087
      
      # ioBroker-Datenpunkt auslesen
      DPSD=$(wget -qO- http://${IPP}/getPlainValue/${DP1})
      # Wenn Datenpunkt für Shutdown gesetzt
      if [ $DPSD = 'true' ]
      then
         # kurz warten
         sleep 10
         # Rueckmeldung an ioBroker senden und DP auf false
      curl http://${IPP}/set/${DP1}?value=false
         sleep 10
         # System standby/shutdown
         #echo mem > /sys/power/state
         /sbin/poweroff
      fi
      
      

      [ESC] :wq für speichern und schliessen
      [ESC] :q! für quit ohne speichern
      (nochmal reingehen und angucken!)

      Ausführbar machen:
      chmod +x shutdown.sh
      testen (DP steht auf false)
      Qnap sollte nach Aufruf des Scripts anbleiben
      nach setzen des DP auf true und Aufruf des Scrips sollte Qnap runterfahren

      Nun eine Zeile (ganz unten) hinzufügen ([EINFG]:
      (ACHTUNG, der übliche Weg mit crontab -e funktioniert, aber nur bis zum nä. reboot)

      vim /etc/config/crontab

      * * * * * /bin/sh /share/homes/shutdown.sh > /dev/null 2>&1
      

      Mit [ESC]:wq Speichern und schließen, Crontab Dienst neu starten

      crontab /etc/config/crontab && /etc/init.d/crond.sh restart
      

      Prüfen ob eingetragen:

      crontab -l
      
      0 12 * * * /mnt/ext/opt/LicenseCenter/bin/qlicense_tool local_check
      0 0 * * * /usr/local/sbin/qsh nc.archive >/dev/null 2>&1
      45 15 * * * /mnt/ext/opt/QcloudSSLCertificate/bin/ssl_agent_cli
      * * * * * /bin/sh /share/homes/shutdown.sh > /dev/null 2>&1
      

      0f5f8940-1c28-43dc-9295-f876ec1ac7c7-image.png
      Soweit so gut, es funktioniert und übersteht einen reboot/neustart! Zum Schluss noch die Logik für Alexa:
      411fffbb-c6d7-43a3-a580-8982b596040b-image.png

      Der DP Nas1starten triggert den WOL Skript, somit funktioniert „Alexa, schalte NAS ein“ UND „Alexa, schalte NAS aus“

      createState("javascript.0.NAS1Starten", 0);   // Generiert beim starten den Datenpunkt, wenn nicht vorhanden
      var wol = require('wake_on_lan');         // Lädt von ioBroker die das nötige Paket
      var myNAS1 = "00:08:9B:E6:7F:C0";         // MAC definieren
      // Ab hier automatisch
      on({id: "javascript.0.NAS1Starten", change: 'any'}, function (obj) {
         wol.wake(myNAS1);
         log("Script WOL - NAS 1 gestartet", "info");
          }
      );
      
      N 1 Reply Last reply Reply Quote 2
      • B
        BigMike71 last edited by

        Vielen Dank!
        Benutze zwar kein Alexa, aber dafür eine Sofabaton X1s Fernbedienung und damit funktioniert es auch wunderbar 👍

        1 Reply Last reply Reply Quote 1
        • N
          Nogger82 @J_Paul last edited by

          @j_paul Ich hole das mal wieder hoch, da ich auch gerne meine Qnap über iob herunterfahren möchte. Allerdings reagiert mein qnap nicht darauf.
          IPP habe ich auf die meines iob angepasst. Muss ich den Port auch auf 8087 schreiben oder so, bein direkten Zugriff auf iob, also 8081?
          Wenn ich das Skript mit bash shutdown.sh ausführe, schmeißt er folgenden Fehler raus:
          shutdown.sh: line 17: [: too many arguments
          Das wäre diese Reihe: if [ $DPSD = 'true' ]

          Kannst du mir evtl weiterhelfen? Wenn weitere Infos benötigt werden, reiche ich diese gern nach.

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

            @nogger82
            Simple API Adapter mit laufender Instanz auf Port 8087 hast du?

            N 2 Replies Last reply Reply Quote 0
            • skvarel
              skvarel Developer last edited by skvarel

              Für alles, was sich per ssh bedienen lässt, nutze ich den Linux-Control Adapter. Da hast du dann direkt Datenpunkte für deine Befehle.

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

                @skvarel
                Es kann gute Gründe geben die Root Rechte von einem Host (NAS, Proxmox usw.) nicht in die Weltgeschichte zu verteilen, sondern die Rechte und die Logik auf dem Host zu belassen, mal abgesehen davon, dass es wenn es von Iobroker Seite aus reicht einen einzelnen DP auf true zu setzen, anstatt einen Adapter zu installieren, wenn dies der einzige UseCase dafür sein sollte.

                1 Reply Last reply Reply Quote 0
                • N
                  Nogger82 @J_Paul last edited by

                  @j_paul den habe ich in der tat nicht laufen, nein. das guck ich mir an.

                  1 Reply Last reply Reply Quote 0
                  • N
                    Nogger82 @J_Paul last edited by

                    @j_paul

                    Bei mir siehts wie folgt aus. Bin leider kein Experte in Sachen Linux.

                    Der DP1 ist im iob genau so angelegt.

                    #!/bin/bash
                    
                    #ioBroker-Datenpunkt der den Shutdown auslöst
                    
                    DP1=0_userdata.0.System.nas.shutdown
                    
                    #ioBroker-IP:Port
                    
                    IPP=10.10.10.2:8087
                    
                    
                    # ioBroker-Datenpunkt auslesen
                    
                    DPSD=$(wget -qO- http://${IPP}/getPlainValue/${DP1})
                    
                    # Wenn Datenpunkt für Shutdown gesetzt
                    
                    if [ DPSD = 'true' ]
                    
                    then
                    
                       # kurz warten
                    
                       sleep 10
                    
                       # Rueckmeldung an ioBroker senden und DP auf false
                    
                    curl http://${IPP}/set/${DP1}?value=false
                    
                       sleep 10
                    
                       # System standby/shutdown
                    
                       #echo mem > /sys/power/state
                    
                       /sbin/poweroff
                    
                    fi
                    
                    

                    e13978e0-69bc-48a5-bbd0-a2e0f2b18819-grafik.png

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

                      @nogger82
                      Zum testen, kannst du als Benutzer „admin“ nehmen und wenn das funktioniert, ändern in „Sascha“. Dann musst du evtl. die Rechte für den DP anpassen.
                      Klappt das denn soweit?

                      N 2 Replies Last reply Reply Quote 0
                      • N
                        Nogger82 @J_Paul last edited by Nogger82

                        Hier stand grad Müll...

                        1 Reply Last reply Reply Quote 0
                        • N
                          Nogger82 @J_Paul last edited by

                          @j_paul eine Umstellung auf admin ist nicht möglich.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          900
                          Online

                          31.7k
                          Users

                          79.7k
                          Topics

                          1.3m
                          Posts

                          4
                          11
                          718
                          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