setparam.tcl

Support for our english speaking visitors

Moderator: Co-Administratoren

Antworten
Dolph
Beiträge: 16
Registriert: 16.09.2013, 22:37

setparam.tcl

Beitrag von Dolph » 11.11.2014, 23:19

Have been looking to use setparam.tcl to be able to set the weekly schedule of the HM-CC-RT-DN TRVs but was finding it very slow due to having to send so many messages to change the full schedule.

e.g.

Code: Alles auswählen

var addr=dom.GetObject("Study").Address();
WriteLine(addr);
var stdout;
var stderr;
var cmd = "tclsh /usr/local/setparam.tcl "+addr+" TEMPERATURE_SATURDAY_1 string 12.00";
system.Exec(cmd,&stdout,&stderr);
var cmd = "tclsh /usr/local/setparam.tcl "+addr+" ENDTIME_SATURDAY_1 int 30";
system.Exec(cmd,&stdout,&stderr);
I've created an amended setparam_ad.tcl as follows:

Code: Alles auswählen

#
# tclsh setparam <addresse> <struct>
# z.B.
# tclsh setparam GEQ004711:2 {MODE_TEMPERATUR_REGULATOR {int 1}} {MODE_TEMPERATUR_REGULATOR {int 1}}
#
# Diese Version ist fuer Funk. Fuer Wired muss unten der Port von 2001 auf 2000 geaendert werden.
#
load tclrpc.so
set cmd [lindex $argv 1]
puts $cmd
xmlrpc http://127.0.0.1:2001/ putParamset [list string [lindex $argv 0]] [list string "MASTER"] [list struct $cmd]
Usage example:

Code: Alles auswählen

var addr;
var stdout;
var stderr;

addr=dom.GetObject("Utility").Address(); 

