[Gelöst] Readingsgroup für Fenster-Türkontakte in einem Raum

Begonnen von Gueco315, 13 Januar 2021, 09:47:18

Vorheriges Thema - Nächstes Thema

Gueco315

Hallo Zusammen,

ich möchte mir in einer Readingsgroup alle Tür- und Fensterkontakte und deren Status anzeigen lassen und in den Floorplan einbinden.
Es gibt viele Beispiele, die dann zum Tragen kommen wenn man auf eine einheitliche Namensgebung geachtet hat.
define TuerKontakte readingsGroup <%fts_door_right_open@darkblue>,<Status>,<> .*_(TK|FK)..:state,battery
Das habe ich leider versäumt und nun habe ich 23 Sensoren mit unterschiedlichen Namen in Fhem installiert. Umbenennen möchte ich die ungern.
Es sind nur: HM-SEC-SC, HM-SEC-SCo und noch einige CUL_FHTTK Sensoren im Einsatz.

Hierzu meine Frage: Wie kann ich auf genau diese 3 Arten von Sensoren, die sich alle in einem Raum: "Fenster und Türen" befinden, in einer ReadingsGroup einbinden?

Gruß Günter
Fhem 6.0, JeeLink, CUL 868 auf Raspi 4, Buster, IT-1500, 4x SB_Player, Squeezebox auf Raspi 4, 3x Fritzbox,  WIFI Light, EGPM2LAN, ENIGMA, Sec-SCO,CC-RT-DN,TC-IT-WM-W-EU,SEN-Wa-Od,ES-PMSw1-PW,HM-SE, Sonoff, Shelly,SMA

rabehd

Auch funktionierende Lösungen kann man hinterfragen.

Gueco315

okay, kannst du mir ein Beispiel zukommen lassen?
Fhem 6.0, JeeLink, CUL 868 auf Raspi 4, Buster, IT-1500, 4x SB_Player, Squeezebox auf Raspi 4, 3x Fritzbox,  WIFI Light, EGPM2LAN, ENIGMA, Sec-SCO,CC-RT-DN,TC-IT-WM-W-EU,SEN-Wa-Od,ES-PMSw1-PW,HM-SE, Sonoff, Shelly,SMA

OdfFhem

@Gueco315

Vermutlich hilft u.a. dieser Beitrag beim Formulieren der Bedingung für readingsGroup: https://forum.fhem.de/index.php/topic,97245.0.html

list lässt sich meist schneller austesten; die finale Bedingung sollte ja dann 1:1 übernommen werden können ...

Gueco315

bin etwas weitergekommen ..

Mit list room~FK state alias erhalte ich alle Informationen, die ich in der ReadingsGrouß auswerten möchte.

Nur, wie frage ich die in der Definition ab?

define TuerKontakte readingsGroup <%fts_door_right_open@darkblue>,<Status>,<> .*_(TK|FK)..:state,battery

Fhem 6.0, JeeLink, CUL 868 auf Raspi 4, Buster, IT-1500, 4x SB_Player, Squeezebox auf Raspi 4, 3x Fritzbox,  WIFI Light, EGPM2LAN, ENIGMA, Sec-SCO,CC-RT-DN,TC-IT-WM-W-EU,SEN-Wa-Od,ES-PMSw1-PW,HM-SE, Sonoff, Shelly,SMA

OdfFhem

@Gueco315

Ausprobiert habe ich es nicht, aber vermutlich müsste ".*_(TK|FK)..:state,battery" durch "room~FK:state,battery" ersetzt werden ...

Gueco315

Prima, das geht auch schon mal. Langsam ernärt sich das Eichhörnchen ... :-)

Die Definition:
defmod TuerKontakte readingsGroup <%fts_door_right_open@darkblue>,<Status>,<> room=FKTK:state,battery\

