Frage zu Notify-Syntax - Usecase "Rechner per WOL einschalten"

Begonnen von Misy, 22 März 2015, 15:51:39

Vorheriges Thema - Nächstes Thema

Misy

Hallo FHEM-Gemeinde!

Vielen Dank für Euer Engagement und Rudi - vielen Dank für die Umsetzung des Projekts!

Nachdem ich nun die ersten Gehversuche mit 3 Intertecno-Steckdosen und einem Rechner gemacht habe, bin ich dabei, das ganze zu verfeinern.

Nun aber zur eigentlichen Frage:

Ich habe einen Dummy-Schalter, mit dem ich per WOL meinen Rechner starten kann.
Um nun den Schalter in einen Taster umzubauen, wollte ich ihn automatisch wieder auf "off" setzen.

Relevante Konfig sieht so aus:

define Rechner_an FS20 11114444 1a
attr Rechner_an IODev CUL1
attr Rechner_an dummy 1
attr Rechner_an icon it_pc
attr Rechner_an room Arbeitszimmer

define act_on_Rechner_an notify Rechner_an {\
if ("%" ne "off") {\
  WakeOnLan('78:24:af:9b:cb:c1')\
  fhem('set Rechner_an off')\
}\
}


Der Rechner muss nur über die Weboberfläche startbar sein.

Frage an die Experten:
1. Ich sehe im Eventmonitor, dass Rechner_an auf "on" geht, aber der Sprung nach off erfolgt nicht.
2. Ist das überhaupt richtige Weg? Er funktioniert, aber gibt es was eleganteres?
3. Muss ich einen dummy zwingend an ein Protokoll wie FS20 koppeln (warum habe ich das überhaupt drin? - mal rumprobieren).

Im Wesentlichen treibt mich Frage 1 und 2. um.
Ich befürchte einen Syntax-Fehler, habe aber keine passenden Code-Beispiele gefunden.

Ich gelobe auch Besserung in Bezug auf die Arbeit mit dem Webeditor. Da scheint man ja mehr kaputt als heil machen zu können. (erinnert irgendwie an die händische Arbeit mit makefiles ;-) )

Danke Euch!

Michael

Otto123

Hallo Michael,

warum nimmst Du nicht das hier.

Da hast Du doch fast alles?

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

Intruder1956

Hallo,
ich als blutiger Anfänger habe es nach ca. 6-10 Std. geschafft meinen Windows7 Rechner über Fhem einer IT-Steckdose und WOL ein und auch ausschalten zu können.
Auch über VPN und andFhEM
ohne eine Frage im Forum zu stellen und da bin ich stolz drauf  ;D

define WernerPC WOL 6C:62:6D:xx:xx:xx 192.168.178.20
attr WernerPC shutdownCmd {`net rpc shutdown -I WERNER-PC -U Benutzername%Passwort`}

Es musste einiges auf dem Raspi nachinstalliert werden und auch auf dem Windows 7 Rechner eingestellt werden.
Habe alle Fehlermeldungen gegoogelt und auch gefunden, dann danach eingestellt und installiert 
Gruß

Zotac CI547 32GB RAM 500GB SSD,ESXI 6.5, VM-Fhem5.8, VM-ioBroker, Cul 868Mhz;Cul 433Mhz = Busware, LGW, HM-MOD-RPI-PCB, Uniroll, IT YCR-100 TMT2100,ITR-1500, LD382 mit Wifilight, ESA 2000 + SENSOR WZ SET,FS20 TFK, HM-Sec-SC, HM-CC-RT-DN,PCA301,

Misy

Hallo,

entschuldigt bitte - da ist meine Beschreibung wohl - wie leider zu häufig - an der relevanten Stelle unpräzise gewesen.

Ich habe mir einen Dummy-Schalter angelegt.
Dieser schaltet per WOL meinen Rechner ein. Alles ok soweit.

Das eigentliche Problem - ich möchte, dass der dummy-Schalter nach dem Schalten wieder in den "Aus"-Zustand zurück kehrt.
Und dabei verhaspele ich mich irgendwie mit der Syntax.

Konkreter eigentlich:
Wie kann ich innerhalb eines if-Blocks mehrere Anweisungen aufrufen?

Folgendes steht im Log:

2015.03.23 19:32:45 1: PERL WARNING: Bareword found where operator expected at (eval 89) line 4, near ")
  fhem"
2015.03.23 19:32:45 3: eval: {
if ("on" ne "off") {
  WakeOnLan('78:24:af:9b:cb:c1')
  fhem('set Rechner_an off')
}
}
2015.03.23 19:32:45 3: act_on_Rechner_an return value: syntax error at (eval 89) line 4, near ")
  fhem"


Ich hoffe, diese Beschreibung hilft Euch, mein Problem zu sehen...

Danke für die Geduld!

Gruß
Michael

Misy

Hallo alle!

Herzlichen Dank für Eure Hilfe - ich habe den Fehler nun gefunden, dank erneutem Querlesen durchs Forum etc.

Muss blind gewesen sein am Wochenende.

Im Code fehlte das doppelte Semikolon:


define act_on_Rechner_an notify Rechner_an {\
if ("%" ne "off") {\
  WakeOnLan('78:24:af:9b:cb:c1');;\
  fhem('set Rechner_an off')\
}\
}


Gruß
Michael