Modul-Entwicklung: Somfy RTS

Begonnen von thdankert, 12 Juli 2014, 21:04:31

Vorheriges Thema - Nächstes Thema

Mave

Guten Morgen,

ich habe gestern meinen SIGNALduino mit cc1101 auf die Somfy Frequenz 433.42 eingestellt und die Somfy Fernbedienung betätigt - und zwar für alle 3 Jalousien einzelnen und noch für alle 3 Jalousien gleichzeitig. FHEM hat mir daraufhin brav 4 Somfy Devices angelegt. Mit "repetition=30" kann ich jetzt alle Jalousien problemlos steuern.

Ich hatte vor ein paar Tagen schonmal FHEM über meinen CUL868 mit den Somfy Jalousien gekoppelt, konnte die Jalousien aber trotz vielen Versuchen mit repetition nicht am Stück hoch oder runterfahren lassen - sie haben sich immer nur für ein paar Millimeter bewegt.

Jetzt meine Fragen:
1) Ist FHEM mit den Jalousien noch immer gekoppelt, obwohl ich vom CUL868 auf den neuen SIGNALduino gewechselt bin oder simuliert/emuliert FHEM jetzt die original Fernbedienung, weil ich ja quasi die Verbindung FB <-> Somfy durch das "Abhören" gekapert habe?
2) Mit der original FB kann ich die Jalousien nicht mehr ohne Weiteres steuern. Erst wenn ich mehrfach die Knöpfe auf der FB betätige und damit den rolling-code erhöhe, funktioniert irgendwann auch mal wieder die original FB. Umgekehrt lassen sich dann aber die Jalousien mit FHEM wieder erst nach mehrmaligem triggern zu einer Bewegung animieren.
Gibt es eine Möglichkeit, die Jalousien mit FHEM UND der FB gleichzeitig zu steuern?

Vielen Dank für Eure Unterstützung.

Grüße Mave

Ellert

Wenn das FHEM-Gerät mit der selben Adresse, wie die FB arbeitet, dann stören sie sich gegenseitig, wie Du selbst beobachtet hast.

Du müsstest für jede benutzte FB-Adresse ein FHEM-Gerät mit einer von Dir festgelegten Adresse erstellen und diese FHEM-Geräte an die entsprechende Somfy-Hardware anlernen, so wie Du es mit einer FB machst.

FB-Adresse ABCDE0 angelernt auf Rollo1
FHEM-Gerät zum Empfang der FB mit Adresse ABCDE0 (Status des Rollo1 wenn über FB bedient) Dieses Gerät kann als Dummydevice (nicht als Dummy) konfiguriert werden, das es Rolo1 nicht bedienen soll (vermeiden des Rolling Code Konflikts)
FHEM-Gerät als virtuelle FB mit der selbst vergebenen Adresse FAFAF0 (anlernen auf Rollo1)

Damit das FHEM-Gerät (FAFAF0) den richtigen Status anzeigt muss der Status des FHEM-Gerät (ABCDE0) in parsestate über ein DOIF oder notify auf das FHEM-Gerät (FAFAF0) mit setreading Somfy_FAFAF0 state [Somfy_ABCDE0:parsestate] übertragen werden.

RaspiLED

#347
Hi,
nur für Dein Verständnis: Somfy benutzt Rolling Codes - also wird bei jedem Tastendruck ein Zähler um eins erhöht. Wenn man zu alte Rolling Codes sendet bewegt sich die Rollade deswegen nicht mehr. Warum? Das ist ein Sicherheitsfeature und verhindert sogenannte Replay-Attacken!

Der Beitrag vorher erklärt daher richtigerweise den Weg mittels FHEM FB und zweiter Hand FB!
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Mave

Zitat von: Ellert am 03 Juni 2017, 08:58:24
Wenn das FHEM-Gerät mit der selben Adresse, wie die FB arbeitet, dann stören sie sich gegenseitig, wie Du selbst beobachtet hast.

Du müsstest für jede benutzte FB-Adresse ein FHEM-Gerät mit einer von Dir festgelegten Adresse erstellen und diese FHEM-Geräte an die entsprechende Somfy-Hardware anlernen, so wie Du es mit einer FB machst.

