FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Schlamandi am 04 Februar 2018, 21:56:28

Titel: [Gelöst]Frage zur If Anweisung
Beitrag von: Schlamandi am 04 Februar 2018, 21:56:28
Hallo,  ich lese schon einige Zeit hier mit.
Doch jetzt habe ich mich selbst fest gefahren.
Wahrscheinlich ist es wieder einfacher als ich es versuche.
Ich habe einen Verstärker, wenn der eingeschaltet wird soll die funksteckdose des Subwoofer auch an gehen.
Der Status des Verstärker Frage ich mit get wz_Denon power

So sieht mein notify aus
wz_Denon:power:.* {
if ("$EVENT" eq "on") {fhem("set BassBox on") if (Value ("BassBox") eq "off")}
else {fhem ("set BassBox off") if (Value ("BassBox") eq "on")}
}


Leider funktioniert es so nicht. Das Event on kommt nicht rein
Titel: Antw:Frage zur If Anweisung
Beitrag von: KernSani am 04 Februar 2018, 22:04:38
Hi,

wie sieht das event denn im EventMonitor aus? Da steht sicher nicht nur "on". Du brauchst übrigens garkeine komplexe Abfrage:
Wahrscheinlich geht sowas in der Art:

wz_Denon:power:.* set BassBox:FILTER=STATE!=$EVTPART1 $EVTPART1

Grüße,

Oli
Titel: Antw:Frage zur If Anweisung
Beitrag von: Schlamandi am 06 Februar 2018, 05:52:40
Also der Eventmonitor gibt folgendes zurück
DENON_AVR wz_Denon power: on
Titel: Frage zur If Anweisung
Beitrag von: KernSani am 06 Februar 2018, 06:04:50
The variable $EVENT will contain the complete event, e.g. measured-temp: 21.7 (Celsius)
Bei dir also
power: on
Hast du meinen Codevorschlag mal ausprobiert?

Kurz, weil mobil...
Titel: Antw:Frage zur If Anweisung
Beitrag von: Schlamandi am 06 Februar 2018, 06:16:26
werde ich heute Abend mal testen
Titel: Antw:Frage zur If Anweisung
Beitrag von: Schlamandi am 06 Februar 2018, 19:38:05
Zitat von: KernSani am 04 Februar 2018, 22:04:38

wz_Denon:power:.* set BassBox:FILTER=STATE!=$EVTPART1 $EVTPART1


Vielen Dank, der Code arbeitet astrein. Kannst du mir zu dem STATE und EVENTPART eine kleine Erläuterung geben, oder einen Link.

EVENTPART1 wird den ersten oder den zweiten Teil des Ergebnisses zurückgeben. Je nachdem ob es auch ein EVENTPART0 gibt.
Aber was  bewirkt der FILTER und das STATE?
Titel: Antw:Frage zur If Anweisung
Beitrag von: KernSani am 06 Februar 2018, 19:43:38
Zitat von: Schlamandi am 06 Februar 2018, 19:38:05
Aber was  bewirkt der FILTER und das STATE?
Das ist eine Devspec (https://fhem.de/commandref.html#devspec) Kurz gesagt, suchen wir alle Devices die BassBox heißen und filtern die, deren STATE nicht dem EVTPART1 entspricht (also, wenn ein "on" geschickt wird suchen wir alle die nicht on sind und setzen sie auf on - wenn die BassBox auf on ist, wird sie nicht gefunden und es passiert nix, wenn sie off ist wird sie gefunden und auf on gesetzt - genauso umgekehrt)

EDIT: Bitte noch vor das Subject des ersten Posts [Gelöst] schreiben :-)