Gelöst! IF Befehl klappt nicht

Begonnen von Marc1993, 08 Mai 2014, 09:36:52

Vorheriges Thema - Nächstes Thema

michaelfhem

dann habe ich jetzt erstmal auch keine Idee mehr (die Anführungszeichen haben auch noch gefehlt). Um weiter zu kommen kann Du jetzt noch mit dem Log-Befehl Debuginfos in das fhem log schreiben. Evtl. kannst Du ja dann erkennen woran es liegt. Oder Du setzt statt dem room attribut erstmal einen dummy auf wert 1/2 um zu sehen was passiert.

define Test dummy
set Test 1
set Test 2


Ansonsten kann ich es heut abend mal probieren.

Grüße Michi
raspberry Pi 3 + jessie + fhem
Devices: Fritz Dect 200, Homematic (HMLan-Gateway), FS20 (CUL-Stick), Hue-Gateay, Sonos

hckoe

Könntest Du im "define" noch folgendes testen:

define AV_Receiver_stat1 notify AV_Receiver:input.* ...


Gruß
Helmut
# CT mit Debian Buster / FHEM aktuell / EnOcean TCM310 / Eltako FSA12, FUD12NPN, FSB12, FRW, FSRP-230V
# Permundo PCS234, Nodon NO-SIN-2-2-00, GTAGS

Marc1993

Ich habe jetzt einen Timer erstellt. Um Notify als Fehlerquelle auszuschließen.

define AV_Receiver_stat1 at +*00:00:10 { \
   if (Value("AV_Receiver:input") eq "airplay") {\
      fhem("attr AV_Receiver_AirPlay room Wohnung");;\
   } else {\
      fhem("attr AV_Receiver_AirPlay room hidden");;\
   }\
}

Keine Reaktion.

Bennemannc

Hallo,

bevor wir jetzt weiter Mutmaßen - schau doch mal bei den EventTypes mit List auf das Device. Dort stehen alle Events von dem Device. Diese sollten auch mit notify abgefangen werden.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Marc1993

Und wie mach ich das? Hab mir die Datei eventTypes.txt angeguckt. Da steht aber nichts relevantes drin.

488 AV_Receiver input: airplay
207 AV_Receiver input: av1
1 AV_Receiver input: av4
13 AV_Receiver input: av5
3 AV_Receiver input: av6
65 AV_Receiver input: hdmi1
3 AV_Receiver input: hdmi2
1 AV_Receiver input: hdmi3
1 AV_Receiver input: netradio
2 AV_Receiver input: tuner
207 AV_Receiver inputName: AV1
13 AV_Receiver inputName: AV5
3 AV_Receiver inputName: AV6
486 AV_Receiver inputName: AirPlay
64 AV_Receiver inputName: HDMI1
3 AV_Receiver inputName: HDMI2
776 AV_Receiver mute: off
27 AV_Receiver off
754 AV_Receiver on
240 AV_Receiver playStatus: play
246 AV_Receiver playStatus: stop
27 AV_Receiver power: off
754 AV_Receiver power: on


Ist nur ein Auszug. Aber die Datei besteht us nichts anderem.

hckoe

Das bedeuted, daß der Event "AV_Receiver input: airplay" heisßt und nicht "AV_Receiver:input airplay" !

define AV_Receiver_stat1 notify AV_Receiver.input:.* ...
# CT mit Debian Buster / FHEM aktuell / EnOcean TCM310 / Eltako FSA12, FUD12NPN, FSB12, FRW, FSRP-230V
# Permundo PCS234, Nodon NO-SIN-2-2-00, GTAGS

Marc1993

Geht immer noch nicht...

define AV_Receiver_stat1 notify AV_Receiver.input:.* { \
   if (Value("AV_Receiver:input") eq "airplay") {\
      fhem("attr AV_Receiver_AirPlay room Wohnung");;\
   } else {\
      fhem("attr AV_Receiver_AirPlay room hidden");;\
   }\
}