FB-Adresse ABCDE0 angelernt auf Rollo1
FHEM-Gerät zum Empfang der FB mit Adresse ABCDE0 (Status des Rollo1 wenn über FB bedient) Dieses Gerät kann als Dummydevice (nicht als Dummy) konfiguriert werden, das es Rolo1 nicht bedienen soll (vermeiden des Rolling Code Konflikts)
FHEM-Gerät als virtuelle FB mit der selbst vergebenen Adresse FAFAF0 (anlernen auf Rollo1)

Damit das FHEM-Gerät (FAFAF0) den richtigen Status anzeigt muss der Status des FHEM-Gerät (ABCDE0) in parsestate über ein DOIF oder notify auf das FHEM-Gerät (FAFAF0) mit setreading Somfy_FAFAF0 state [Somfy_ABCDE0:parsestate] übertragen werden.

Hey Ellert,

vielen Dank für Deine Hilfestellung.

Leider verstehe ich noch nicht ganz, wie ich das jetzt umsetzen soll.

Wärst Du bitte so lieb und schreibst nochmal für einen Newbie, was er genau tun muß.

Vielen Dank im Voraus.

Grüße Mave

Ellert

Zitat von: Mave am 03 Juni 2017, 11:59:53
Hey Ellert,

vielen Dank für Deine Hilfestellung.

Leider verstehe ich noch nicht ganz, wie ich das jetzt umsetzen soll.

Wärst Du bitte so lieb und schreibst nochmal für einen Newbie, was er genau tun muß.

Vielen Dank im Voraus.

Grüße Mave
Was konkret verstehst Du nicht, hinsichtlich der Umsetzung? Und was hast Du schon selbst versucht, um das Verständnis zu erlangen?

Mave

Die Steuerung über FB und FHEM habe ich jetzt hinbekommen.

Mir fehlt jetzt noch die Anzeige des Status in FHEM, wenn ich die FB verwende.

Grüße Mave

Ellert


RaspiLED

Naja, wohl eher #347 letzter Satz ;-)
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

timtom

Zitat von: Ellert am 03 Juni 2017, 08:58:24
Wenn das FHEM-Gerät mit der selben Adresse, wie die FB arbeitet, dann stören sie sich gegenseitig, wie Du selbst beobachtet hast.

Du müsstest für jede benutzte FB-Adresse ein FHEM-Gerät mit einer von Dir festgelegten Adresse erstellen und diese FHEM-Geräte an die entsprechende Somfy-Hardware anlernen, so wie Du es mit einer FB machst.

FB-Adresse ABCDE0 angelernt auf Rollo1
FHEM-Gerät zum Empfang der FB mit Adresse ABCDE0 (Status des Rollo1 wenn über FB bedient) Dieses Gerät kann als Dummydevice (nicht als Dummy) konfiguriert werden, das es Rolo1 nicht bedienen soll (vermeiden des Rolling Code Konflikts)
FHEM-Gerät als virtuelle FB mit der selbst vergebenen Adresse FAFAF0 (anlernen auf Rollo1)

Damit das FHEM-Gerät (FAFAF0) den richtigen Status anzeigt muss der Status des FHEM-Gerät (ABCDE0) in parsestate über ein DOIF oder notify auf das FHEM-Gerät (FAFAF0) mit setreading Somfy_FAFAF0 state [Somfy_ABCDE0:parsestate] übertragen werden.
Genau das Vorgehen verstehe ich ebenfalls nicht (wie auch hier beschrieben: https://forum.fhem.de/index.php/topic,72173.0.html)
Mein Problem ist, dass beim Betätigen der FB eben nicht die genaue Position (z.B. 30%) im Status vorgehalten wird, sondern eben nur on/off/stop. Daher funktioniert auch die Übergabe per parsestate nur, wenn der Rolladen komplett offen oder geschlossen ist. Oder habe ich ein Fehler im Define?

Ellert

#354
Zitat von: timtom am 05 Juni 2017, 16:42:33
Genau das Vorgehen verstehe ich ebenfalls nicht (wie auch hier beschrieben: https://forum.fhem.de/index.php/topic,72173.0.html)
Mein Problem ist, dass beim Betätigen der FB eben nicht die genaue Position (z.B. 30%) im Status vorgehalten wird, sondern eben nur on/off/stop. Daher funktioniert auch die Übergabe per parsestate nur, wenn der Rolladen komplett offen oder geschlossen ist. Oder habe ich ein Fehler im Define?
Somfy kann, soweit ich weiss nur up, down, stop, und programm, mehr nutze ich auch nicht. Wenn das FHEM-Gerät auf dem der Handsender abgestützt ist Events für Prozentwerte liefert, dann könnt man die auch auf das 2. FHEM-Gerät übertragen, aber ob das so ist, weiss ich nicht.

Vielleicht klappt es über einen Umweg 1. Fhem-Gerät (Handsenderempfang: up,down,stop) per notify/DOIF und set-Befehl auf 2.FHEM-Gerät (Dummydevice) darauf ein notify/DOIF, dass per setreading die %-Werte auf das 3.FHEM-Gerät (angelernt auf Rolladen) überträgt, so als Idee.

timtom

Zitat von: Ellert am 05 Juni 2017, 20:17:43
Somfy kann, soweit ich weiss nur up, down, stop, und programm, mehr nutze ich auch nicht. Wenn das FHEM-Gerät auf dem der Handsender abgestützt ist Events für Prozentwerte liefert, dann könnt man die auch auf das 2. FHEM-Gerät übertragen, aber ob das so ist, weiss ich nicht.

Vielleicht klappt es über einen Umweg 1. Fhem-Gerät (Handsenderempfang: up,down,stop) per notify/DOIF und set-Befehl auf 2.FHEM-Gerät (Dummydevice) darauf ein notify/DOIF, dass per setreading die %-Werte auf das 3.FHEM-Gerät (angelernt auf Rolladen) überträgt, so als Idee.
Also die Prozentwerte (im STATE) werden nach Pflege der Attribute (z.B. drive-down-time-to-100) ja von FHEM berechnet. Allerdings anscheinend nur, wenn man das Rolladen-FHEM-Device oder das FB-FHEM-Device über FHEM betätigt. Betätige ich die FB-Hardware, ändert sich im FB-FHEM-Device nur der Status nach on/off/go-my.
Daher habe ich als Workaround ja das DOIF, dass einfach ein SET an das Rolladen-FHEM-Device, sobald die FB-Hardware betätigt wird. Dann wird zwar 1 Funksignal durch die FB-Hardware an den Rolladen gesendet und noch 1 Funksignal über das SET des Rolladen-FHEM-Device. Anders habe ich das aber bisher nicht hinbekommen.

RaspiLED

Hi,
Daher mein Vorschlag noch ein drittes Somfy Device zu nutzen, dass nicht gepaired ist und daher auch keine doppelte Auslösung macht. Jeweils ein Doif von dem FB Somfy oder dem FHEM Somfy an das dritte, welches nur als Statusanzeige verwendet wird. Dann kann man aber mit diesem Device nicht schalten (sonst wäre es ein Zirkelschluss). Hat jemand eine bessere Idee? Oder eine myutils routine, die das FHEM Somfy Device nur senden lösst, falls vorher keine Änderung an dem FB Somfy stattgefunden hat!?

Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Mave

Zitat von: Ellert am 04 Juni 2017, 12:25:54
Antwort #346: Letzter Satz.

Vielen Dank.

Mir fehlt im Moment noch das Verständnis, wie man dieses Dummydevice (nicht Dummy) anlegt.

RaspiLED

Hi,
Ich habe in einem anderen Thread etwas zu Readingsproxy gelesen, könnte uns das helfen?
Gruß Arnd

Gesendet von meinem SM-G800F mit Tapatalk

Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Ellert

Zitat von: Mave am 09 Juni 2017, 06:21:18
Vielen Dank.

Mir fehlt im Moment noch das Verständnis, wie man dieses Dummydevice (nicht Dummy) anlegt.

Um bei diesem Beispiel zu bleiben https://forum.fhem.de/index.php/topic,25321.msg643319.html#msg643319

müsstest Du im Gerät Somfy_ABCDE0 (Empfang des Handsenders) das Attribut "dummy" auf 1 setzen.