[Gelöst] Anfängerfrage Eltako physischer Taster notify WebCmd

Begonnen von BeOCeKa, 25 Oktober 2021, 19:56:16

Vorheriges Thema - Nächstes Thema

BeOCeKa

Hallo Community,

ich bin noch ganz neu im FHEM Business unterwegs. Ich habe mich 2020 bei der Kernsanierung unseres Dreifamilienhauses für Komponenten von Eltako Baureihe 14 entschieden.
Gestern habe ich meine FHEM Installation mit USB 300 in Betrieb genommen und versuche mich an kleinen Basics.
Die physischen Taster wurden soweit alle per autocreate erkannt. Feinarbeit kommt später.

Ich habe auch einen Taster (switch) in FHEM erstellt (taster__og_wohnzimmer_links_unten) und in einen Lichtaktor (F4SR14-LED) eingelernt. Diesen Taster habe ich in FHEM mit WebCmd on:off und eventMap B0:on released:off konfiguriert.

Ich kann jetzt über das Lampensymbol die Lampe ein- und ausschalten. Das Icon und state ändern auch ihren Status in B0 und released.

Wenn ich den physischen Taster an der Wand drücke, geht natürlich das Licht an und Aus, aber mein virtueller Taster in FHEM bekommen das nicht mit.

Nun dachte ich an notify: Wenn FHEM das Signal On bzw. B0 vom physischen Taster empfängt, dann wechsle den Status des virtuellen Tasters auf On bzw. B0. Und wenn von Eltako das Signal Off bzw. BI kommt, dann wechsle den Status des virtuellen Tasters auf Off bzw. BI.

define taster__og_wohnzimmer_links_unten_on__notify notify EnO_FFA93044:B0 set taster__og_wohnzimmer_links_unten on
define taster__og_wohnzimmer_links_unten_off__notify notify EnO_FFA93044:BI set taster__og_wohnzimmer_links_unten off


Das funktionierte erst einmal so weit, dass ich mich schon freute.
Aber im Log habe ich nach dem Einschalten sowohl über den virtuellen als auch den physischen Taster alle 3 Sekunden einen Eintrag...

2021.10.25 19:44:14 3 : EnOcean set taster__og_wohnzimmer_links_unten B0
2021-10-25 19:44:14 EnOcean taster__og_wohnzimmer_links_unten channelB: on
2021-10-25 19:44:14 EnOcean taster__og_wohnzimmer_links_unten on
2021-10-25 19:44:14 EnOcean EnO_FFA93044 buttons: pressed
2021-10-25 19:44:14 EnOcean EnO_FFA93044 channelB: B0
2021-10-25 19:44:14 EnOcean EnO_FFA93044 B0
2021.10.25 19:44:17 3 : EnOcean set taster__og_wohnzimmer_links_unten B0
2021-10-25 19:44:17 EnOcean taster__og_wohnzimmer_links_unten channelB: on
2021-10-25 19:44:17 EnOcean taster__og_wohnzimmer_links_unten on
2021-10-25 19:44:17 EnOcean EnO_FFA93044 buttons: pressed
2021-10-25 19:44:17 EnOcean EnO_FFA93044 channelB: B0
2021-10-25 19:44:17 EnOcean EnO_FFA93044 B0
2021.10.25 19:44:24 3 : EnOcean set taster__og_wohnzimmer_links_unten B0
2021-10-25 19:44:24 EnOcean taster__og_wohnzimmer_links_unten channelB: on
2021-10-25 19:44:24 EnOcean taster__og_wohnzimmer_links_unten on
2021-10-25 19:44:24 EnOcean EnO_FFA93044 buttons: pressed
2021-10-25 19:44:24 EnOcean EnO_FFA93044 channelB: B0
2021-10-25 19:44:24 EnOcean EnO_FFA93044 B0


Zeitgleich blinkt auch der Aktor von Eltako, dass er ein Signal verarbeitet hätte. Schalte ich das Licht aus - egal ob über FHEM oder physischen Taster, wird das Log nicht vollgeschrieben und der Eltako Aktor blinkt auch nicht.

Hier habe ich doch irgendwie einen Denkfehler. Wie kann ich FEHM - also dem virtuellen Taster - mitteilen, dass das Licht soeben am physischen Taster eingeschaltet wurde?

Ich habe mir schon überlegt, ob ich den Taster im Webinterface als Dummy anlegen soll. Aber wenn ich darüber nachdenke, dürfte das Ergebnis das gleiche sein. Muss ich vielleicht beim Empfang des Eltako Signals einen anderen Wert mit notify ändern?

Vielleicht weiß jemand, was ich meine und wo mein Denkfehler liegen könnte? Und wenn der oder die auch noch die Zeit findet, mich aufzuklären, wäre dem-/derjenigen sehr dankbar.

Und ja, ich habe alle Einsteiger Dokumentationen mehrfach durch. Sonst hätte ich das mit den Tastern soweit gar nicht hinbekommen.

Schönen Abend
Christian




