Hallo,
Meine Hardware: Enocean PTM200 Schalter, FSA12-12VDC Aktor, Raspberry Pi 3 Model B mit BSC EnOcean USB 300.
ich habe aktuell folgendes Problem:
Ich nutze um den Status meiner physikalischen Schalter zu wissen "structure", das klappt auch solange der Eventmap gleich bleibt d.h. physikalischer Taster und Virtuelles device z.B. BI:off B0:on haben.
Habe ich nun ein Zimmer indem 2 physik. Schalter existieren wobei eine Wippe mit state AI:off A0:on und die andere mit state BI:off B0:on kommen klappt das nicht mehr.
Nun erkennt meine Gruppe (structure) zware beide Befehle aber wenn ich als Eventmap AI:off A0:on eintrage geht z.B. as Symbol Lampe beim betätigen des einen physikalischen Schalters in Fhem nicht aus.
Nun meine Frage: kann ich im eventmap mehren devices unterschiedliche states geben? Oder wie kann ich mein Scenario eventuell anderes umsetzen?
Ich hoffe ich konnte es einigermaßen erklären. Vorab vielen Dank.
Schau Dir vielleicht mal readingsProxy an, damit kannst Du die Kanäle des virtuellen Schalters in unabhängige FHEM Device aufsplitten. Im Wiki findest Du dazu auch Beispiele. (Bin mir aber nicht ganz sicher, ob ich Dein Problem richtig verstanden habe)
Ich glaube das readingsProxy hilft mir nicht.
Ich muss den reading state meines physik. Schalters ändern. Von B0 auf A0 (und BI auf AI).
Probiert habe ich eine structure aber die verändert nur den STATE was mir nicht hilft.
Noch eine Idee?
Ggf. nochmal kurz erklärt was ich genau vorhabe:
1 x Lampe mit 2 Schaltern (1. Schalter Wippe Rechts BI:B0 2. Schalter Wippe Links AI:A0) + virtueller Schalter (Fhem).
Am Ende möchte ich, dass Fhem den Schaltstatus meiner Lampe weiß.
Ich habe das laut EnOcean Starter Guide umgesetzt:
Virtueller Schalter:
define virtueller_Schalter EnOcean AABBCC01
attr virtueller_Schalter eventMap BI:off B0:on
attr virtueller_Schalter icon icoBELEUCHTUNG.png
attr virtueller_Schalter subType switch
2x physikalischer Schalter (durch set TCM_ESP3_0 teach 60 eingelernt)
phy. Schalter 1:
attr Schalter_1 eventMap BI:off B0:on
attr Schalter_1 room EnOcean
attr Schalter_1 subType switch
phy. Schalter 2:
attr Schalter_2 eventMap AI:off A0:on
attr Schalter_2 room EnOcean
attr Schalter_2 subType switch
Structure:
define Gruppe_Licht structure room virtueller_Schalter Schalter_1 Schalter_2
attr Gruppe_Licht eventMap BI:off B0:on
attr Gruppe_Licht room Gruppenraum
attr Gruppe_Licht clientstate_behavior last
-> mein eventMap der structure reagiert nur auf B:I und B:0 und sobald ich Schalter 2 betätige ändert sich der Status nicht mehr.
Die Frage ist nun, ob ich im eventMap sagen kann, für "virtueller_Schalter und Schalter_1 BI:off B0:on" und für "Schalter_2 AI:off A0:on" damit mir der letzte Status bekannt ist.
Vielleicht gibt es auch eine einfache Umsetzung die ich einfach im Moment nicht sehe.
Danke.
schau dir die doku zu structure noch mal genau an. du kannst mit clientstate_priority die jeweils unterschiedlichen werte einander zuordnen.
und auch die _map attribute. du kannst für jedes device in der structure getrennt angeben wie die werte behandelt werden sollen.
gruss
andre
Hallo Andre,
ich komm nicht weiter.
Ich habe mir die docu angeschaut und auch viele Bespiele im Forum angeschaut, aber so richtig klar wird es mir nicht.
Kannst du mir ggf. ein Codebeispiel nennen wie ich dem physik. Schalter einen anderen State an die structure übergebe.
Ich bin wirklich noch absoluter Anfänger und weiß nicht mehr weiter ::)
ich habe keine Idee wie die ganzen enocean devices und readings genau aussehen.
wenn du mir das genau beschreibst bastle ich mal ein beispiel.
statt structure mit den ganzen attributen ist vielleicht auch LightScene mit gesetztem followDevices attribut eine möglichkeit. das funktioniert automatisch auch mit devices die unterschiedlichen kommandos/readings.
gruss
andre
ich verstehe das ganze Problem noch nicht, vor allen Dingen verstehe ich nicht, wozu man in diesem Fall überhaupt eine structure und einen virtuellen Schalter braucht?
Der eindeutige Zustand der Lampe (an/aus) ergibt sich doch aus dem zugehörigen Aktor und nicht aus der Betätigung der verschiedenen Taster.
Eigentlich braucht es doch nur (maximal) zwei notifies, die auf die jeweiligen Wippenbetätigung triggern und die Lampe an-/aus-/umschalten.
Der FSA12 ist ein unidirektionaler Aktor und gibt damit keine Rückmeldung über Schaltvorgänge. Schaltet man über einen direkt im Aktor eingelernten Taster, erkennt man das nur am FHEM-Device für den Taster. Das FHEM-Aktordevice (=virtueller Schalter) mit dem man den unidi Aktor steuert bekommt vom Schaltvorgang nichts mit und muss "manuell" im Status angepasst/nachgeführt werden, um den realen Schaltzustand zu sehen. Dazu kann man bspw. notify nutzen. Oder man verlagert das Ganze -wie hier gewünscht- in eine structure, bei der die structure den realen Zustand wiedergibt.
Bei bidirektionalen Aktoren hat man das Problem nicht.
Ich selbst nutze dazu seit Jahren notify mit setreading für die unidi Aktoren Abgleiche. Die hier gewünschte structure-Lösung habe ich am Wochenende aus Interesse einmal ausprobieren wollen. Bin aber gescheitert. Das Attribut .*_map in Verbindung mit "clientstate_behavior last" zeigte keine Auswirkung bzw. ich habe es nicht begriffen/falsch gemacht.
Ok, danke, das habe ich soweit verstanden.
Wenn ich das richtig verstanden habe, müsste das sogar noch einfacher umzusetzen sein. Muss ich mal heute abend testen.
Hallo krikan,
Wie kann ich das ggf. mit notify umsetzen?
Grüße
Hallo!
Schau Dir mal das Beispiel im Wiki unter der structure-Variante an: http://www.fhemwiki.de/wiki/EnOcean_Starter_Guide#Physischer_EnOcean-_und_virtueller_Fhem-Schalter_zu_einem_Device_zusammenfassen
Gruß, Christian