Hauptmenü

Somfy RTS Jalousie

Begonnen von scuba, 14 November 2015, 17:17:55

Vorheriges Thema - Nächstes Thema

scuba

@vigener:
Hab mich ein bisschen im Code umgesehen... hab ich das richtig verstanden?

Der Somfy Befehl setzt sich aus folgenden Komponenten zusammen <CUL_Command> <KEY> <Command> <Rolling Code> <Address>.
Der Eigentliche Befehl für on | off | stop ist nur <Command> ? ON=40, OFF=20, STOP/my-pos=11?
Mit dem FHEM Befehl "z_custom" kann ich selbst einen <Command> übergeben?

Somit könnte ich mich durch die 256 Möglichkeiten durchprobieren bis ich den richtigen hab... oder stell ich mir die Welt zu einfach vor?

viegener

Wenn es danach ginge, wäre es noch einfacher, denn es gibt nur 16 Codes = 4bit (der zweite Nibble im Command wird durch die Checksum gefüllt).
Bisher sind auch alle Kommandos einzelne bit werte 1 = 0001 / 2 = 0010 / 4 = 0100 / 8 = 1000

Es könnte also eine Kombination sein, allerdings gibt es im Protokoll noch ein ganzes ungenutztes Byte am Anfang über das noch wenig bekannt ist (ausser dass Ax ein guter Wert ist). Bei den Fernbedienungen die ich angeschaut habe, wird dieser Code variiert nach mir unbekannten Regeln (je nachdem, ob dasselbe Kommando wiederholt wird oder ein neues Kommando).

Ausserdem ist bisher unbekannt ob sich nicht die Fernbedienung anders verhält (Also nach 1s nochmals etwas anderes sendet)...

Das erhöht die Möglichkeiten extrem.

Was z_custom momentan macht, kann ich gar nicht genau sagen, aber meines Wissens erlaubt es nicht das frei Setzen des commands.

Für direkte Kommandos musst Du direkt an den CUL nicht über Somfy (Kommando Y...)

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

scuba

Wär ja auch wirklich zu einfach gewesen  ;D
hab leider auch gerade gesehen , dass das z_command nicht das macht was ich erwartet hab....
obwohl ich schon glaube, dass das so gedacht ist ...

if($command eq "XX") {
                # use user-supplied custom command
                $command = $args[1];
        }

        $message = "s"
          . $enckey
          . $command
          . $rollingcode
          . uc( $hash->{ADDRESS} );


wird aber vermutlich noch woanders abgefangen...

sollt sich kein passender Command Bruteforcen lassen muss ich wirklich warten bis der Empfänger für den Fhemduino da ist.


scuba

Einfach durchiterieren der Kommands hat nichts gebracht... ABER mit einem "Doppelklick" auf on oder off fährt meine Jal. jetzt ganz rauf bzw. runter.  :D Hattest also recht, dass der Befehl anscheinend 2 mal abgesendet wird. Allerdings kommt jetzt ab und an der bekannte "nanoCul Hänger bei zu schneller Kommandofolge" zu tragen. Werde etwas später heute Abend deine "gefixte Firmware aus deinem anderen Thread testen.... jetzt will mein Hund erst mal raus  ;)

@Puschel: Kannst du das Verhalten bei dir nachstellen bzw. bestätigen. Falls ja könnte man ja über eine Implementierung nachdenken.

lg


viegener

Das wäre schonmal ein interessanter ansatz, jetzt wäre die frage ob man durch schnelles hintereinandersenden der befehle in fhem das auch erreichen kann.

Also entweder durch 2 mal schnell hintereinander druecken von auf oder ab im somfy device oder zur not über zwei raw commands. Die frage ist immer noch, was die mit den anderen elementen des befehls machen (rolling code und control code)
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

scuba

Zitat von: viegener am 16 November 2015, 19:59:49
Das wäre schonmal ein interessanter ansatz, jetzt wäre die frage ob man durch schnelles hintereinandersenden der befehle in fhem das auch erreichen kann.

