[DochNichtGanzErledigt] Synology mit WOL starten? Funktioniert nicht

Begonnen von misux, 07 Oktober 2019, 09:33:04

Vorheriges Thema - Nächstes Thema

misux

Ich denke zu viel auf ein mal...

Skript hier Skript da...Batch Datei Trallala.. ;D :-[

Warum ist es denn so kompliziert... Einschalten ist sooo einfach und Aus ein Graus... ???

Otto123

Hattest Du was schönes im Glas ?  ;D ;D ;D

Alternativ: Funk-Hardwaretaster an die Synology anschließen.

Prost und gute Nacht :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto123

Da du ein Freund von Script Dateien bist - Ein Weg andersrum :)
Du lässt auf der Synology zyklisch (cronjob) ein Script laufen, das fragt in FHEM einen Zustand (Reading von deinem WOL Device)  wenn da off steht fährt die Synology runter.
Nur laut gedacht :) wenn Du willst teste ich das morgen mal exemplarisch (ich habe keine Synology).

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

misux

 ??? Hmmm... Na das wäre doch auch was...

Eine .sh Datei auf der Synology die der Synology sagt schau mal im Fhem Nach ob ein "dummy" den Status off hat, wenn ja fahre die Synology runter...

Warum nicht! Ohne das ganze Trara... ;D Also wenn du mir das irgendwie erläutern könntest...  :-*

Naja, das Glas hätte ruhig voller sein können... ;D

Otto123

Guten Morgen,

na hoffentlich hatte ich nicht eine zu große Klappe. Ich konnte ermitteln:
Auf der Synology ist per default wohl kein curl installiert, das brauche ich aber.
Ich könnte das im Script machen, aber die Synology hat wohl auch per default keinen Paketmanager (ipkg)

Da musst Du sicher Hand anlegen ;)

Ich brauche für die Ausführung noch einen "HTTP Client" fürs Script, den lade ich im Script falls er fehlt von meinem Repository.
Am Anfang vom Script musst Du die URL vom FHEM Server, das WOL Device und das Reading active definieren. Wenn Du hier Benutzer Name und Passwort brauchst musst Du das in der URL angeben (http://user:password@hostname:portnumber)
Das Script ist so erstmal "unschädlich" es wird nicht wirklich was gemacht, außer mein Script nachgeladen, getestet und bei Erfolg bei FHEM abgefragt.

Das Reading active wird durch den Schaltbefehl im WOL Device gesetzt (on/off) damit brauchen wir keinen Dummy und kein weiteres Gerät

Hier mein Script mit Kommentaren ich hoffe es ist so verständlich:
#!/bin/bash
# Abfrage in FHEM als Variable
hosturl="http://raspib3:8083"
device="debian350"
reading="active"

#functions
# getFile FileName RepositoryName
function getFile {
  if [ ! -e $1 ]
  then
    echo "$1 is missing"
    wget https://raw.githubusercontent.com/heinz-otto/$2/master/$1
    chmod +x $1
  fi
}
# get the HTTP Client
getFile fhemcl.sh fhemcl

# test ob notwendige programme vorhanden sind
prog="curl"
if ! which $prog > /dev/null
   then
      echo "$prog fehlt, bitte installieren"
      #ipkg update
      #ipkg install curl
      # erstmal Notausgang
      exit
   else
      echo "$prog vorhanden"
fi

# Abfrage eines Reading in FHEM
status=$(./fhemcl.sh $hosturl "{ReadingsVal('$device','$reading','')}")
if [[ $status == "off" ]]
   then
      echo "ich soll ausschalten"
   else
      echo "der Status ist $status"
   fi


Na ich bin gespannt ob das auf der Syno funktioniert :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto123

Damit es vielleicht nicht so gewaltig aussieht, habe ich den Test ob curl vorhanden ist in das fhemcl.sh eingebaut und den Code minimiert:
#!/bin/bash
# Abfrage in FHEM als Variable
hosturl="http://raspib3:8083"
device="debian350"
reading="active"

# HTTP Client holen
script="fhemcl.sh"
rep="fhemcl"
if [ ! -e $script ] ;then wget https://raw.githubusercontent.com/heinz-otto/$rep/master/$script;chmod +x $script;fi

# Abfrage eines Reading in FHEM
status=$(./fhemcl.sh $hosturl "{ReadingsVal('$device','$reading','')}")
if [[ $? > 0 ]] ;then echo "Es ist ein Fehler aufgetreten: $status";exit;fi

# Rückgabe auswerten und etwas tun
if [[ $status == "off" ]]
   then
      echo "ich soll ausschalten"
   else
      echo "der Status ist $status"
   fi

Damit das mit dem neuen fhemcl.sh funktioniert vorher den alten löschen.
rm fhemcl.sh
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

misux

 :o
Hätte ich mel mehr getrunken... ;D

OKAYYY... werde es mir heute Abend mal ansehen... muss jetzt leider Malochen... Schon mal veielen Dank "Udo..." ;D ;D ;D

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

misux

OTTO123, ich habe es leider noch nicht geschafft... bin nächets Woche wieder unterwegs, also erst in einer Woche wieder..

Wollte nur mal bescheidgeben. Nicht das du denkst ich habe es aufgegeben... ich bleibe dran und berichte wenn ich soweit bin.

Dennoch vielen DANK!!!