Schalten des physikalischen Schalters mit readingsProxy synchronisieren

Begonnen von wla, 15 März 2015, 13:26:33

Vorheriges Thema - Nächstes Thema

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

wla

Bitte wartet noch kurz, es passt leider trotzdem noch nicht.
Da das Verhalten schwierig zu beschreiben ist, bitte ich noch um etwas Geduld.

krikan

OK, dann habe ich aber vermutlich Dein Problem auch noch nicht verstanden. Du müsstest dann bitte noch weiter erläutern.

wla

Also ich versuche es nochmal mit aktualisierter Beschreibung.
Folg. Zustand: (eigentlich viele) EnOcean 4-fach Taster, jeder der 4 Tasten steuert einen anderen Aktor (FAM12, alles unidirektional). Also Rechts oben drücken ändert den Zustand des Aktors/Lichts, war das Licht an ist es nun aus oder umgekehrt.
FHEM hängt seriell via FAM12RS232 mit auf dem Bus.

# der physikalische Schalter
define kueche.sw EnOcean 00253CE4
attr kueche.sw IODev FAM12RS232
attr kueche.sw comment EnO_switch_00253CE4
attr kueche.sw room EnOcean
attr kueche.sw subType switch
define FileLog_kueche.sw FileLog ./log/kueche.sw-%Y.log kueche.sw
attr FileLog_kueche.sw logtype text
attr FileLog_kueche.sw room EnOcean

(Um die 4 Taster im Webfrontend darstellen zu können, 4x readingsProxy je Schalter)
# zugehöriger readingsProxy1, Spots Küche
define kueche.licht.spots readingsProxy kueche.sw:state
attr kueche.licht.spots room Ansicht_1
attr kueche.licht.spots setFn {"BI"}
attr kueche.licht.spots setList on off
attr kueche.licht.spots valueFn {$LASTCMD}
attr kueche.licht.spots webCmd toggle

# zugehöriger readingsProxy2, Lampe Küchentisch
define kueche.licht.tisch readingsProxy kueche.sw:state
attr kueche.licht.tisch room Ansicht_1
attr kueche.licht.tisch setFn {"B0"}
attr kueche.licht.tisch setList on off
attr kueche.licht.tisch valueFn {$LASTCMD}
attr kueche.licht.tisch webCmd toggle

# zugehöriger readingsProxy3 und readingsProxy4 ähnlich mit weiteren Aktoren/Lampen.

Wenn ich im Webfrontend nun schalte, funktionieren die physikalischen Lampen und auch das Lampen-Icon des readingsProxy wechelt jedesmal den Zustand.
Wenn ich jedoch mit dem physikalischen Schalter schalte, wechselt im Webfrontend das Lampen-Icon des readingsProxy nicht den Zustand.
Bitte berücksichtigen: ein virtuelles FHEM-Device habe ich nicht bzw. wird nicht benötigt, da ich nicht über Funk, sondern über die serielle Schnitstelle des FAM12RS232 aufgeschaltet bin.

Nun kam der Vorschlag mit folgenden Notify's zu arbeiten:
define n.kueche.licht.spots notify kueche.sw:BI {if (Value("kueche.licht.spots") eq "on") {fhem "setreading kueche.licht.spots lastCmd off"} else {fhem "setreading kueche.licht.spots lastCmd on"}}
define n.kueche.licht.tisch notify kueche.sw:B0 {if (Value("kueche.licht.tisch") eq "on") {fhem "setreading kueche.licht.tisch lastCmd off"} else {fhem "setreading kueche.licht.tisch lastCmd on"}}
Damit kommt es zu eigenartigem und schwer nachvollziehbarem Verhalten, sowohl über den physikalischen Schalter als auch im Webfrontend funktioniert prinzipiell das Schalten, aber die Icons des readingsProxy ändern das Icon in Abhängigkeit vom Zustand, bei bestimmter History ändern sich beim Schalten eines Tasters beide Icons!

Kann es sein, dass man das Notify gar nicht braucht, da ja kein virtuelles device eingesetzt wird, sondern nur das richtige Attribut mit dem passenden Inhalt versehen muss?

Ich hoffe ich habe das Problem verständlich beschrieben ...

Norberto

Ich klinke mich mal gaanz vorsichtig ein...

