nicht funktionierende notify

Begonnen von Kiter192, 11 August 2013, 20:56:18

Vorheriges Thema - Nächstes Thema

Kiter192

Hallo zusammen,

Ich verzweifle langsam, weil es einfach keinen Sinn macht.

Folgende Ausgangslage:

Ich möchte mit meinem HM-Handsender oder auch HM-2fachtaster einen dummy schalten.

define Fernbed_HMS122_abfrage notify VFern_HMS_int:virtActState.* {if ("$value{VFern_HMS_int}" eq "Ein") {fhem "set A_Anlage_schalten Ein"}}

Gleiches mache ich auch mit meiner FS20 Fernbedienung:

define Fernbed_FS20_abfrage notify Fern_CON1_EA {if ("$value{Fern_CON1_EA}" eq "Aus") { fhem "set A_Anlage_schalten Aus"} else {if ("$value{Fern_CON1_EA}" eq "Ein") { fhem "set A_Anlage_schalten Ein"}}}

Das nun beschaltete dummy wird in einem nächsten notify ausgewertet:

define AAnlage_Ein notify A_Anlage_schalten {if ("$value{A_Anlage_schalten}" eq "Aus") { fhem "set A_Anlage Aus;;set Alarm_Quit reset;;set Alarm Aus;;set Alarm_neu Aus;;set Alarm_G Aus;;set Alarm_G2 Aus"} else {if ("$value{A_Anlage_schalten}" eq "Ein") { fhem "set A_Anlage Ein;;set Alarm_Quit ready;;set Alarm_neu Aus;;set Mails_erlauben Ein"}}}


Nun das Problem:

Der durch die Fernbedienungen beschaltete dummy "A_Anlage_schalten" wird, wie er es auch soll, von den Fernbedienungen (HM und FS20) geschaltet.
Das nachfolgende notify, welches auf A_Anlage_schalten reagieren soll, reagiert nur wenn A_Anlage_schalten von der FS20 Fernbdienung geschaltet wurde.

Ein speichern von A_Anlage_schalten im Log brachte folgendes Ergebnis:

define AAnlage_Ein3 notify A_Anlage_schalten {\
Log 1,"value of A_Anlage_schalten is:".Value("A_Anlage_schalten")}


Bei Betätigung der FS20 Fernbedieung wird im Log die Statusänderung angezeigt.
Bei Betätigung der HM Fernbedieung nicht.

Aktualisiere ich den Browser (F5) dann sieht man aber das der Status von A_Anlage_schalten auch bei der HM-Fernbedienung sich ändert.


Kann mir das einer erklären oder besser helfen es zu beheben?????

Kiter192

Neue Erkentnisse:

Wenn ich anstelle von:

define Fernbed_HMS122_abfrage notify VFern_HMS_int:virtActState.* {if ("$value{VFern_HMS_int}" eq "Ein") {fhem "set A_Anlage_schalten Ein"}}

nun folgenden Code verwende:

define Fernbed_HMS122_abfrage notify VFern_HMS_int:virtActState.* {if ("$value{VFern_HMS_int}" eq "Ein") {fhem "define Test at +00:00:01 set A_Anlage_schalten Ein"}}

dann funktioniert auch alles weitere.

Das ist doch ein zyklus Problem oder???

Zrrronggg!

Ich schalge vor, erstmal die veraltete Form ("$value{  (depreciated) zu ersetzen durch { if (Value(".
Das dürfte allerdings nicht die Ursache des Problem sein.

Nächste Frage: Warum testest du  VFern_HMS_int:virtActState.*

Und dann hinterher nochmal auf "Ein" anstelle gleich im Notify auf "Ein" zu testen. Ich gebe zu, die frage mag meiner beschränkten Erkentniss zu HM FBs geschuldet sein.
Aber könntest du nicht vereinfachend

define Fernbed_HMS122_abfrage notify VFern_HMS_int:Ein set A_Anlage_schalten Ein

Versuchen?
Auch das erklärt nicht, warum dein konkretes notify nicht geht, ich will nur das Problem vereinfachen.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Kiter192

Hallo und danke für die Verbesserungsvorschläge.

Ich habe mir das meiste via codeschnipsel zusammengesucht und bin ehrlichgesagt an manchen Stellen einfach froh das es so klappt oder auch nicht. ;)