Hallo zusammen,
ich habe folgendes Problem:
Ich habe mir einen HM-RC-Sec3-B (3 Tasten Fernbedienung) gekauft.
Diese habe ich angelernt und bekomme auch alle Daten in FHEM (FB7390).
define CUL_HM_HM_RC_SEC3_B_1ADC30 CUL_HM 1ADC30
attr CUL_HM_HM_RC_SEC3_B_1DDD30 .devInfo 030000
attr CUL_HM_HM_RC_SEC3_B_1DDD30 .stc 40
attr CUL_HM_HM_RC_SEC3_B_1DDD30 firmware 1.3
attr CUL_HM_HM_RC_SEC3_B_1DDD30 model HM-RC-SEC3-B
attr CUL_HM_HM_RC_SEC3_B_1DDD30 room CUL_HM
attr CUL_HM_HM_RC_SEC3_B_1DDD30 serialNr JEQ0646019
attr CUL_HM_HM_RC_SEC3_B_1DDD30 subType remote
define Fern_HMS_int CUL_HM 1ADC3001# CUL_HM_HM_RC_SEC3_B_1ADC30_Btn_01
attr Fern_HMS_int model HM-RC-SEC3-B
define Fern_HMS_ext CUL_HM 1ADC3002 # CUL_HM_HM_RC_SEC3_B_1ADC30_Btn_02
attr Fern_HMS_ext model HM-RC-SEC3-B
define Fern_HMS_unscharf CUL_HM 1ADC30 # CUL_HM_HM_RC_SEC3_B_1ADC30_Btn_03
attr Fern_HMS_unscharf model HM-RC-SEC3-B
Mein Problem ist, das ich über folgendes Notify den dummy "A_Anlage_schalten" Ein/Aus schalte.
define Fernbed_abfrage notify Fern_HMS_unscharf.*(Short).* { fhem("set A_Anlage_schalten Aus")}
define Fernbed_abfrage2 notify Fern_HMS_int.*(Short).* { fhem("set A_Anlage_schalten Ein")}
Das nun beschaltete dummy "A_Anlage_schalten" wiederum schaltet all die anderen schönen Sachen.
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"} 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"}}}
Leider schaltet nun aber nur der dummy A_Anlage_schalten Ein/Aus, das zweite notify, welches auf diesen ja erst reagieren soll, macht aber gar nichts.
Ich habe dann mal versucht, virtuelle Taster zu erzeugen, welche schon mal der Fernbedienung ein ACK zurücksenden und mit dessen Status ich arbeiten könnte.
Das mit dem ACK funktioniert zwar, aber die Virtuellen Taster selber nehmen keinen Wert an mit dem ich weiter arbeiten könnte.
define VFern_HMS CUL_HM 332211
attr VFern_HMS expert 2_full
attr VFern_HMS model virtual_1
attr VFern_HMS peerIDs 1ADC3001,
attr VFern_HMS subType virtual
Als State steht immer nur ???
hi,
was steht in $value{A_Anlage_schalten}?
probiere es doch einmal
define AAnlage_Ein notify A_Anlage_schalten {Log 1,"gefunden wurde:".value{A_Anlage_schalten}}
und schau im Logfile nach , was Sache ist.
dann kannst du probieren:
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"} else { fhem "set A_Anlage Ein;;set Alarm_Quit ready;;set Alarm_neu Aus;;set Mails_erlauben Ein"}}
Gruss Martin
Hallo,
also zunächst $value{A_Anlage_schalten} bringt folgenden Fehler ==>Unknown command $value{A_Anlage_schalten}, try help
Das Merkwürdige ist, ich habe bereits eine FS20 Fernbedienung, welche via notify A_Anlage_schalten Ein/Aus schaltet, genau wie die HM Remote.
Wenn ich mir den State von A-Anlage_schalten ansehe, ändert sich dieser auch und zwar bei beiden Fernbedienungen.
Der Unterschied ist nur, das zweite notify, welches auf A_Anlage_schalten reagieren soll, reagiert nur wenn ich mit der FS20 Fernbedienung schalte???
Was kann das sein, ich habe echt keine Idee, eigentlich schaltet der zu schaltende dummy ja, nur der daraus resultierende notify will nicht??!!
kurzer Einwurf:
{Value("A_Anlage_schalten")} => erzeugt je nach Tastendruck Ein bzw Aus, wie gesagt, das scheint zu klappen.
was jetzt $value oder Value? Du solltest nur eines nehmen.
dein erstes Notify hat eine Verbindung zu HM - aber das zweite ist unabhängig - egal ob FS20 oder HM.
Prüfe noch einmal, was du geschrieben hast in beiden Fällen
Gruss Martin
Hallo,
genau das verstehe ich halt nicht.
Das erste notify regiert auf die Fernbedienungen (FS20 oder HM) und schaltet A_Anlage_schalten entweder Ein oder Aus.
Das zweite notify reagiert aud A_Anlage_schalten und schaltet diverse andere Dinge (siehe oben).
Das MERKWÜRDIGE jetz ist, das bei Betätigung von der FS20 Fernbedinung A_Anlage_schalten den Status Ein bzw. Aus annimt und auch das zweite notify funktioniert.
Wenn ich nun die HM Fernbedienung betätige, ändert A-Anlage_schalten auch den Status, aber das zweite notify wird nicht bearbeitet!?????
define AAnlage_Ein notify (A_Anlage_schalten)
Lass mal die Klammer weg, die macht an der Stelle keinen Sinn.
Hallo,
auch das weglassen der Klammer bringt keine Besserung.
Hi,
$value ist wohl nicht korrekt, auch die Hochkomma
Probiere besser einmal:
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"}\
elsif (Value{A_Anlage_schalten} eq "Ein") { \
fhem " set A_Anlage Ein;;\
set Alarm_Quit ready;;\
set Alarm_neu Aus;;\
set Mails_erlauben Ein"}}
wenn man nicht weiter kommt sollte man immer mit einfachen Konstellationen zu debuggen anfangen. Versuche doch einmal festzustellen, was dein "value" liefert:
define AAnlage_Ein notify A_Anlage_schalten {\
Log 1,"value of A_Anlage_schalten is:".Value{A_Anlage_schalten}}
Gruss Martin
Hallo,
ich habe mal folgenden Code von Dir probiert:
define AAnlage_Ein notify A_Anlage_schalten {\
Log 1,"value of A_Anlage_schalten is:".Value{A_Anlage_schalten}}
Ergebnis:
2013.08.10 15:52:12 3: AAnlage_Ein return value: Bareword "A_Anlage_schalten" not allowed while "strict subs" in use at (eval 10986) line 1.
Was heißt das????
sollte mit Value() gehen anstelle von Value{}.
oder Value("")
So,
folgender Code funktioniert:
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.
Das Problem, das dies der Log nicht mitbekommt ist denke ich auch dann das selbe, das die nachfolgenden notifys es nicht mitbekommen.
bei HM wird während der Bearbeitung eines events das Triggern weiterer gesperrt.
Falls dies innerhalb des codes passiert achte ich darauf, dass der trigger nachträglich ausgelöst wird um die Kausalität zu wahren.
Möglich, dass FS20 dies nicht benötigt.
Du kannst also den Wert setzen, aber nicht "hierarchisch triggern" innerhalb eines triggers.
Du kannst es aber gezielt selbst forcieren. Nutze anstelle von
set A_Anlage Ein
besser
trigger A_Anlage Ein
Gruss Martin