- mit physikalischem Schalter meinst Du einen normalen Enocean Taster (Sensor, z.B. PTM210/PTM215 )?
- Dein Aktor ist auf dem RS485 Bus?
- Wie hasst Du dann den Aktor mit dem Taster verknüpft?
- Eventuell muss der FAM12 noch konfiguriert werden dass er den Enocean Funk über RS232 weiterleitet? (Kenne FAM12 nicht - ich habe nur FAM14)

Grüße, Norbert

krikan

ZitatDamit kommt es zu eigenartigem und schwer nachvollziehbarem Verhalten, sowohl über den physikalischen Schalter als auch im Webfrontend funktioniert prinzipiell das Schalten, aber die Icons des readingsProxy ändern das Icon in Abhängigkeit vom Zustand, bei bestimmter History ändern sich beim Schalten eines Tasters beide Icons!
Genau das wäre aber interessant zu wissen.

Eigentlich hätte ich erwartet, dass das readingsProxy immer den richtigen Zustand zeigt und schalten über Proxy und Schalter funktionieren.

Mein Verständnis:
Der phys. Taster=Aktor schaltet mit A0, AI, B0 ,BI
Jeder dieser Befehle steuert genau einen Aktor und wechselt dessen Zustand  (toggeln)
Aus den erzeugten Events lässt sich nicht erkennen, ob der Aktor gerade an oder aus ist.

Vielleicht lieferst Du mal eine Eventlist des Tasters.

ZitatKann es sein, dass man das Notify gar nicht braucht, da ja kein virtuelles device eingesetzt wird, sondern nur das richtige Attribut mit dem passenden Inhalt versehen muss?
Ja, kann sein. Ich habe aber noch keine Idee welches. Deshalb so auseinanderpflücken, dass auch Nicht-EnOcean-User (Andre!) das verstehen können.

Und bitte Norberts Dinge abarbeiten....

wla

Zitat- mit physikalischem Schalter meinst Du einen normalen Enocean Taster (Sensor, z.B. PTM210/PTM215 )?
Ja, PTM210
Zitat- Dein Aktor ist auf dem RS485 Bus?
Ja, alle Aktoren sind direkt auf dem RS485 Bus
Zitat- Wie hasst Du dann den Aktor mit dem Taster verknüpft?
Enocean eingelernt, Neubau, nur Enocean Schalter, funktionieren alle
Zitat- Eventuell muss der FAM12 noch konfiguriert werden dass er den Enocean Funk über RS232 weiterleitet? (Kenne FAM12 nicht - ich habe nur FAM14)
FAM12RS232 hat noch eine serielle Schnittstelle, die Signale des RS485 werden hier automatisch ein/ausgeleitet. Ich habe ja automatisch darüber die Schalter/Switches ins FHEM eingelernt. http://www.eltako.com/fileadmin/downloads/de/Datenblatt/FUNK_datenblatt_FAM12.pdf

Von meinem Verständnis, sollte eigentlich kein Notify nötig sein.

Zitat
Mein Verständnis:
Der phys. Taster=Aktor schaltet mit A0, AI, B0 ,BI
Jeder dieser Befehle steuert genau einen Aktor und wechselt dessen Zustand  (toggeln)
Aus den erzeugten Events lässt sich nicht erkennen, ob der Aktor gerade an oder aus ist.
Genau so ist es, man sieht nur das "toggeln" und weiss nur dass der Zustand gerade wechselt, d.h. es muss beim Start eine "Initialisierung", in einen definierten Zustand,  stattfinden.

Norberto

OK, verstanden. D.h. Du sendest mit der gleichen ID wie der Encoean Taster. Da bin ich dann mal raus - hier müssen wohl Experten weiterhelfen.
Gruß, Norbert

krikan

Begreife es nicht. Bei meinen Tests mit PTM210 und einem readingsProxy funktioniert das Vorgehen mit dem notify. Da ich aber keine 12er-Reihe nutze, sollte der Fehler dort irgendwo liegen. Wenn keine anderen Ideen kommen, hätte ich zum Weitergrübeln gerne:
- "list" der von Dir mit den Attributen dargestellten Devices
- log mit verbose 5, wenn notify aktiv ist und Du Taster sowie readingsProxy auslöst. Bitte für 2 Aktoren eines Tasters.
Alles ohne Erfolgsversprechen, bin auch kein Experte. Aber derzeit fehlen mir einfach die Infos, da ich aus Deiner Fehlerbeschreibung keine Rückschlüsse ziehen kann.