Also entweder durch 2 mal schnell hintereinander druecken von auf oder ab im somfy device oder zur not über zwei raw commands. Die frage ist immer noch, was die mit den anderen elementen des befehls machen (rolling code und control code)
Das mit dem Doppelklick hab ich auf dem somfy device aus fhem durchgeführt. Also Doppelklick auf on  oder off klappt.Die jal . verhält sich allerdings aber nicht zu 100% wie mit der Fernsteuerung.Beim Doppelklick macht sie zuerst den 1sekunden step und fährt erst dann in die Endlagen. Ich Spiel mich gerade mit dem timing in welchem Abstand die befehle ausgeführt werden müssen.
Mal sehen ::)

Gesendet von meinem CUBOT X6 mit Tapatalk


viegener

Klingt gut!

Wenn Du es über den nanocul direkt ausprobieren willst, kannst Du als raw Befehle am CUL device eingeben und den Befehl folgendermassen zusammenbauen:

YsA020<vierstelliger Rolling code><addresse 6 stellig> für Aufwärts.

Also z.B:

YsA020010BABCDEF
und dann
YsA020010CABCDEF

wobei ABCDEF die Adresse und 010B bzw, 010C die rolling codes sind.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

scuba

Der Doppelklick scheint nur mit a-culfw zu funzen. Mit deiner "gefixteten" bzw. der originalen culfw klappts komischerweise nicht.

viegener

Ich nehme an, das ist einer der Seiteneffekte des Fixes. Ich denke es ist wichtig rauszufinden, was die FB wirklich sendet.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

scuba

ja ist vermutlich.. Bis auf weiteres hab ich mich mit einem dummy beholfen und lass ein notify den on/off Befehl einfach zweimal absetzen. Klappt bis auf die gelegentlichen Hänger auch recht gut.

scuba

Leider ist meine Sender/Empfänger letzte Woche noch nicht angekommen.
Allerdings hab ich den Tipp von Vigener das Attribut "repetition" auf "2" zu setzen (eigentlich um die nanoCul hänger zu beseitigen) ausprobiert und ... tada... jetzt fahren meine Jalousien auch ohne Doppelklick bzw. zweifachem Absenden des Befehls nach oben!! Wie sich der Parameter auf die Stabilität des CULs auswirkt wird sich erst zeigen...

scuba

Soda, mittlerweilen ist mein Empfänger angekommen und ich konnte einen FHEMduino zusammenbasteln bzw. meine Fernbedienung auslesen.
Folgende Erkentnisse konnte ich jetzt mal sammeln:

- Die Befehle 40/20/10/80 für ab/auf/stop/program sind auch bei meiner Fernbedienung ident. Wie sich die Motoren verhalten hängt wie erwartet einzig vom verwendeten Empfänger ab.

- Zusätzlich konnte ich noch 2 weitere Befehle auslesen: "90" lässt die "Soliris" Aktoren auf Wind  und Sonnensensoren reagieren."a0" lässt sie nur auf Windsensoren reagieren. Vermutlich gibt es noch weitere Befehle die von Wind/Sonnensensoren abgesendet werden.

- Die Aktoren reagieren nicht nur auf den Empfang eines einzelnen Befehls sondern auch die Anzahl / Dauer der empfangenen Befehle spielt eine Rolle. Hierbei darf sich der ENC-KEY sowie der Rolling Code nicht ändern.

Bsp: Der Befehl "90" wird 7 mal abgesetzt.
Ys a6 90 2eb9 6d40cf
Ys a6 90 2eb9 6d40cf
Ys a6 90 2eb9 6d40cf
Ys a6 90 2eb9 6d40cf
Ys a6 90 2eb9 6d40cf
Ys a6 90 2eb9 6d40cf
Ys a6 90 2eb9 6d40cf