FHEM Debian Proxmox
Eltako FAM14, 2xBGW14, 10xBUTH55, 10xF4SR14-LED, 4xFAE14SSR, 8xFSB14, FSU14, FTD14, 3xFUD14, 6xFTS14EM

Otto123

#1
Hallo Christian,

mach mal den Eventmonitor auf, da wirst Du sehen warum es sich so verhält ;)

Dein EnO_FFA93044 sendet alle 3 sec den Status auf den Du reagierst. Gibt mehrere Möglichkeiten das "Schaltfeuer" zu unterbinden. Ein wäre:
attr EnO_FFA93044 event-on-change-reading .*
Das muss nicht die beste Lösung sein. :)

Oder ich habe Deine Beschreibung nicht verstanden :)
Mit den eventMap muss man vorsichtig sein und wissen was man tut, das führt auch schnell mal zu komischen Effekten.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

BeOCeKa

#2
Hallo Otto,

mein Code kommt aus dem Event Monitor. Ich verstehe nur nicht, wer wem was sagt, damit der Eltako Bus so reagiert. Also wer sagt dem EnO_FFA93044, dass er alle 3 Sekunden ein On senden soll? Sieht ja so aus, als würde einer alle 3 Sekunden auf den physischen Taster drücken.

Im Moment würde ich sagen: physischer Schalter Ein > notify FHEM Ein > FHEM sendet On an EnOcean > Eltako sagt Schalter On > notify FHEM Ein > FHEM sendet On an EnOcean > Eltako sagt Schalter On > ... usw

Ich lese jetzt noch einmal das EnOcean Wiki dazu und überlege, ob der letzte Absatz mit structure die Lösung sein könnte.

Edit: es darf im notify wohl nicht set on heißen, weil FHEM sonst den Aktor anspricht. Aber was muss das notify enthalten, damit sich der Status des virtuellen Schalters auf On setzt, ohne den On Befehlt selbst zu schicken?
FHEM Debian Proxmox
Eltako FAM14, 2xBGW14, 10xBUTH55, 10xF4SR14-LED, 4xFAE14SSR, 8xFSB14, FSU14, FTD14, 3xFUD14, 6xFTS14EM

Otto123

zeig mal bitte ein list von den beteilgten Geräten:
list taster__og_wohnzimmer_links_unten
list EnO_FFA93044

wobei ich keine Ahnung von EnOcean habe, ich vermute aber Du kreierst hier irgendeine Schleife.
Ich hatte verstanden Dein Schalter sendet alle 3 sec Status und dein notify reagiert ständig wieder darauf. Aber da liege ich falsch?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

twinFHEM

#4
Hallo Christian,

wie sieht es aus, wenn Du eventMap B0:on released:off heraus nimmst?
WebCmd on:off sollte reichen.

Zudem gibt es bei Eltako-Aktoren einen bidirektionalen Betrieb, der regelmäßig Status- bzw. Bestätigungstelegramme sendet.
Diese sind zwar für den Eltako-Gebäudefunk gedacht, aber evtl. werden diese auch von FHEM empfangen...
Du kannst diese Option am Eltako-Aktor de- bzw. aktivieren.

P.S.:
ZitatEdit: es darf im notify wohl nicht set on heißen...
Wo hast Du das gelesen?







BeOCeKa

Morgens ist der Kopf dann doch noch frischer. Aber vom Büro aus habe ich leider keinen Zugriff auf den physischen Taster  :D

Der verwendete Aktor ist ein F4SR14-LED und offensichtlich muss ich den wie einen FSR14-4x manuell einlernen. Da war ich mit dem autocreate zu naiv.
Zumindest sieht https://wiki.fhem.de/wiki/EnOcean-FSR14-4x-RS485-Bus-Schaltaktor-4-Kanal-Stromsto%C3%9F-Schaltrelais vielversprechend aus. Dort steht was von "subDef" für bidirektionale Aktoren.

Ich lerne den Aktor noch einmal wie im Wiki ein und melde mich.
FHEM Debian Proxmox
Eltako FAM14, 2xBGW14, 10xBUTH55, 10xF4SR14-LED, 4xFAE14SSR, 8xFSB14, FSU14, FTD14, 3xFUD14, 6xFTS14EM

BeOCeKa

#6
Nö... wenn ich den Artikel so umsetze, kann ich die Kanäle zwar aus FHEM heraus schalten und sehe entsprechend das Lampen-Icon, aber auf den physischen Schalter reagiert das Lampen-Icon nicht.

Jetzt bekomme ich das auch nicht mehr mit einem Notify hin.

Das sind die Befehle, die ich aus dem Beitrag übernommen habe - natürlich mit den richtigen IDs. Der Aktor hat bei Eltako die Adresse 65-68 und soweit ich gelesen habe, sind davor alles Nullen, also 00000065 bis00000068:
define EnO_F4SR14LED_OG1_A01 EnOcean 00000065 M5-38-08
define EnO_F4SR14LED_OG1_A02 EnOcean 00000066 M5-38-08
define EnO_F4SR14LED_OG1_A03 EnOcean 00000067 M5-38-08
define EnO_F4SR14LED_OG1_A04 EnOcean 00000068 M5-38-08

