Rolladen (Fritz!Dect) liefert kein event bei Verwendung von event-on-change-read

Begonnen von chefschaffner, 26 November 2021, 07:39:10

Vorheriges Thema - Nächstes Thema

chefschaffner

Guten Morgen zusammen,
nachdem ich nun (reuemütig  ;)) von OpenHab wieder zu fhem zurückgekehrt bin, versuche ich meine Rolladensteuerung zu "modernisieren". Ich habe Rolladen von Elero und Rollotron (Fritz!Dect).

Die Rolladen sollen aufgehen, wenn die Tür geöffnet wird (HM-Fenterkontakt), bzw. nicht schließen, wenn die Tür auf ist.
Zur Steuerung der Rolladen habe ich zwei Readings im Rolladen angelet: ZiZu (ZielZustand) und NoCl (NoClose). Auf diese habe ich ein notify erstellt, welches dann die eigentliche Rolladenfahrt ausführt.

Bei den Eleros funktioniert das, bei den Rollotrons nur, wenn event-on-change-reading und event-on-update-reading nicht gesetzt ist. Selbst bei der Angabe von .* bekomme ich kein Event.

Hat jemand eine Idee, was ich falsch mache? Ich komme gerade gar nicht mehr weiter.

Listing Rolladen:

Internals:
   DEF        FritzDECT:14276_0525808_1 HANFUNUnit,dimmer,alarmSensor
   FUUID      61954fd5-f33f-98ff-433b-d2ac8a889d81c091
   FritzDECT_MSGCNT 169
   FritzDECT_TIME 2021-11-26 07:17:23
   IODev      FritzDECT
   LASTInputDev FritzDECT
   MSGCNT     169
   NAME       RlFbAH
   NR         97
   STATE      40
   TYPE       FBDECT
   id         14276_0525808_1
   props      HANFUNUnit,dimmer,alarmSensor
   READINGS:
     2021-11-26 07:17:23   AIN             14276 0525808-1
     2021-11-26 07:17:23   FBNAME          RlFbAzH
     2021-11-26 07:17:23   FBPROP          HANFUNUnit,dimmer,alarmSensor
     2021-11-26 07:17:23   FBTYPE          Rollotron 1213
     2021-11-26 07:17:23   ID              2000
     2021-11-25 17:17:05   IODev           FritzDECT
     2021-11-25 18:03:13   NoCl            0
     2021-11-26 07:07:53   ZiZu            up
     2021-11-26 07:17:23   dim             40
     2021-11-26 07:17:23   etsideviceid    406
     2021-11-26 07:17:23   fwversion       0.0
     2021-11-26 07:17:23   lastalertchgtimestamp 2021-11-12 06:56:02
     2021-11-26 07:17:23   level           102
     2021-11-26 07:17:23   mode            manuell
     2021-11-26 07:17:23   present         yes
     2021-11-26 07:17:23   state           off
     2021-11-26 07:17:23   unittype        BLIND
   hmccu:
Attributes:
   cmdIcon    cmdIcon  moveDown:fts_shutter_down moveUp:fts_shutter_up stop:fts_shutter_manual moveIntermediate:weather_sun moveTilt:vent_ventilation
   devStateIcon bottom_position:shutter_closed tilt_position:shutter_6 top_position:shutter_open moving_up:control_arrow_up moving_down:control_arrow_down stopped_in_undefined_position:unknown intermediate_position:shutter_3 undefined:unknown
   event-on-change-reading .*
   eventMap   /close:moveDown/stop:stop/open:moveUp/dim 35:moveIntermediate/dim 85:moveTilt/
   group      Rolladen
   icon       fts_shutter
   room       FritzBox
   stateFormat dim
   userattr   RlElWz RlElWz_map structexclude
   webCmd     moveDown:stop:moveUp:moveIntermediate:moveTilt


notify (Ist nur ein Test, hier fehlt das 2. Reading und die Aktion):
RlFbAH:ZiZu:.* {
  {Log 1, "Device: $NAME / Event: $EVENT"};
}

Docker: fhem & zigbee2mqtt / RaspiMatic / Elero / Fritz!Dect

