Fibaro FGS-222 / Philio PAN-06: Manuellen Schalterwechsel erkennen?

Begonnen von Fridtjof, 26 Dezember 2017, 12:25:56

Vorheriges Thema - Nächstes Thema

Fridtjof

Hallo,

gibt es eine Möglichkeit, Manuelle Schaltvorgänge von FHEM-getriggerten Schalterwechseln zu unterscheiden?
Manuell: Der zugehörige Schalter wird gedrückt
FHEM-getriggert: Der Befehl wird per ZWave zu dem Relais gesendet

Warum?
Problem 1:
Durch ein Bewegungsmelder soll eine Flurlampe für 3 Minuten angeschaltet werden. Wenn aber manuell der dazugehörige Lichtschalter gedrückt wird, soll sie für 10 Minuten angeschaltet werden.

Problem 2: Die Außenbeleuchtung vor dem Haus wird durch Tageszeitenerkennung an- und ausgeschaltet. Ich würde gerne bei einer Manuellen Schaltung des dazugehörigen Lichtschalters zusätzlich den Bewohner "Gast" als anwesend setzen (Dann werden die Lichtszenen und die Temperaturen leicht verändert). Das darf aber nicht passieren, wenn zeitgesteuert das Außenlicht angeschaltet wird.

Gruss

Thyraz

Zumindest beim Fibaro Dimmer gibt es die Möglichkeit, für Tastendrücke ,,scene" Events zu erhalten.
Dazu configSceneActivationFunctionality aktivieren.

Denke der FGS-222 sollte sowas auch haben.

Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

rudolfkoenig

Das Problem ist z.Zt. (falls ich nichts uebersehe) nicht allgemein mit FHEM loesbar, ich hoffe dass der Vorschlag von Thyraz als Workaround funktioniert.

Ich wuerde gerne eine Loesung in FHEM anbieten, weiss aber nicht wie. Das Problem aus meiner Sicht:
- FHEM sendet Befehl an dem Schalter
- Schalter meldet ein bisschen spaeter "bin an" (reportedState on). Leider ist "bisschen spaeter" nicht fest.
- Falls man am Schalter direkt schaltet, wird auch "reportedState on" gemeldet.
Es ist einfach auf dem vom FHEM ausgeloesten Event zu reagieren (wenn ueberhaupt notwendig), z.Bsp. mit "attr ZWDongle showSetInState", aber nicht andersherum. Mir ist nur die Umbenennung von Nachrichten kurze Zeit nach Absenden eines Befehls eingefallen, was aber nicht gerantiert funktioniert, und ein Haufen Nebeneffekte hat.

Wenn jemand eine bessere Alternative hat, bitte melden.

krikan

Zitat von: rudolfkoenig am 26 Dezember 2017, 13:34:36
Mir ist nur die Umbenennung von Nachrichten kurze Zeit nach Absenden eines Befehls eingefallen, was aber nicht gerantiert funktioniert, und ein Haufen Nebeneffekte hat.
Auch nach x-tem Lesen begreife ich diesen Ansatz nicht. Könntest Du das bitte naeher erlaeutern?
Denke momentan: Lösung des Problems nur durch Hardware/Firmware möglich und nicht durch FHEM.

rudolfkoenig

Nachdem man "set Lampe on" absetzt, wuerde eine Nachricht, was in den naechsten 0.5Sekunden eintrifft, in FHEM als setReportedState gemeldet, danach wie bisher als reportedState. Damit ist nicht gemeint, dass ich diese Loesung favorisiere.

krikan

ZitatNachdem man "set Lampe on" absetzt, wuerde eine Nachricht, was in den naechsten 0.5Sekunden eintrifft, in FHEM als setReportedState gemeldet, danach wie bisher als reportedState. Damit ist nicht gemeint, dass ich diese Loesung favorisiere.
Gefaellt mir nicht. Hat was von Ratespiel und das kann man auch mit sequence oder anderen Befehlen simulieren.

Vielleicht geht doch der "richtige" Ansatz über Hardwarekonfiguration/-assoziation:
Sendet der FGS-222 in Assogroup 1 und 2 bei Tastendrücken von Taster 1 und 2 nicht ein basicSet und über Assogroup 3 etwas abweichendes wie ein basicReport oder aehnliches? Dann muss man den Controller in alle Assogroups packen und kann unterscheiden, wodurch der Schaltbefehl ausgelöst wurde. Doku zum FGS ist leider bei dem Thema schweigsam und jemand müsste es testen.

krikan