attr EnO_F4SR14LED_OG1_A01 subDef FFB2D501
attr EnO_F4SR14LED_OG1_A02 subDef FFB2D503
attr EnO_F4SR14LED_OG1_A03 subDef FFB2D504
attr EnO_F4SR14LED_OG1_A04 subDef FFB2D505

attr EnO_F4SR14LED_OG1_A01 teachMethod RPS
attr EnO_F4SR14LED_OG1_A02 teachMethod RPS
attr EnO_F4SR14LED_OG1_A03 teachMethod RPS
attr EnO_F4SR14LED_OG1_A04 teachMethod RPS

deleteattr EnO_F4SR14LED_OG1_A01 comMode
deleteattr EnO_F4SR14LED_OG1_A02 comMode
deleteattr EnO_F4SR14LED_OG1_A03 comMode
deleteattr EnO_F4SR14LED_OG1_A04 comMode


Das Listing von Ausgang 4 (an dem besagte Lampe hängt)
Internals:
   DEF        00000068
   FUUID      61782071-f33f-fbfc-38cc-eb1c14ba275dd875
   IODev      TCM
   NAME       EnO_F4SR14LED_OG1_A04
   NR         76
   NTFY_ORDER 50-EnO_F4SR14LED_OG1_A04
   STATE      on
   TYPE       EnOcean
   READINGS:
     2021-10-26 18:04:32   IODev           TCM
     2021-10-26 18:11:57   block           unlock
     2021-10-26 18:11:57   state           on
     2021-10-26 17:42:49   teach           4BS teach-in sent
   helper:
Attributes:
   IODev      TCM
   eep        A5-38-08
   gwCmd      switching
   manufID    00D
   room       EnOcean
   subDef     FFB2D505
   subType    gateway
   teachMethod RPS
   webCmd     on:off


Event-Monitor beim Aus- und Einschalten des physischen Tasters:
2021-10-26 18:18:15 EnOcean EnO_FFA93044 buttons: pressed
2021-10-26 18:18:15 EnOcean EnO_FFA93044 channelB: B0
2021-10-26 18:18:15 EnOcean EnO_FFA93044 B0
2021-10-26 18:18:38 EnOcean EnO_FFA93044 buttons: pressed
2021-10-26 18:18:38 EnOcean EnO_FFA93044 channelB: BI
2021-10-26 18:18:38 EnOcean EnO_FFA93044 BI


Event-Monitor beim Aus- und Einschalten des FHEM-Tasters:
2021.10.26 18:19:56 3 : EnOcean set EnO_F4SR14LED_OG1_A04 off
2021-10-26 18:19:56 EnOcean EnO_F4SR14LED_OG1_A04 block: unlock
2021-10-26 18:19:56 EnOcean EnO_F4SR14LED_OG1_A04 off
2021-10-26 18:19:58 EnOcean EnO_FFA93044 buttons: pressed
2021-10-26 18:19:58 EnOcean EnO_FFA93044 channelB: BI
2021-10-26 18:19:58 EnOcean EnO_FFA93044 BI

2021.10.26 18:20:01 3 : EnOcean set EnO_F4SR14LED_OG1_A04 on
2021-10-26 18:20:01 EnOcean EnO_F4SR14LED_OG1_A04 block: unlock
2021-10-26 18:20:01 EnOcean EnO_F4SR14LED_OG1_A04 on
2021-10-26 18:20:04 EnOcean EnO_FFA93044 buttons: pressed
2021-10-26 18:20:04 EnOcean EnO_FFA93044 channelB: B0
2021-10-26 18:20:04 EnOcean EnO_FFA93044 B0


Deswegen kam mir der Gedanke, das Icon als Dummy zu probieren. Sowohl physischer als auch virtueller Taster könnten dann ein notify an Dummy schicken...

Ich mache mir jetzt erst einmal eine Gläschen Wein...

Edit: Moment. Ich sehe doch in FHEM nicht die Adresse des Aktors sondern die Hardware ID, welche auch im Eventlog steht...?

Bingo-Edit: das Ganze mit...
define EnO_F4SR14LED_OG1_A04 EnOcean FFA93044 M5-38-08 ...und es klappt. Dann ist scheinbar die Doku irreführend.

Nachtrag: DEF wurde von FHEM von FFA93044 auf 00000068 geändert.
FHEM Debian Proxmox
Eltako FAM14, 2xBGW14, 10xBUTH55, 10xF4SR14-LED, 4xFAE14SSR, 8xFSB14, FSU14, FTD14, 3xFUD14, 6xFTS14EM

BeOCeKa

#7
Ja, die Doku ist nicht ganz leicht für Einsteiger.
Das Geheimnis ist, den Aktor als Gateway anzulegen und den FHEM Schalter als subDef.

So langsam wird's...
FHEM Debian Proxmox
Eltako FAM14, 2xBGW14, 10xBUTH55, 10xF4SR14-LED, 4xFAE14SSR, 8xFSB14, FSU14, FTD14, 3xFUD14, 6xFTS14EM