system.Exec("tclsh /usr/local/setparam_ad.tcl "+addr+" " + "'{ENDTIME_SATURDAY_1 {int 180}} {TEMPERATURE_SATURDAY_1 {string 5.00}} {ENDTIME_SATURDAY_2 {int 360}} {TEMPERATURE_SATURDAY_2 {string 21.00}} {ENDTIME_SATURDAY_3 {int 540}} {TEMPERATURE_SATURDAY_3 {string 5.00}} {ENDTIME_SATURDAY_4 {int 720}} {TEMPERATURE_SATURDAY_4 {string 21.00}} {ENDTIME_SATURDAY_5 {int 900}} {TEMPERATURE_SATURDAY_5 {string 5.00}} {ENDTIME_SATURDAY_6 {int 1080}} {TEMPERATURE_SATURDAY_6 {string 21.00}} {ENDTIME_SATURDAY_7 {int 1260}} {TEMPERATURE_SATURDAY_7 {string 5.00}} {ENDTIME_SATURDAY_8 {int 1440}} {TEMPERATURE_SATURDAY_8 {string 21.00}} {ENDTIME_SUNDAY_1 {int 180}} {TEMPERATURE_SUNDAY_1 {string 5.00}} {ENDTIME_SUNDAY_2 {int 360}} {TEMPERATURE_SUNDAY_2 {string 21.00}} {ENDTIME_SUNDAY_3 {int 540}} {TEMPERATURE_SUNDAY_3 {string 5.00}} {ENDTIME_SUNDAY_4 {int 720}} {TEMPERATURE_SUNDAY_4 {string 21.00}} {ENDTIME_SUNDAY_5 {int 900}} {TEMPERATURE_SUNDAY_5 {string 5.00}} {ENDTIME_SUNDAY_6 {int 1080}} {TEMPERATURE_SUNDAY_6 {string 21.00}} {ENDTIME_SUNDAY_7 {int 1260}} {TEMPERATURE_SUNDAY_7 {string 5.00}} {ENDTIME_SUNDAY_8 {int 1440}} {TEMPERATURE_SUNDAY_8 {string 21.00}} {ENDTIME_MONDAY_1 {int 180}} {TEMPERATURE_MONDAY_1 {string 5.00}} {ENDTIME_MONDAY_2 {int 360}} {TEMPERATURE_MONDAY_2 {string 21.00}} {ENDTIME_MONDAY_3 {int 540}} {TEMPERATURE_MONDAY_3 {string 5.00}} {ENDTIME_MONDAY_4 {int 720}} {TEMPERATURE_MONDAY_4 {string 21.00}} {ENDTIME_MONDAY_5 {int 900}} {TEMPERATURE_MONDAY_5 {string 5.00}} {ENDTIME_MONDAY_6 {int 1080}} {TEMPERATURE_MONDAY_6 {string 21.00}} {ENDTIME_MONDAY_7 {int 1260}} {TEMPERATURE_MONDAY_7 {string 5.00}} {ENDTIME_MONDAY_8 {int 1440}} {TEMPERATURE_MONDAY_8 {string 21.00}} {ENDTIME_TUESDAY_1 {int 180}} {TEMPERATURE_TUESDAY_1 {string 5.00}} {ENDTIME_TUESDAY_2 {int 360}} {TEMPERATURE_TUESDAY_2 {string 21.00}} {ENDTIME_TUESDAY_3 {int 540}} {TEMPERATURE_TUESDAY_3 {string 5.00}} {ENDTIME_TUESDAY_4 {int 720}} {TEMPERATURE_TUESDAY_4 {string 21.00}} {ENDTIME_TUESDAY_5 {int 900}} {TEMPERATURE_TUESDAY_5 {string 5.00}} {ENDTIME_TUESDAY_6 {int 1080}} {TEMPERATURE_TUESDAY_6 {string 21.00}} {ENDTIME_TUESDAY_7 {int 1260}} {TEMPERATURE_TUESDAY_7 {string 5.00}} {ENDTIME_TUESDAY_8 {int 1440}} {TEMPERATURE_TUESDAY_8 {string 21.00}} {ENDTIME_WEDNESDAY_1 {int 180}} {TEMPERATURE_WEDNESDAY_1 {string 5.00}} {ENDTIME_WEDNESDAY_2 {int 360}} {TEMPERATURE_WEDNESDAY_2 {string 21.00}} {ENDTIME_WEDNESDAY_3 {int 540}} {TEMPERATURE_WEDNESDAY_3 {string 5.00}} {ENDTIME_WEDNESDAY_4 {int 720}} {TEMPERATURE_WEDNESDAY_4 {string 21.00}} {ENDTIME_WEDNESDAY_5 {int 900}} {TEMPERATURE_WEDNESDAY_5 {string 5.00}} {ENDTIME_WEDNESDAY_6 {int 1080}} {TEMPERATURE_WEDNESDAY_6 {string 21.00}} {ENDTIME_WEDNESDAY_7 {int 1260}} {TEMPERATURE_WEDNESDAY_7 {string 5.00}} {ENDTIME_WEDNESDAY_8 {int 1440}} {TEMPERATURE_WEDNESDAY_8 {string 21.00}} {ENDTIME_THURSDAY_1 {int 180}} {TEMPERATURE_THURSDAY_1 {string 5.00}} {ENDTIME_THURSDAY_2 {int 360}} {TEMPERATURE_THURSDAY_2 {string 21.00}} {ENDTIME_THURSDAY_3 {int 540}} {TEMPERATURE_THURSDAY_3 {string 5.00}} {ENDTIME_THURSDAY_4 {int 720}} {TEMPERATURE_THURSDAY_4 {string 21.00}} {ENDTIME_THURSDAY_5 {int 900}} {TEMPERATURE_THURSDAY_5 {string 5.00}} {ENDTIME_THURSDAY_6 {int 1080}} {TEMPERATURE_THURSDAY_6 {string 21.00}} {ENDTIME_THURSDAY_7 {int 1260}} {TEMPERATURE_THURSDAY_7 {string 5.00}} {ENDTIME_THURSDAY_8 {int 1440}} {TEMPERATURE_THURSDAY_8 {string 21.00}} {ENDTIME_FRIDAY_1 {int 180}} {TEMPERATURE_FRIDAY_1 {string 5.00}} {ENDTIME_FRIDAY_2 {int 360}} {TEMPERATURE_FRIDAY_2 {string 21.00}} {ENDTIME_FRIDAY_3 {int 540}} {TEMPERATURE_FRIDAY_3 {string 5.00}} {ENDTIME_FRIDAY_4 {int 720}} {TEMPERATURE_FRIDAY_4 {string 21.00}} {ENDTIME_FRIDAY_5 {int 900}} {TEMPERATURE_FRIDAY_5 {string 5.00}} {ENDTIME_FRIDAY_6 {int 1080}} {TEMPERATURE_FRIDAY_6 {string 21.00}} {ENDTIME_FRIDAY_7 {int 1260}} {TEMPERATURE_FRIDAY_7 {string 5.00}} {ENDTIME_FRIDAY_8 {int 1440}} {TEMPERATURE_FRIDAY_8 {string 21.00}}
'",&stdout,&stderr);
Sending all those commands individually was taking around 4 minutes but as a single command gets through under 4 seconds.

Hope this is helpful to some.

Antworten

Zurück zu „HomeMatic - english“