wollte Euch Informieren das man Werte von der CCU oder CUXD auch ohne GetSysvar oder Virtuellen Tasten oder Kanäle an HPCL übermitteln kann,
Was man braucht ist mal das TCL Script von rkhomematic :
Code: Alles auswählen
#!/bin/tclsh
# Kommandozeile:
# 1. Script Pfad und Name unter dem dieses Script gespeichert ist
# 2. Parameter IP Adresse der CCU
# 3. Parameter Kommando
# 4. Paramater Objekt
# Beispiel 1
# /user/local/test.tcl 192.168.178.10 GET TESTOBJEKT
# Beispiel 2
# /user/local/test.tcl 192.168.178.10 SET TESTOBJEKT=1
# Erstellen der XML Struktur
puts "Hier die Kommandoparameter"
puts $argv
set rumpf "<?xml version=\"1.0\"?>\n"
append rumpf "<methodCall>\n"
if {[lindex $argv 1] == "GET" } {
append rumpf "<methodName>getvarbyname</methodName>\n"
append rumpf "<params>\n"
append rumpf "<param><value><i4>1</i4></value></param>\n"
append rumpf "<param><value>[lindex $argv 2]</value></param>\n"
}
if {[lindex $argv 1] == "SET" } {
append rumpf "<methodName>setvarbyname</methodName>\n"
append rumpf "<params>\n"
append rumpf "<param><value>[lindex $argv 2]</value></param>\n"
}
append rumpf "</params>\n"
append rumpf "</methodCall>\n"
set rumpflaenge [string length $rumpf]
set kopf "POST /RPC2 HTTP/1.0\n"
append kopf "Content-Type: text/xml\n"
append kopf "Content-length: $rumpflaenge\n"
set anfrage "$kopf\n$rumpf"
set kanal [socket [lindex $argv 0] 2110]
fconfigure $kanal -translation {lf lf} -buffersize 4096
fconfigure $kanal -blocking off
puts -nonewline $kanal $anfrage
flush $kanal
puts "Hier ist die Anfrage:"
puts $anfrage
# Einlesen der Daten
fileevent $kanal readable ""
set buffer ""
while {1} {
if {[eof $kanal]} {
catch {close $kanal}
break
}
set temp [read $kanal 4096]
if {$temp == ""} {
break
}
append buffer $temp
}
puts "Hier ist die Antwort:"
puts $buffer
close $kanal
um jetzt zb einen Temperaturwert von Cuxd an HPCL zu übermitteln erstellt man ein Programm mit script ausführen auf der cccu.
Das script für einen TMP sensor welcher bei mir zb vom HOMEDUINO kommt sieht dann so aus:
Code: Alles auswählen
var v1 = dom.GetObject("CUxD.CUX1300011:1.TEMPERATURE");
var va = v1.Value();
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("tclsh /usr/local/test.tcl 192.168.123.130 SET LEDSCHRIFT='"#va#"'");
/usr/local/test.tcl ist der Pfad wo ihr die TCL Datei vorher gespeichert habt
192.168.123.130 ist die IP eurer CCU auf der HPCL läuft
LEDSCHRIFT= ist euer HPCL OBJEKT unbedingt GROSS SCHREIBEN
("CUxD.CUX1300011:1.TEMPERATURE"); ist der Sensor von dem der Wert nach HPCL übertragen werden soll
das wars mal zu Zahlenobjekten,das Selbe ist auch mit Texten möglich ...... einfach ein bischen probieren !
Das Schalten von Objekte gestaltet sich einfacher, wieder benötigen wir das TCL Script von rkhomematic
nur sieht der Aufruf per Script dann so aus :
Code: Alles auswählen
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("tclsh /usr/local/test.tcl 192.168.123.130 SET SYLVIAHANDY=1");
SYLVIAHANDY ist das Objekt Achtung Objektnamen verwenden nicht die Bezeichnung in HPCL, 1 ist der Zustand
Dieses funktioniert auch bei den FS20 RSU 0=zu 1=offen 2=viertel 3=halb 4=dreiviertel
hoffe die Beschreibung ist verständlich und kann wer brauchen !!!
mfg
mikewolf