
Da mit der Pergola in Anlernmodus bringen . seh ich auch skeptisch .. zumal ich keine Info über den Empfänger habe...
weiss jemand ob man über die CUL Signalduino von Fernbedienung auf CUL anlernen kann ?
Moderator: Co-Administratoren
Code: Alles auswählen
#!/bin/tclsh
#tclsh /usr/local/addons/rollo/somfy.tcl CUX4000001:1 Somfy STOP A0 A00001 J
#device_name = CUX4000001:1
#device_sysvar_name = Somfy
#device_cmd = STOP
#device_remote_enc = A0
#device_remote_id = A00001
#device_kind = J (J-Mode)
load tclrega.so
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]
set device_kind [lindex $argv 5]
#DEBUG:
#puts "device_name = $device_name"
#puts "device_sysvar_name = $device_sysvar_name"
#puts "device_cmd = $device_cmd"
# 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 ]
# Zähler für J-Mode, initial 1
set loop 1
switch $device_cmd {
"OPEN" { set device_cmd_hex "20" }
"1000" {
set device_cmd_hex "20"
if { $device_kind == "J" } {
set loop 2
}
}
"CLOSE" { set device_cmd_hex "40" }
"0" {
set device_cmd_hex "40"
if { $device_kind == "J" } {
set loop 2
}
}
"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"
exit 100
}
}
# initiale Befüllung aus CCU-Variable
set remote_counter $values(remote_counter)
# Im J-Mode (z.B. für SOLIRIS MOD RTS) sind zwei Befehle notwendig
while {$loop > 0} {
# convert to integer
set remote_counter [ expr int($remote_counter)]
# convert to HEX
set remote_counter_hex [ format %04X $remote_counter ]
set somfy_cmd "\"Ys$device_remote_enc$device_cmd_hex$remote_counter_hex$device_remote_id\""
set cmd "dom.GetObject(\"CUxD.$device_name.SEND_CMD\").State($somfy_cmd);"
#DEBUG:
puts $cmd
rega_script $cmd
#rega_script { dom.GetObject("CUxD.CUX4000001:1.SEND_CMD").State("YsA0200018ABCDEF");}
# erhöhe Remote-Counter-Wert
set remote_counter [ expr $remote_counter + 1 ]
#DEBUG:
#puts $remote_counter
# setze neuen Remote-Counter-Wert in CCU
set cmd ""
append cmd "var i = dom.GetObject('$device_sysvar_name');"
append cmd "i.State('$remote_counter');"
array set values [rega_script $cmd ]
set loop [expr {$loop - 1}]
#DEBUG:
#puts "loop-counter = $loop"
after 10
}