![Smile :)](./images/smilies/icon_smile.gif)
Danke
![Very Happy :D](./images/smilies/icon_biggrin.gif)
![Very Happy :D](./images/smilies/icon_biggrin.gif)
Moderator: Co-Administratoren
Dafür ein Kochrezept wäre super... das können andere auch brauchen.powerup hat geschrieben:Also wäre es möglich die Tabelle mit einem externen Programm auszulesen in einer Datenbank zu speichern und dann modifiziert wieder reinzuschreiben? Ohne händisch am Thermostat die Aktion zu bestätigen ?
Code: Alles auswählen
#
# Aufruf für ein putParamset (z.B. via system.Exec)
# =================================================
# nach Idee von Oliver Wagner <owagner@vapor.com>
#
# tclsh setparam <addresse> <item> <datentyp> <wert>
# z.B.
# tclsh setparam GEQ004711:2 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
load tclrega.so
set device [lindex $argv 0]
set item [lindex $argv 1]
set datatype [lindex $argv 2]
set val [lindex $argv 3]
set cmd "{$item {$datatype $val}}"
xmlrpc http://127.0.0.1:2001/ putParamset [list string [lindex $argv 0]] [list string "MASTER"] [list struct $cmd]
#
# Abruf Parameter z.B. GEQ004711:2 MASTER
#
set ausgabe [xmlrpc http://127.0.0.1:2001/ getParamset [list string [lindex $argv 0]] [list string "MASTER"] ]
#puts $ausgabe
#
# Aufsplittung Parameter MODE_TEMPERATUR_REGULATOR 0/1/2 [Manu/Auto/Cent]
# setzen der Variablen nach <addresse> und füllen mit Parameter
#
foreach zeile [split $ausgabe \n] {
if [regexp {MODE_TEMPERATUR_REGULATOR [012]} $zeile param] {
set rega_cmd ""
append rega_cmd "var w0 = dom.GetObject('$device');"
append rega_cmd "w0.State('$param');"
rega_script $rega_cmd
};
};
#puts $parameter
#puts $device
#
#
#
Mich interessiert die genaue Integration in aio wie du den Status des Thermostaten umgesetzt hast. Eine SysVar als Werteliste (z.B. Manu, Auto, Cent) kann aio nicht direkt umschalten. Hast du CCU Programme im Hintergrund die über aio initiert werden um den Modus der Thermostaten umzuschalten?Henk hat geschrieben:Das Script gibt den eingestellten Parameter zurück und schreibt ihn in eine Variable.
Code: Alles auswählen
Fault received on xmlrpc call putParamset({"GEQ004711:2","MASTER",[MODE_TEMPERATUR_REGULATOR:1]})
faultCode=-2
faultString=Unknown instance
while executing
"xmlrpc http://127.0.0.1:2001/ putParamset [list string [lindex $argv 0]] [list string "MASTER"] [list struct $cmd]
"
(file "setparam.tcl" line 17)