matze-pe hat geschrieben: ↑26.08.2013, 09:11
Folgende Systemvariabeln habe ich mir angelegt:
Heizoeluebersicht
Heizoelbestand
Heizoelfreiraum
Heizoelprozent
Heizoelpreis
Heizoelgesamtpreis
CCU2:
Filezilla:
https://filezilla-project.org/ -> Ordner/Datei Struktur unter /usr/local/addons/heizoel/ anlegen -> Berechtigung der heizoel.tcl auf 755 setzen
Server: sftp://192.168.X.XX
User:root
Passwort: MuZhlo9n%8!G
Port: 22
http://www.homematic-inside.de/software/cuxdaemon -> Performance schonender Aufruf
CUxD Gerätetyp: System (28) erstellt
Script im Programm:Code: Alles auswählen
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("tclsh /usr/local/addons/heizoel/heizoel.tcl");
Programm:
programm.JPG
heizoel.tclCode: Alles auswählen
load tclrega.so # Heiölwerte Zeichenkette set url http://192.168.x.x/xml # IP-Adresse des Tanksensors, mit der XML Schnittstelle exec /usr/bin/wget -q -O /usr/local/addons/heizoel/heizoel.xml $url set f [open "/usr/local/addons/heizoel/heizoel.xml"] set input [read $f] close $f # Werte aus XML Datei auslesen # ============================= regexp "<tankLevel>(.*?)</tankLevel>" $input dummy tank ; #Bestand in L regexp "<tankPercent>(.*?)</tankPercent>" $input dummy prozent ; #Prozentual # Berechung auf 4 Tanks # ====================== set alletanks [expr {$tank * 4}]; set freiraum [expr {4000-$alletanks}]; # Werte in Variabel schreiben # ============================= set rega_cmd "" append rega_cmd "var w0 = dom.GetObject('Heizoeluebersicht');" append rega_cmd "w0.State('Bestand: $alletanks L ($prozent %)\nFreiraum: $freiraum L');" append rega_cmd "var w1 = dom.GetObject('Heizoelbestand');" append rega_cmd "w1.State('$alletanks');" append rega_cmd "var w2 = dom.GetObject('Heizoelfreiraum');" append rega_cmd "w2.State('$freiraum');" append rega_cmd "var w3 = dom.GetObject('Heizoelprozent');" append rega_cmd "w3.State('$prozent');" rega_script $rega_cmd
Viele Grüße
Matze
Hallo Zusammen,
ich habe die gleiche Ausrüstung wie Matze und habe lt. seiner Anleitung (vielen Dank dafür!) versucht alles außer dem Preis (vorerst) in die lt. Anleitung angelegten Systemvariablen schreiben zu lassen.
Leider werden die Systemvariablen nicht befüllt. Auch nicht, wenn ich das Programm manuell starte/ausführe.
Ich habe die o.g. Systemvariablen (sh. Screenshot) angelegt.
Dann habe ich auf meiner CCU3 die Ordnerstruktur lt. obiger Anleitung angelegt und dem Ordner "heizoel" sowie der Datei "heizoel.tcl" die Berechtigung auf 755 gesetzt (sh. screenshot)
Dann habe ich ein CuxD Gerät, Typ System 28, erstellt und in der CCU3 aus dem Posteingang übernommen.
Dann habe ich in der Datei "heizoel.tcl", die auf der CCU3 im Ordner "heizoel" liegt die IP meiner Tecson-Box eingetragen (sh. screenshot)
Hat jemand eine Idee, woran es liegen könnte, dass meine Sysvariablen nicht befüllt werden? Liegt es vielleicht an der "CuxD-Adresse" meines in CuxD angelegten Gerätes? Oder liegt es evtl. daran, dass die xml meiner Tecson-Box anders aufgebaut ist?
Vielen Dank!