Bennemannc

Hallo,

zum einen würde ich mal define AV_Receiver_stat1 notify AV_Receiver[color=red]:[/color]input:.* versuchen.
Zum anderen - vor dem airplay ist ein Leerzeichen. Ich weis nicht, welchen Wert Value zurückgibt. Man könnte mal mit ".airplay" versuchen, oder mit if ReadingsVal("AV_Receiver","input"," ") eq "airplay")  oder " airplay".

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Marc1993

Immer noch nichts:

define AV_Receiver_stat1 notify AV_Receiver[color=red]:[/color]input:.* { \
   if (Value("AV_Receiver:input") eq ".airplay") {\
      fhem("attr AV_Receiver_AirPlay room Wohnung");;\
   } else {\
      fhem("attr AV_Receiver_AirPlay room hidden");;\
   }\
}

Bennemannc

Hallo,

uuups - das Color red geraffel sollte da nicht rein - ich wollte eigentlich nur den Doppelpunkt deutlicher machen.

Wenn nichts geht - fang doch einfach mal klein an. define blabla notify AV_Receiver:input:.* set irgendeine_Lampe on-for-timer 10.
Dann den input umschalten und schauen ob die Lampe für 10 sec an geht. Danach die erste if Abfrage (ohne else) und wieder die Lampe schalten - damit testest Du dann ob die Abfrage richtig ist. Danach erst die attr rein.
Vielleicht läßt sich so der Fehler eingrenzen.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

hckoe

Bau doch einfach mal ein Log mit ein:

define AV_Receiver_stat1 notify AV_Receiver:.* { \
   Log3(undef,1,"NAME=".$NAME." EVENT=".$EVENT);;\
   if (Value("AV_Receiver:input") eq ".airplay") { \
      fhem("attr AV_Receiver_AirPlay room Wohnung");;\
   } else {\
      fhem("attr AV_Receiver_AirPlay room hidden");;\
   }\
}


Gruß
Helmut
# CT mit Debian Buster / FHEM aktuell / EnOcean TCM310 / Eltako FSA12, FUD12NPN, FSB12, FRW, FSRP-230V
# Permundo PCS234, Nodon NO-SIN-2-2-00, GTAGS

Marc1993

Ich bin grade Bennemannc Vorschlag am testen. Also die Lampe bleibt an. Er startet alle 10 sek den Timer aufs neue.
Wenn ich die Lampe ausschalte, schaltet sie sich nach 1-2 sek wieder ein.

Das Notify scheint also zu funktionieren.

Marc1993

#27
Hab mal folgendes probiert:

define irgendeine_Lampe dummy
define blabla notify AV_Receiver:power:.* set irgendeine_Lampe on

Ist der Receiver aus und ich schalte ihn ein, geht die Lampe an.

hckoe

Du schaltest die Lampe ja auch nur automatisch an und nicht aus.
Wenn Du sie vor jedem Schalten des Receivers manuell ausschaltest,
dann wird sie bei jedem power-Event des Receivers eingeschaltet.

Gruß
Helmut
# CT mit Debian Buster / FHEM aktuell / EnOcean TCM310 / Eltako FSA12, FUD12NPN, FSB12, FRW, FSRP-230V
# Permundo PCS234, Nodon NO-SIN-2-2-00, GTAGS

Marc1993

#29
Ja das war mir bewusst. Wegen dem "on" am Ende der Zeile. Ich wollte nur ne schnelle Rückmeldung geben das Notify ja definitiv funktioniert.

Und:
Folgende config:

define irgendeine_Lampe dummy
attr irgendeine_Lampe room Wohnung
define blabla notify AV_Receiver:power:.* set irgendeine_Lampe $EVENT


Gibt das zurück:

irgendeine_Lampe
power: on


irgendeine_Lampe
power: off


Also die Lampe hat den Satus: power: on.

Readings
state
power: on
2014-05-08 15:44:57