ich habe das Osterwochenende dazu genutzt meine Somfy Rollos an die Homematic anzubinden.
In diesem Forum wurde schon SEEEEHHHHR viel über das Thema geschrieben, ich weiß.
Für einen blutigen Anfänger wie mich fehlte aber hier und da ein klein wenig mehr Information, die ich mir nun durch ausprobieren erarbeitet habe - und ich habe viel gelernt dieses WE. Ich möchte daher hier meine Erfahrungen teilen, vielleicht hilft das einem anderen Anfänger weiter.
Dreh- und Angelpunkt war natürlich der folgende Thread aus diesem Forum viewtopic.php?f=37&t=21879 , sowie diese etwas überarbeitete Version: https://medium.com/@h3rmanns/somfy-rts- ... 9a76d701f4.
Meine Situation:
2x elektrische Rollos (ehemals Somfywandtaster), wurden durch SIMU Hz Unterputz-Empfänger RTS-kompatibel gemacht.
4 elektrische Rollos werden mit Somfy Fernbedienung angesprochen, Motoren unbekannt.
Somfy Telis 6 steuert je Kanal (1-6) ein Rollo an
Was wird benötigt:
CCU2 (vermutlich geht es auch mit der CCU1, das weiß ich nicht)
CUL Stick (ich habe einen 433 Mhz Stick genommen, es soll auch mit der 868 Variante gehen, die dann jeweils auf 433 umschaltet)
aktuelle Culfw Firmware auf dem Stick
Die Somfy Fernbedienung
1. CuxD installieren
in der CCU Einstellungen|System --> Zusatzsoftware installieren
die nächsten Schritte beschreibe ich nur grob, da hier https://medium.com/@h3rmanns/somfy-rts- ... 9a76d701f4 wirklich alles hübsch beschrieben ist.
2. CuxD Gerät anlegen (16 Kanal Universalsender, Typ Jalousie)
Meine Ergänzung für Einsteiger:
Das bedeutet, dass mit diesem einen virtuellen Gerät auf der CuxD 16 Einzelrollos angesteuert werden können.
Das Gerät (der Sender) heisst in dem Beispiel CUX40000001.
Per CUX40000001:1 ... CUX40000001:16 werden die Kanäle unterschieden.
3. Neuen Universalsender im CCU2 Geräte Posteingang annehmen
4. Neuen Universalsender bzw. Aktor konfigurieren
:1 --> Kanal 1
den Haken bei BLIND|CMD_EXEC setzen
bei BLIND|CMD_SHORT einfügen: tclsh /usr/local/addons/rollo/somfy.tcl CUX4000001:1 Somfy $VALUE$ A0 A00000
BLIND|CMD_LONG einfügen: tclsh /usr/local/addons/rollo/somfy.tcl CUX4000001:1 Somfy $VALUE$ A0 A00000
BLIND|CMD_STOP einfügen: tclsh /usr/local/addons/rollo/somfy.tcl CUX4000001:1 Somfy STOP A0 A00000
Meine Ergänzung für Einsteiger:
So, und dann verliessen mich alle referenzierten Anleitungen. Das ist bis hier hin alles fein. aber niemand beschreibt wie man weitere Rollos einprogrammiert.
Eigentlich ganz einfach:
oben genanntes (Haken setzen, die drei Kommandos für CMD_Short, CMD_Long, CMD_Stop) muss bei Bedarf einfach auch für Kanal zwei :2 bis sechzehn :16 werden. Es sind jedoch folgende Anpassungen nötig.
am Beispiel für den Short Befehl erklärt:
tclsh /usr/local/addons/rollo/somfy.tcl CUX4000001:1 Somfy $VALUE$ A0 A00000
CUX4000001:X --> Kanal anpassen (1..16)
Somfy --> Variable anpassen (gleich mehr, hier nur: jedes Rollo, also jeder Kanal, braucht eine eigene Variable. Ich habe sie für die Übersicht einfach Somfy2 - Somfy6 genannt.
A00000 --> das ist eine eindeutige Zahl für jedes Rollo (ich deute das ähnlich wie eine MAC-Adresse). Der Trick ist, dass sie für jedes Rollo, also jeden Kanal, Hochgezählt wird, und zwar im Hexadezimalsystem. Der erste Rollo heisst also A00000, dann A00001, A00002, A00003, A00004, A00005, A00006, A00007, A00008, A00009, A0000A, A0000B, A0000C, etc.....
Der komplette Befehl für den zweiten Kanal lautet also: tclsh /usr/local/addons/rollo/somfy.tcl CUX4000001:2 Somfy2 $VALUE$ A0 A00001
5. Systemvariablen erstellen
Wie unter 4. erwähnt wird die Variable "Somfy" bzw. "Somfy2" - "Somfy16" benötigt.
Dazu unter Einstellungen|Systemvariable jeweils eine Variable vom Typ Zahl mit dem Mininalwert 0 und Maxiwert 9999999999999 anlegen und dem richtigen Kanal zuordnen.
6. Steuerskript per Telnet/SSH auf die CCU kopieren.
Ich gehe wie alle anderen Anleitungen von folgendem Ablageort auf der CCU für das Skript aus: /usr/local/addons/rollo/
Als FTP Client nehme ich auch FileZilla welcher auch das für die CCU2 benötigte SFTP Protokoll unterstützt.
Eine Datei mit dem Namen somfy.tcl anlegen.
Mit folgendem Inhalt:
Code: Alles auswählen
#!/bin/tclsh
load tclrega.so
#set device_name "CUX4000001"
set device_name [lindex $argv 0]
set device_sysvar_name [lindex $argv 1]
set device_cmd [lindex $argv 2]
set device_remote_enc [lindex $argv 3]
set device_remote_id [lindex $argv 4]
# command-line for reading rolling counter sysvar
set cmd "var remote_counter = dom.GetObject(\"$device_sysvar_name\").Value();"
# read sysvar
array set values [rega_script $cmd ]
set remote_counter $values(remote_counter)
# convert to integer
set remote_counter [ expr int($remote_counter)]
#puts $remote_counter
# convert to HEX
set remote_counter_hex [ format %04X $remote_counter ]
#puts $remote_counter_hex
switch $device_cmd {
"OPEN" { set device_cmd_hex "20" }
"1000" { set device_cmd_hex "20" }
"CLOSE" { set device_cmd_hex "40" }
"0" { set device_cmd_hex "40" }
"PROG" { set device_cmd_hex "80" }
"MY" { set device_cmd_hex "10" }
"500" { set device_cmd_hex "10" }
"STOP" { set device_cmd_hex "11" }
default { puts "WRONG SOMFY COMMAND" }
}
set somfy_cmd "\"Ys$device_remote_enc$device_cmd_hex$remote_counter_hex$device_remote_id\""
puts $somfy_cmd
set cmd "dom.GetObject(\"CUxD.$device_name.SEND_CMD\").State($somfy_cmd);"
puts $cmd
#array set values [ rega_script $cmd ]
rega_script $cmd
#rega_script { dom.GetObject("CUxD.CUX4000001:1.SEND_CMD").State("YsA0200018ABCDEF");}
set remote_counter [ expr $remote_counter + 1 ]
puts $remote_counter
set cmd ""
append cmd "var i = dom.GetObject('$device_sysvar_name');"
append cmd "i.State('$remote_counter');"
array set values [rega_script $cmd ]
7. Cul Stick als Fernbedienung anlernen
Idee: Jedes Rollo nacheinander in den Lernmodus versetzen, dann einen passenden Befehl via virtuellem Aktor (also Telnet -> Cul Stick) senden, um diesen als "Fernbedienung" anzulernen
Wie man Euer Rollo in den Modus versetzt müsst Ihr in Euren Handbüchern nachlesen. Bei mir geht es z.B. so, dass ich an der Telis 6 den Kanal auswähle (z.B. 1), und dann auf der Rückseite der Fernbedienung für zwei Sekunden den PROG Knopf drücke. Das Rollo quittiert mit einem kurzen Runter-Rauf Zucken.
Also, Kanal 1 per Fernbedienung in den Anlernmodus, dann via telnet auf der CCU tclsh /usr/local/addons/rollo/somfy.tcl CUX4000001:1 Somfy PROG A0 A00000
Das Rollo quittiert mit einem kurzen Runter-Rauf Zucken.
Dann Kanal 2 per Fernbedienung in den Anlernmodus, dann via telnet auf der CCU tclsh /usr/local/addons/rollo/somfy.tcl CUX4000001:2 Somfy2 PROG A0 A00001
Das Rollo quittiert mit einem kurzen Runter-Rauf Zucken.
Dann Kanal 3 per Fernbedienung in den Anlernmodus, dann via telnet auf der CCU tclsh /usr/local/addons/rollo/somfy.tcl CUX4000001:3 Somfy2 PROG A0 A00002
Das Rollo quittiert mit einem kurzen Runter-Rauf Zucken.
etc..
etc..
DAS WAR'S !!
Danach das übliche Homematic-Prozedere. Geräte, Räume, Gewerke zuordnen usw.
Ich hoffe ich habe dem ein oder anderen Suchenden etwas helfen können.