Beim PAN06 habe ich keine Idee über eine Assoziation-/Konfiguratinsaenderung, aber wenn ich in https://products.z-wavealliance.org/ProductManual/File?folder=&filename=Manuals/1181/PAN06-1A%20manual-20141118.pdf das Beispiel unter "2-2-1 BINARY_SWITCH_GET," lese, dann könnte  Multi Channel Command Class Hilfe schaffen:
Wenn FHEM über einen fiktiven Endpoint 05 Schaltvorgaenge ausloest, sollte ein Report an Endpoint 05 zurückkommen. Bei manuellen Schaltvorgaengen sollte Report weiterhin an Endpoint 00 gehen.

Jedoch wird das wohl durch die derzeitige Codezeile in 10_ZWave.pm verhindert:
    $ep = sprintf("%02x", hex($1 ne "00" ? $1 : $2) & 0x7f); # Forum #50176
Die wollte ich irgendwann schon mal anpassen und bin klaeglich gescheitert.

Soweit die theoretischen Überlegungen ohne praktische Tests, um nicht favorisierte Lösungen zu verhindern.  :)

Fridtjof

#7
Vielen Dank für die zahlreichen Antworten und frohes Neues Jahr! Das Problem ist aus meiner Sicht gelöst. VIELEN DANK FÜR DIE SCHNELLE HILFE!!

@Rudolfkoenig: showSetInState kannte ich nicht, und ist für mein Anliegen genau das, was ich brauche! Mir fehlt im zweiten Schritt doch nur ein Puzzleteil: Im Fall eines Zustandswechsels von: off->on  wäre der Schalter gedrückt worden, ein off->set_on->on hingegen ist fhem-getriggert. Ich definiere daher ein notify DEVICE:on auf die Schalter und frage den OldValue ab: Nur im Fall eines "off" löse ich die manuellen Aktionen aus.

@Krikan: Vielen Dank für die Durchforstung der Hardware-Möglichkeiten! Ich könnte flexibel an die beiden genannten Stellen Philio oder Fibaro verbauen, könnte mich daher nach der Machbarkeit richten. Habe jetzt allerdings (ein Anfänger-)Problem: bei fhem "get fgs-222 mcEndpoints" als resonse "total 2, identical" zurück, keine 5. Vermute daher, dass hier der Code noch angepasst werden müsste, damit 5 Endpoints sichtbar sind, richtig? Wenn mein Anliegen eine gewünschte Gelegenheit ist, den Code zu erweitern kann ich gerne testen!

@Thyraz: Habe mal bei dem FGS-222 nach configSceneActivationFunctionality gesucht, dazu aber nichts gefunden, weder in Doku noch in der FHEM-API. Vermute daher, dass es die genannte Funktion bei dem Relais-Modul nicht gibt... Schade..

Grüße



krikan

Zitat von: Fridtjof am 01 Januar 2018, 18:28:17
Vielen Dank für die Durchforstung der Hardware-Möglichkeiten! Ich könnte flexibel an die beiden genannten Stellen Philio oder Fibaro verbauen, könnte mich daher nach der Machbarkeit richten. Habe jetzt allerdings (ein Anfänger-)Problem: bei fhem "get fgs-222 mcEndpoints" als resonse "total 2, identical" zurück, keine 5. Vermute daher, dass hier der Code noch angepasst werden müsste, damit 5 Endpoints sichtbar sind, richtig? Wenn mein Anliegen eine gewünschte Gelegenheit ist, den Code zu erweitern kann ich gerne testen!
Die Endpointgeschichte bezieht sich ausschließlich auf den PAN06 und ich wollte dem Dongle fiktive Endpoints verschaffen (hier spw. Endpoint 5). Beim PAN04 habe ich es getest, aber dort funktioniert es nicht, da der idiotischerweise bei Schaltvorgaengen immer nur den Status des Gesamtgeraetes zurückliefert. Befürchte, der PAN06 ist nicht viel schlauer. Sehen könnte ich erste Indizien in einem ausführlichen Log (siehe https://wiki.fhem.de/wiki/Z-Wave#Welche_Infos_sollten_Anfragen_im_ZWave-Forum_enthalten.3F) von FHEM-Schaltvorgaengen.

Beim FGS probiere bitte zunaechst, ob es Unterschiede bei den Events in den einzelnen Assoziationsgruppen gibt. Dann könnte man manuelle und FHEM-Schaltvorgaenge daran unterscheiden.

rudolfkoenig

ZitatKann ich in fhem per notify oder DOIF auf einen bestimmten Zustandswechsel reagieren: off->on
define myNotify notify Geraet:on { if(OldValue($NAME) eq "off") { fhem("set ...") }

ZitatWar schon geneigt, an alle Objekte ein "previousstate"-userreading zu hängen, was ich per wildcard-notify aktualisiere, habe es aber aus Performancegründen verworfen..
Falls du wegen sowas Performanceprobleme kriegst, dann melde dich.

Fridtjof

Bin jetzt dazu gekommen alles so zu konfigurieren, wie wir es uns erarbeitet haben. Es funktioniert alles einwandfrei, vielen Dank für die Hilfe!

Grüße!