Reinhard.M

Ich würde dir ASC empfehlen, da ist diese Funktionalität integriert. Wenn du willst kannst du alle anderen Funktionen deaktivieren. ASC ist allerdings komplex wenn man es umfangreicher nutzen möchte.

Gruß Reinhard

chefschaffner

Danke für den Hinweis, das kannte ich tatsächlich noch nicht. Sieht auf den ersten Blick gut aus; dann habe ich nun eine Beschäftigung für's Wochenende...

Trotzdem würde mich interessieren, warum kein Event vom Rollotron kommt...
Docker: fhem & zigbee2mqtt / RaspiMatic / Elero / Fritz!Dect

rudolfkoenig

ZitatSelbst bei der Angabe von .* bekomme ich kein Event.
Vmtl. ist das nicht ganz klar: event-on-change-reading .* bedeutet, dass _alle_ Events gefiltert werden.
Die Auswirkung in Kombination mit event-on-update-reading ist nicht intuitiv, selbst fuer mich nicht.
Ich bin seit Jahren gegen die Verwendung dieser Attribute, insb. wenn man die Auswirkung nicht vollstaendig versteht.

chefschaffner

Ich hatte mich unklar ausgedückt; mein
Zitat...wenn event-on-change-reading und event-on-update-reading nicht gesetzt ist...
war als "XOR" gemeint - die Erfahrung, dass man die beiden nicht gemeinsam einsetzen sollte, hatte ich auch schon gemacht...

Jetzt muss ich aber nochmal nachfragen:
In der Doku steht:
ZitatInsbesondere sinnvoll ist der reguläre Ausdruck .* , der alle Readings umfasst:
    attr <device> event-on-change-reading .*
So formuliert führt das Attribut dazu, dass alle Readings noch Events erzeugen, aber nur wenn diese sich im Wert ändern.
Das interpretiere ich so, dass alle Readings ein Event erzeugen, wenn sich das Reading geändert hat.
Da ich nur dieses Attribut gesetzt habe, sollten also Events aller Readings bei Änderung kommen, richtig?

Zitat von @rudolfkoenig
Zitat...dass _alle_ Events gefiltert werden...
verstehe ich so, dass alle Events "rausgefiltert" werden, also keines mehr ankommt.

Wo ist mein Verständnisproblem?

PS: Ich versuche mich nun an ASC, aber das bekomme ich nicht zum Laufen; da muss ich wohl nochmal einen anderen Thread aufmachen...
Docker: fhem & zigbee2mqtt / RaspiMatic / Elero / Fritz!Dect

rudolfkoenig

ZitatIn der Doku steht:
In welcher Doku?
Der Abschnitt mit "sinnvoll" ist definitiv nicht meine Meinung.

ZitatDa ich nur dieses Attribut gesetzt habe, sollten also Events aller Readings bei Änderung kommen, richtig?
Das ist richtig. Kann aber bedeuten, dass Jahre lang keine Events kommen, obwohl die Daten vom Geraet regelmaessig gesendet werden. Und das fuehrt bei der Anzeige in den Diagrammen erst zu Beschwerden, und dann zu kuenstlich erzeugten Werten.

chefschaffner

ZitatIn welcher Doku?
Im Wiki: https://wiki.fhem.de/wiki/Event-on-change-reading#Syntax

ZitatDer Abschnitt mit "sinnvoll" ist definitiv nicht meine Meinung.
Ok, darüber denke ich mal nach. Üblicherweise habe ich hier nur einzelne Readings angegeben. Den Filter ".*" hatte ich hier nur für einen schnellen Test verwendet.

ZitatDas ist richtig. Kann aber bedeuten, dass Jahre lang keine Events kommen,...
Ja, dafür habe ich in "event-min-interval" verwendet. Das hatte eigentlich für die Graphen immer ganz gut funktioniert.

Das Problem ist momentan nicht mehr relevant für mich (weil ich ASC einsetzen will), aber ich werde das bei Gelegenheit nochmal testen.
Docker: fhem & zigbee2mqtt / RaspiMatic / Elero / Fritz!Dect