... Zum einleiten des Programmiermodus muss der Befehl 80 ebenfalls öfters hintereinander abgesetzt werden.

- Die Ursache warum meine Jal. nur ein Stück gefahren sind liegt ebenfalls in der Wiederholung der Pakete. Wie bereits in deinem anderen Thread erwähnt schickt ein "Somfy FHEM Device" standardmäßig alle Pakete 6x hintereinander ab. Mit dem Attribut "Repetition 1" können meine Jalousien nun korrekt angesteuert werden.

- Windsensoren senden zyklisch einen "Alive" Befehl an die Aktoren aus. Sollte dieser ausbleiben fahren die Jal. nach einer gewissen Zeit aus sicherheitsgründen ganz nach oben.(Info vom Somfy Support) Ich habe gebrauchte Empfänger im Einsatz an denen anscheinend Windsensoren eingelernt waren ;-)

- Aus noch ungeklärten Gründen, möglicherweise durch zu häufiges programmieren,  können die Empfänger ihren ?RollingCode? verlieren. Zumindest reagieren sie dann auf keinerlei Befehle von bereits eingelernten Fernbedienungen. Sie lassen sich mit den eingelernten FBs weder in den Programmiermodus versetzen noch auf Werkseinstellung zurücksetzen oder anderwertig bedienen. (hier konnte mir der Somfy Support auch nicht weiterhelfen).
Das Phänomen kann auf 2 Arten behoben werden:
1) mit einer weiteren noch nicht verwendeten FB ein Werksreset durchführen.
2) Funktioniert zumindest mit "Somfy Telis" FB. Gehäuse der FB öffnen. Rechts neben der Batterie befinden sich 2 Lötpads mit der Beschriftung "ADR". Diese beiden Pads mit einem Drahtstück für ca. 3 Sekunden brücken. Die LED blinkt 2 mal. Damit dürfte sich die Adresse der FB ändern und kann somit neu in die Empfänger eingelernt werden.

Ich werde mich in den nächsten Tagen noch mit den Timings in den unterschiedlichen Betriebsmodi (EU/US) spielen. Vielleicht könnte man am "model" Attribut ansetzen um entsprechend des eingestellten Modells die nötigen Wiederholungen anzupassen.

Was haltet ihr von einem Wiki Beitrag zu den Themen oder ist das etwas zu offtopic bzw. produktspezifisch?

viegener

OK, das ist ja eine Menge Erkenntnis, damit lässt sich auf jeden Fall eine Menge anfangen. Danke für den ganzen Aufwand.

Ich fange mal hinten an: Ja ein wiki-Eintrag würde sicher Sinn machen, die Erkenntnisse sind je eher nicht flüchtige Infos, damit können Sie auch für andere relevant sein. Insbesondere das Zurücksetzen der FB ist bestimmt hilfreich.

Das mit dem model-Attribut wäre sicher die Lösung der Wahl.

Model shutter (rolladen)
- repetition default 6?
- Kommandos wie bisher

Model jalousie (soliris)
- repetition default 1?
- kommandos wie shutter, zusätzlich
  - on-short (on mit repetition 6)
  - off-short (off mit repetition 6)

Die zusätzlichen Befehle sind sicher interessant, würde ich jetzt aber nicht als vordringlich sehen, oder hast Du vor noch Windsensoren zuzurüsten? Das automatische Hochfahren würde ich jetzt auch eher bei fhem selbst sehen.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

realkeule

#28
Ich hab bei meinen Raffstores repetition 2 AFAIK. Darüber wurde vor langer zeit mal diskutiert.

Gesendet von meinem SM-T530 mit Tapatalk

edit//
repetition 3 galt bei mir als bestes ergebnis. wenn lange gedrückt  wird läuft der raffstore solange wie gedrückt wird. bei kurzen druck läuft er bis stop oder ende. aber das wurde ja schon geklärt.

Somfy
Ebus