ergibt folgende Ausagabe:
DG_Badfenster:Activity
alive
DG_Badfenster:D-firmware
1.0
DG_Badfenster:D-serialNr
OEQ1426389
DG_Badfenster:PairedTo
0xFF2366
DG_Badfenster:R-OG_Bad_Heizung_WindowRec-expectAES
off
DG_Badfenster:R-OG_Bad_Heizung_WindowRec-peerNeedsBurst
on
DG_Badfenster:R-cyclicInfoMsg
on
DG_Badfenster:R-eventDlyTime
0 s
DG_Badfenster:R-pairCentral
0xFF2366
DG_Badfenster:R-sabotageMsg
on
DG_Badfenster:R-sign
on
DG_Badfenster:RegL_00.
00:00 02:01 09:01 0A:FF 0B:23 0C:45 10:01 14:06
DG_Badfenster:RegL_01.
00:00 08:01 20:9C 21:00 30:06
DG_Badfenster:RegL_04.OG_Bad_Heizung_WindowRec
00:00 01:01
DG_Badfenster:alive
yes
DG_Badfenster:battery
DG_Badfenster:cfgState
ok
DG_Badfenster:commState
CMDs_done
DG_Badfenster:contact
closed (to VCCU)
DG_Badfenster:peerList
OG_Bad_Heizung_WindowRec
DG_Badfenster:powerOn
2020-01-13 12:14:29
DG_Badfenster:recentStateType
info
DG_Badfenster:sabotageError
off
DG_Badfenster:state


Ich möchte die Ausgabe aber nur auf Name, Alias und State (open/closed) einschränken, wie geht das?
FILTER nimmt er nicht an.
Fhem 6.0, JeeLink, CUL 868 auf Raspi 4, Buster, IT-1500, 4x SB_Player, Squeezebox auf Raspi 4, 3x Fritzbox,  WIFI Light, EGPM2LAN, ENIGMA, Sec-SCO,CC-RT-DN,TC-IT-WM-W-EU,SEN-Wa-Od,ES-PMSw1-PW,HM-SE, Sonoff, Shelly,SMA

Gueco315

.. auch das hier schränkt die Auswahlliste nicht ein:

<%fts_door_right_open@darkblue>,<Status> room=FKTK:state,battery alias state battery
Fhem 6.0, JeeLink, CUL 868 auf Raspi 4, Buster, IT-1500, 4x SB_Player, Squeezebox auf Raspi 4, 3x Fritzbox,  WIFI Light, EGPM2LAN, ENIGMA, Sec-SCO,CC-RT-DN,TC-IT-WM-W-EU,SEN-Wa-Od,ES-PMSw1-PW,HM-SE, Sonoff, Shelly,SMA

OdfFhem

@Gueco315

Wenn Du ein list Deiner readingsGroup einstellst, kommen wir Deinem Problem vermutlich auf die Spur ...

Gueco315

damit habe ich auch schon stundenlang rumexperimentiert.
Fhem 6.0, JeeLink, CUL 868 auf Raspi 4, Buster, IT-1500, 4x SB_Player, Squeezebox auf Raspi 4, 3x Fritzbox,  WIFI Light, EGPM2LAN, ENIGMA, Sec-SCO,CC-RT-DN,TC-IT-WM-W-EU,SEN-Wa-Od,ES-PMSw1-PW,HM-SE, Sonoff, Shelly,SMA

OdfFhem

@Gueco315

Folgendes sollte die gewünschten Geräte und ebenso nur die angegebenen Werte (TYPE ; state ; alias) darstellen.


defmod TuerKontakte readingsGroup <%fts_door_right_open@darkblue>,<INTERNAL>,<READING>,<ALIAS> .*:FILTER=room=FKTK:+TYPE,state,?alias


In meinem Testfall sind dies
- das Internal TYPE, daher das zusätzliche Kennzeichen "+"
- das Reading state - kein zusätzliches Kennzeichen notwendig
- das Attribut alias, daher das zusätzliche Kennzeichen "?"

Gueco315

genau das funktioniert, prima. Vielen Dank!
Fhem 6.0, JeeLink, CUL 868 auf Raspi 4, Buster, IT-1500, 4x SB_Player, Squeezebox auf Raspi 4, 3x Fritzbox,  WIFI Light, EGPM2LAN, ENIGMA, Sec-SCO,CC-RT-DN,TC-IT-WM-W-EU,SEN-Wa-Od,ES-PMSw1-PW,HM-SE, Sonoff, Shelly,SMA