Aktuelle Informationen und Dokus finden sich im Wiki: http://openv.wikispaces.com/
Die Software wird unter der GPL veroeffentlicht.
Kontakt: M.Thielmann@t-online.de
vcontrold ist ein in C geschriebener Daemon, der die Kommunikation mit der Vito-Steuerung Ÿbernimmt.
Die Konfiguration erfolgt Ÿber XML-Dateien. Der Daemon bietet eine ASCII-Socketschnittstelle, die mit telnet oder dem vclient Programm angespochen werden kann.
Der Quelltext kann im SVN heruntergeladen werden.
svn checkout svn://svn.code.sf.net/p/vcontrold/code/ vcontrold-code
cd vcontrold-code
sh ./auto-build.sh
sh ./configure
make && make install
Es exisitiert ein Makefile fŸr x86 und den NSLU2 unter openwrt (Cross Compiling). Benštigt wird die libxml2.
Die Konfiguration des Programms wird in zwei XML-Dateien vorgenommen: vcontrold.xml : Programmspezifische Definitionen vito.xml: Definition der Kommandos und Devices (hier im SVN)
Aufruf:
vcontrold --help
vcontrold [-x|--xmlfile xml-file] [-d|--device
-x Pfad zur XML Konfigurationsdatei
-d Device, entweder serielles Device oder IP-Adresse:Port bei Zugriff Ÿber ser2net
-l Log-Datei
-p TCP-Port, auf dem das CLI-Interface lauscht
-s Logging in syslog
-n kein fork, fŸr Testzwecke
-g erzeugt mehr debug Ausgaben
-4 Nutze IPv4 (Voreingestellt fŸr RŸckwŠrtskompatibilitŠt)
-6 Nutze IPv6
CLI-Kommandos:
device: Name und ID des konfigurierten Devices
protocol: Name des Protokolls
commands: FŸr das device in der XML-Datei definierte Kommandos
detail
vclient- Client Programm zu Kommunikation mit dem vcontrold.
Aufruf:
vclient --help
usage: vclient -h
-h|--host <IPv4>:<Port> oder <IPv6> des vcontrold
-p|--port <Port> des vcontrold bei IPv6
-c|--command Liste von auszufuehrenden Kommandos, durch Komma getrennt
-f|--commandfile Optional Datei mit Kommandos, pro Zeile ein Kommando
-s|--csvfile Ausgabe des Ergebnisses im CSV Format zur Weiterverarbeitung
-t|--template Template, Variablen werden mit zurueckgelieferten Werten ersetzt.
-o|--output Output, der stdout Output wird in die angegebene Datei geschrieben
-x|--execute Das umgewandelte Template (-t) wird in die angegebene Datei geschrieben und anschliessend ausgefuehrt.
-m|--munin Munin Datalogger kompatibles Format; Einheiten und Details zu Fehler gehen verloren.
-k|--cacti Cacti Datalogger kompatibles Format; Einheiten und Details zu Fehler gehen verloren.
-v|--verbose Verbose Modus zum testen
-4|--inet4 IPv4 wird bevorzugt
-6|--inet6 IPv6 wird bevorzugt. Wird keine dieser Optionen angegben werden die OS default Einstellungen verwendet
--help Gibt diese Benutzungshinweise aus.
Template Modus Im Template Modus (-t) wird ein Template eingelesen und die dort enthaltenen Variablen ersetzt. Die Ausgabe erfolgt dann auf stdout. Damt ist es einfach mšglich, die Messwerte der Heizung auszulesen und direkt in eine Datenbank zu schreiben.
Variable Funktion $1..$n Rueckgabewert gewandelt in Gleitkommazahl $R1..$Rn Rueckgabewert ungewandelt (Text) $C1..$Cn aufgerufenes Kommando $E1..$En Fehlermeldung pro Kommando
Einfaches Beispiel: Datei sql.tmpl
cat sql.tmpl INSERT INTO messwerte values (CURRENT_DATE,$1,$2);
Aufruf:
./vclient -h 127.0.0.1:1234 -t sql.tmpl -c gettempA,gettempWW INSERT INTO messwerte values (CURRENT_DATE,-2.600000,54.299999);
Diese Werte kšnnen nun direkt Ÿber ein DB-cli in die Datenbank geschrieben werden. Die Ausgabe von stderr sollte dafŸr umgeleitet werden:
./vclient -h 127.0.0.1:1234 -t sql.tmpl -c gettempA,gettempWW 2>/dev/null |mysql -D vito
Wir der Schalter -o
Beispiel: $ cat sh-example.tmpl
echo "Das ist ein Beispiel eines ausfuerhbaren Scriptes" echo "Kommando 1: $C1 Kommando 2: $C2" echo "rrdb Update machen wir mit: update $db N:$1:$2"
nun setzen wir noch $db in der Shell: export db='VITODB'
./vclient -h 127.0.0.1:1234 -c getTempA,getTempWW -t sh-example.tmpl -x sh-example.sh Das ist ein Beispiel eines ausfuerhbaren Scriptes Kommando 1: getTempA Kommando 2: getTempWW rrdb Update machen wir mit: update VITODB N:-2.600000:54.299999
XML Konfig: Die Konfiguration des Daemons erfolgt mit XML-Dateien. Programmspezifische Konfigurationen sind in der datei vcontrold.xml angelegt, kommandospezifische Konfigurationen finden sich in der Datei vito.xml. vcontrold.xml inkludiert die Datei vito.xml mittels XInclude.
Die Datei gliedert sich in drei Hauptabschnitte: