Entwicklung Somfy RTS Modul: Fragen

Hey,

ich bin dabei, ein Somfy RTS Modul zur Rollladensteuerung zu entwickeln und hätte ein paar Fragen:

  1. Wie speichere ich am besten Rolling Code und Encryption Key (wird beides generiert)? Ich orientiere mich am Intertechno-Modul und sehe in MyPeer.cpp eine DataTable (Homegear-Intertechno/MyPeer.cpp at 261654ca324b2ed3ffa05f13df3b61d48073c0e7 · Homegear/Homegear-Intertechno · GitHub). Wie wird die verwendet, was bedeutet case 19?

  2. Ich habe “nur” ein CUN (MAX!Cube mit 3 Modulen) und kann daher nur damit testen. Alle anderen PhysicalInterfaces muss ich vorerst deaktivieren, wobei CUL und COC unproblematisch sein dürften.

  3. Was ist der Unterschied (bei Intertechno) zwischen MyPacket und MyCulTxPacket?

Vom Design wird es so sein, dass ein virtuelles “Central” automatisch erzeugt wird und man dann, wie bei Intertechno, eine Fernbedienung mit beliebiger ID anlegen muss. Dann bringt man den Rollladen in den Pairing-Modus, führt den Pairing-Befehl in Homegear aus und ab dann sollte der Rollladen funktionieren.

Ich bin noch ziemlich am Anfang und werde noch einige Zeit brauchen, bis es funktioniert - Homegear ist auch nicht ganz wenig Code.

2 Likes

Hey @andyboeh cool, dass du dich an das Thema machst. Ich nehme an, 433.42 MHz anstelle der üblichen 433.92 MHz sind dir bekannt. Schau dir auch mal den Fred Somfy / RTS Funkprotokoll und Geräte an, da gibt es auch schon einiges zum Thema RTS.

Bislang mit dem Ansatz eines externen Gateways, wo der Rolling Code dann im EEProm gespeichert würde.

Hoffe, dass bringt dich weiter und halt uns auf dem Laufenden.

Ja, der letzte Post ist von mir :slight_smile:

Das Praktische am CUL ist, dass sich der um die Details des Sendevorgangs kümmert - in Homegear muss “nur” das Management von Rolling Code, Adressen und Verschlüsselung implementiert werden. Dadurch, dass ein CC1101 verbaut ist, kann die Frequenz ja auch eingestellt werden und man muss keinen Quarz umlöten (zugegeben, der Einbau des 433MHz Moduls in meinen MAX!Cube war sicher nicht weniger aufwändig).

Das war jetzt, ehrlich gesagt, einfacher als gedacht. Auf meinem CUBe_x4 kann ich erfolgreich meine Somfy Rollläden steuern (bisher nur mit einem getestet)!

Der Code ist in meinem Github Repository: GitHub - andyboeh/Homegear-Somfy: Somfy RTS module for Homegear
Dort ist auch beschrieben, wie die Installation funktioniert und wie man einen Rollladen hinzufügt.

WICHTIG Es ist nur CUNX als Interface implementiert, weil ich kein anderes Interfaces habe. Eine Portierung auf alles, was mit einer culfw läuft, sollte relativ einfach sein, ich kann es nur nicht testen. Freiwillige vor!

Ich bin recht neu mit Homegear und habe bisher nur die Kommandozeile benutzt. Wie ich das als Rollladen repräsentiert bekommt, habe ich noch nicht getestet und weiß ich auch noch nicht…

Grundsätzlich wäre es wohl sinnvoll, anstelle eines eigenen Moduls den Code in das Intertechno-Modul zu integrieren, weil man sonst für Somfy einen eigenen CUL verwenden müsste (beim CUN ist das nicht so tragisch, weil der mehrere Verbindungen zulässt). Vielleicht seh ich mir das noch an.

3 Likes

Cool, tönt super. Habe noch keine Erfahrung mit CUNX. Aber will deinen Code auf jeden Fall ausprobieren!
Könnte jemand helfen, dies direkt via SPI auf ein CC1101 anzupassen, so wie die Module von @pmayer?

Ich verwende umgebaute MAX!Cubes, die bekommt man gebraucht extrem billig - ein zusätzliches 433MHz CC1101 Modul, dann ist die Reichweite auch in Ordnung.

Ich gehe davon aus, dass man den Somfy-Code aus culfw oder a-culfw portieren kann - dort müsste man die notwendigen Register finden und auch Algorithmen zur Berechnung der Checksumme und der Verschleierung des Befehls.
Siehe a-culfw/somfy_rts.c at master · heliflieger/a-culfw · GitHub

Das könnte imho nur @sathya. Im SPI-Modul läuft keine culFW… das macht da alles homegear.
Macht mehr Sinn dann den UART zu nehmen und einen HAT zu bauen oder eben per USB.

So nen hat könnte ich aber natürlich bauen. ATMega328p + CC1101@433MHz mit den Mod’s von @andyboeh.

Ja, da fehlt nur mehr der Support für das physikalische Interface, das sollte sich aber ganz leicht integrieren lassen - da läuft dann eine culfw, oder?

Ich warte derzeit auf ein CC1101 Modul, dann bauch ich mir vielleicht noch einen CUL (auf Basis von Arduino Pro Micro, da liegt noch eine 3,3V-Version im Kasten).

Japp. Der Arduino Pro Micro ist auch “nur” ein ATMega. Schlussendlich übersetzt die CULFW SPI auf UART.
Wenn man USB will, nimmt man einen ATMega32u.

Hab mir jetzt einen CUL gebaut (868MHz, aber wird auf kurze Distanz schon funktionieren), aber bevor ich testen kann, bräuchte ich noch ein wenig Unterstützung:

Wie bekomme ich ein Docker Image und/oder Debian Package von Homegear mit meinem Modul gebaut?

Ich habe mir das homegear/build docker Image angesehen, ich bin aber auch bei docker so neu, dass mir nicht klar ist, wie ich ein Package aus einer anderen = meiner Quelle bauen kann?

paging @sathya

Freue mich sehr, dass das Thema RTS wieder frischen Wind bekommt. Leider bin ich nun wohl keine grosse Hilfe mehr, da ich weder von der Hatd- noch von der Software grosse Ahnung habe. Ironidcherweide sind just heute meine 433,42 MHz Quarze aus Fernost angekommen.

Was ich aber gerne mache ist nachbauen und Testen. Am liebsten mit einem @pmayer Modul via SPI oder via Mqtt mit einem Arduino Nano.
Ich habe eine RTS Anlage mit total 7 Jalousie-Rolladen und einem Sonnenstoren am Start.

Habt ihr das hier gesehen?

Klingt interessant und wäre für meine Anwendung tatsächlich eine Alternative (ich müsste eines der ESP32-Module mit Ethernet nehmen).

Was mir an der Homegear-Variante besser gefällt, ist, dass die Codes der Fernbedienung in Homegear gespeichert werden und damit vom Funkmodul unabhängig sind. Die ESP-Lösung speichert das auf dem ESP.

@sathya Hast du Tipps für mich, wie ich Homegear-Somfy in das Docker-Image integrieren kann, damit ich das wirklich testen kann?

Danke @pmayer das gibt echt neue Ansätze. Ich werde mir wohl mal erst die Arduino Variante bauen und dann schauen, dass ich das irgendwie mit Mqtt ansteuern kann. Im Artikel wird auf folgenden Github referenziert: