Hallo zusammen,
nachdem ich die meißten der (bei FHEM zahlreich) vorkommenden Fragen und Problemchen per Suche im Forum selbst beheben konnte bräuchte ich bei folgendem Problem Eure Hilfe. :)
Hintergrund: FHEM läuft bei mir auf einem RaspberryPI an dem diverse X10/Homematic/1-Wire Komponenten angeschlossen sind. Während ich von Homematic und 1-Wire aber Zustände abfragen kann, arbeitet mein X10 zustandslos (dank mochad). D.h. es kann durchaus sein, dass FHEM nicht den aktuellen, d.h. korrekten Zustand eines X10-Aktors kennt.
Die Konfig der X10-Aktoren sieht (beispielhaft am Aktor der Essecke) wie folgt aus:
dummy:
# X10 Essecke
define x10.essecke dummy
attr x10.essecke userattr room_map structexclude x10address
attr x10.essecke alias Essecke
attr x10.essecke event-on-change-reading state
attr x10.essecke group Licht
attr x10.essecke icon light_ceiling
attr x10.essecke room Wohnzimmer
attr x10.essecke setList on off
attr x10.essecke x10address b6
notify:
define x10.notify notify x10.*:* {my $addr = AttrVal($NAME, "x10address", "x1");; system ("sudo -u root /opt/fhem/FHEM/scripts/mochad.sh $addr $EVENT &")}
attr x10.notify group X10
attr x10.notify room Technik
Mit dieser Kombination komme ich eigentlich ziemlich gut klar. Wäre da nicht mein Problem:
Habe ich per FHEM "set on" den dummy eingeschaltet und das X10-System schaltet den Aktor (per Fernbedienung/App/Makro) irgendwann mal wieder aus, kann ich ihn nicht mehr per "set on" im FHEM einschalten.
Vermutlich weil das FHEM für sinnlos hält, da sich der dummy ja bereits im state "on" befindet - Ist aber nur eine Vermutung.
Daher die Frage: Wie kann ich den dummy oder notify so konfigurieren, dass notify jedesmal ausgelöst wird, wenn der dummy per "set" eine Änderung von state bzw. eines readings erhält unabhängig vom aktuellen state bzw. reading?
Event-on-change-reading ist Schuld. Lese mal bitte noch einmal nach was genau das Attribut macht und versuche zu verstehen.
Ganz kurz was zum Thema Notify. Ein Notify erkennt keine Readings oder States. Es reagiert auf Events welche vom Device ausgelöst werden. Mit diesem Wissen kannst Du Dir auch nun erklären was das Attribut event-on-change-reading genau macht.
Hallo CoolTux, vielen Dank für die Rückmeldung! event-on-change-reading state
hatte ich schon ganz zu Begin aus diversen Guides übernommen daher scheinbar unbewusst ignoriert ::)
Jetzt funktioniert es jedenfalls so wie gedacht: Auch wenn ein anderer Controller einen Aktor ausknipst, ohne dass FHEM was davon mitbekommt, wird das FHEM-Kommando unabhängig vom tatsächlichen oder dem FHEM bekannten Zustand ausgeführt :D