Hallo,
ich habe eine Keymatic an fhem angebunden. Dabei sind die Handsender / Remote sowohl direkt mit der Keymatic, als auch mit fhem gepaired. Dabei habe ich in fhem für den Button "3" ein Notify genutzt.
Seit meinem Update heute auf die aktuellste Version funktioniert dieser nicht mehr:
define test notify remote_stefan_btn_03.* set fl_licht_gr on
Wenn ich hingegen den remote_stefan_btn_03.*
durch remote_stefan.*
ersetzte, funktioniert die Ansteuerung des Notify`s (dann natürlich auf allen Buttons, was ich eigentlich nicht möchte :-))
Habt Ihr eine Idee, woher das Verhalten kommt und wie ich dieses wieder umstellen kann?
Viele Grüße
Stefan
Hallo Stefan,
ganz komme ich noch nicht mit. Deine RC3 sollte 3 Buttons haben und damit sollten sich 3 Kanäle definieren
remote_stefan
remote_stefan_btn_01
remote_stefan_btn_02
remote_stefan_btn_03
die sind alle noch vorhanden?
Der Default schreibt aber "Btn", nicht "btn" - kannst du das prüfen?
Du willst ein Notify nur für Button 3.
Wenn du inform on machst solltest du sehen, welche trigger kommen. Kannst du dies loggen?
Nachdem du auf den Trigger der FB abfragst ist das peering nebensache.
Gruss
Martin
Hallo Martin,
genau, sorry, ich war gestern so in der Fehleranalyse, dass ich die Details nicht hier reingeschrieben hatte :-)
Also, der RC ist mit drei Buttons richtig definiert und gepaired und hat bis zum vorletzten Update auch mit dem oben geschrieben Notify funktioniert.
Hier die Definition des RC:
define remote_stefan CUL_HM 1B1AD9
attr remote_stefan devInfo 030000
attr remote_stefan firmware 1.3
attr remote_stefan hmClass sender
attr remote_stefan model HM-RC-KEY3-B
attr remote_stefan room CUL_HM
attr remote_stefan serialNr JEQ0079273
attr remote_stefan subType remote
define remote_stefan_btn_01 CUL_HM 1B1AD901
attr remote_stefan_btn_01 model HM-RC-KEY3-B
attr remote_stefan_btn_01 room CUL_HM
define remote_stefan_btn_02 CUL_HM 1B1AD902
attr remote_stefan_btn_02 model HM-RC-KEY3-B
attr remote_stefan_btn_02 room CUL_HM
define remote_stefan_btn_03 CUL_HM 1B1AD903
attr remote_stefan_btn_03 model HM-RC-KEY3-B
attr remote_stefan_btn_03 room CUL_HM
Ich hatte die jeweiligen Devices mittels rename umbenannt und, um Fehler zu vermeiden, konsequent Kleinschreibung verwendet.
Wenn ich nun den Button "3" auf der FB drücke, wird folgendes im Logfile geloggt:
2013.01.06 16:20:31 5: HMLAN/RAW: /E1B1AD9,0000,1AF9BE21,FF,FFB8,8184401B1AD900000003FB
2013.01.06 16:20:31 5: HMLAN_Parse: HMLAN1 S:E1B1AD9 stat:0000 t:1AF9BE21 d:FF r:FFB8 m:8184401B1AD900000003FB
2013.01.06 16:20:31 5: HMLAN1 dispatch A0B8184401B1AD900000003FB
2013.01.06 16:20:32 5: Triggering remote_stefan (2 changes)
2013.01.06 16:20:32 5: Notify loop for remote_stefan battery: ok
und auf dem CLI (telnet localhost 7072):
fhem> CUL_HM remote_stefan battery: ok
CUL_HM remote_stefan remote_stefan_btn_03 Short (to ActionDetector)
Wie schon geschrieben, wenn ich auf das Gerät "remote_stefan" den Notify setzte, funktioniert dieser. Wenn ich den Notify mittels "trigger remote_stefan_btn_03" auslöse, funktioniert dieser auch.
Viele Grüße
Stefan
Hallo,
ich habe exakt das gleiche Problem mit meiner HM-RC-Sec3. Eins der letzten Updates hat meine notifies auf die Buttons unbrauchbar gemacht.
Der notify auf den Kanal CUL_HM_remote_Btn_03 funktioniert nicht mehr, ein inform on liefert
CUL_HM CUL_HM_remote battery: ok
CUL_HM CUL_HM_remote CUL_HM_remote_Btn_03 Short (to HMvirtual).
Hast Du schon eine Lösung gefunden?
Gruß,
Andre
Hi André, leider habe ich von Martin keine Antwort mehr erhalten und auch keine andere Lösung bisher gefunden.
Viele Grüße Stefan
Hallo ihr Beiden,
ich habe noch nicht tief reinsehen koennen, keine Zeit.
Werde es mir für morgen vornehmen.
Das Notify bearbeitet offensichtlich nicht den ganzen string sondern nur die 'entity'.
Als entity wird das Device genommen - ich sollte hier aber den Channel nehmen.
Werde ich überarbeiten.
Zu merken ist, dass das notify nicht den gesamten string parsed
Gruss
Martin
Hallo Martin, kein Problem! Dass mit der Zeit kenne ich (leider) auch zu gut
Hi,
das notify parsed immer vom string-begin (haette ich wissen muessen)
Der Event kommt als
<dev> <channel> <length> (<to>)
also
CUL_HM_remote CUL_HM_remote_Btn_03 Short (to HMvirtual).
demnach ist das Notify:
define test notify .*remote_stefan_btn_03.* set fl_licht_gr on
Aufpassen muss man noch, wenn man event-on-change macht. Dann kommt der Event des Button nicht zum Notify durch, wenn sich nichts aendert. Und der state bei einem Button-press aendert sich nicht, wohin auch?
Gruss
Martin
Hallo Martin,
so funktioniert es wie erwartet, vielen Dank für die Erläuterung.
War aber mal anders, oder?
Gruß,
André
Hallo Martin,
vielen Dank für die Info! Mit dem angepassten Notify funktioniert der Button wieder.
Viele Grüße und vielen Dank für Deine Mühe!!!
Stefan
Hallo!
Bin nach einem gestrigen Update in genau dieselbe Falle getappt.
Zitat von: martinp876 schrieb am So, 13 Januar 2013 10:51Der Event kommt als
<dev> <channel> <length> (<to>)
also
CUL_HM_remote CUL_HM_remote_Btn_03 Short (to HMvirtual).
demnach ist das Notify:
define test notify .*remote_stefan_btn_03.* set fl_licht_gr on
Aufpassen muss man noch, wenn man event-on-change macht. Dann kommt der Event des Button nicht zum Notify durch, wenn sich nichts aendert. Und der state bei einem Button-press aendert sich nicht, wohin auch?
Sehe ich das richtig, dass jetzt solche definition:event Sachen nicht mehr funktionieren:
CUL_HM_remote_Btn_03:(Short|Long.(1|2)).* set something on
CUL_HM_remote_Btn_03:Long.3.* set something off
(Ich weiß, "Long 1" gibt's nicht, tut aber nicht weh). Mein notify funktioniert nur noch, wenn ich es z. B. so definiere:
CUL_HM_remote:CUL_HM_remote_Btn_03.(Short|Long.(1|2)).* set something on
CUL_HM_remote:CUL_HM_remote_Btn_03.Long.3.* set something off
Aber ist dann "CUL_HM_remote_Btn_03 Long 3.*" wirklich das/der Event? Sollte das nicht nur der Teil "Long 3.*" sein? Das hier geht nicht:
CUL_HM_remote.CUL_HM_remote_Btn_03:(Short|Long.(1|2)).* set something on
CUL_HM_remote.CUL_HM_remote_Btn_03:Long.3.* set something off
Wahrscheinlich liegt es daran, dass der Event am ersten Space abgetrennt wird richtig?
Ohne Event geht's natürlich, also so:
CUL_HM_remote.CUL_HM_remote_Btn_03.(Short|Long.(1|2)).* set something on
CUL_HM_remote.CUL_HM_remote_Btn_03.Long.3.* set something off
Oder so:
.*CUL_HM_remote_Btn_03.(Short|Long.(1|2)).* set something on
.*CUL_HM_remote_Btn_03.Long.3.* set something off
Ist aber unschön.
Durch das voranstellen von <dev> ist doch definition:event jetzt effektiv ausgehebelt, oder?
Mit fröhlichem Gruß,
Rob
Hallo Rob,
Nur falls du auf eine Antwort von mir wartest:
1) ich bin kein notify spezialist - habe mich nur gering damit befasst - bisher...
2) HM macht bei notifies nichts anderes alles andere in FHEM. Sprich notify liegt ausserhalb von HM
3) updates in HM sollte das Verhalte nicht veraendert haben
4) HM (CUL_HM) liefert nur die Namen der trigger. Eventuelle Kombinatinen aus device und trigger werden im Notify modul gebastelt und geparst
Wenn ich etwas zeit habe werde ich es einmal durchtesten - da dies immer wieder zu Fragen kommt. Bin i.A. aber erwas knapp dran, da sind andere sicher besser. Ich gehe davon aus, dass die Beschreibung von notify immer noch stimmt
Gruss
Martin
Zitat von: martinp876 schrieb am Mo, 28 Januar 2013 22:263) updates in HM sollte das Verhalte nicht veraendert haben
4) HM (CUL_HM) liefert nur die Namen der trigger. Eventuelle Kombinatinen aus device und trigger werden im Notify modul gebastelt und geparst
Dann hat sich wahrscheinlich in FHEM was geändert. Ich hatte bis vorgestern die 5.3 vom Ende Oktober drauf, jetzt die akuelle von Sonntag Abend per update. Da wurde natürlich quasi alles aktualisiert und auch ein zwei Bugs behoben, die mir aufgefallen waren (z. B. rename überschreibt). Seitdem wird jedem Log-Eintrag (NICHT aber den Events im Event Monitor!) das Device vorangestellt, oder anders gesagt: Den FernbedienungsTASTEN ist jetzt der Name der Fernbedienung vorangestellt. Da das Event am ersten Space getrennt wird, gehört ab jetzt der Name der Taste der Fernbedienung zum Event. Mag sein, dass das so sein soll, so richtig sinnig erscheint es mir nicht; ich fände "Short" oder "Long 4bla" sinngebender als Event.
ZitatWenn ich etwas zeit habe werde ich es einmal durchtesten - da dies immer wieder zu Fragen kommt. Bin i.A. aber erwas knapp dran, da sind andere sicher besser. Ich gehe davon aus, dass die Beschreibung von notify immer noch stimmt
Mach langsam - Du machst eine irre gute Arbeit für FHEM und CUL_HM. Ich glaube, alle HMer/innen sind sehr froh, dass Du so tatkräftig auf alle Probleme eingehst. Ich erwarte nicht, dass jedes Problem sofort und ohne Umschweife gelöst wird, und bin immer überrascht, wie schnell hier im Forum Antworten kommen - zu HM sind sie oft genug auch von Dir und dann sehr fundiert. Daumen hoch!
Mit fröhlichem Gruß,
Rob
ist jetzt der Name der Fernbedienung vorangestellt. Da das Event am ersten Space
getrennt wird, gehört ab jetzt der Name der Taste der Fernbedienung zum Event.
aber deine Lösung mit .* vorne ist doch perfekt, wieso findest du diese unschön? Damit sagst du ja nur aus, dass dir das Gerät egal ist und du alle devices interessant findest, welches Gerät auch immer gerade berichtet.
Also genau deine alte syntax nur .* vorne sollte das Problem lösen.
Ich sehe hier keinen Nachteil, lediglich den Vorteil, dass du gleiche Namen für devices verwenden könntest, die über unterschiedliche Systeme laufen.
Oder du hast mehrere hmlan Adapter und möchtest aber protokollieren welcher gerade meldet, etc. Also jede Menge Möglichkeiten, aber für mich kein Nachteil ersichtlich... Habe ich etwas übersehen, das dir Kopfschmerzen bereitet?
lG
Martin
Zitat von: Martin Thomas Schrott schrieb am Di, 29 Januar 2013 13:59aber deine Lösung mit .* vorne ist doch perfekt, wieso findest du diese unschön? Damit sagst du ja nur aus, dass dir das Gerät egal ist und du alle devices interessant findest, welches Gerät auch immer gerade berichtet.
Also genau deine alte syntax nur .* vorne sollte das Problem lösen.
Ich sehe hier keinen Nachteil, lediglich den Vorteil, dass du gleiche Namen für devices verwenden könntest, die über unterschiedliche Systeme laufen.
Vorher (Stand Ende Oktober, oder Download 'Development' via .deb) hatte ich nicht das
.* am Anfang, sondern dies verwendet, ich kürze mal auf das Wesentliche:
CUL_HM_remote_Btn_03:Short set something on
Jetzt muss ich aber schreiben:
CUL_HM_remote:CUL_HM_remote_Btn_03.Short set something on
Was in meinen Augen falsch ist, da damit der Event der String "CUL_HM_remote_Btn_03.Short" ist (bzw. der der auf das RegEx passt). Das erscheint mir falsch. Der Event sollte "Short" sein, nicht "<Channel>.Short".
Die Umgehung mittels:
CUL_HM_remote.CUL_HM_remote_Btn_03.Short set something on
ist genauso falsch, weil ich damit gar nicht auf definition:event parse.
Daher mein Hinweis, dass definition:event ausgehebelt sei. Mindestens hier.
ZitatOder du hast mehrere hmlan Adapter und möchtest aber protokollieren welcher gerade meldet, etc. Also jede Menge Möglichkeiten, aber für mich kein Nachteil ersichtlich... Habe ich etwas übersehen, das dir Kopfschmerzen bereitet?
Es sind ja nicht die HMLANs, die sich vorne dran klinken, sondern die Devices, denen die Tasten zugeordnet sind, selber - das ist in der 5.3er Version von Ende Oktober nicht so. HMLANs habe ich nur einen, und der ist gar nicht im notify erwähnt noch berücksichtigt, was auch richtig ist.
Mit fröhlichem Gruß,
Rob
Sollte jemand das Notify Problem mit einer Fernbedienung für Keymatic haben der sollte sich den thred http://forum.fhem.de/index.php/topic,25359.msg183526.html#msg183526 anschauen. Hat mir geholfen.