Inhaltsverzeichnis
Viessmann Optolink
Viessmann ist ein Hersteller für Heizgeräte der an seinen Regelsysteme Vitotronic die Status-LEDs zusätzliche als optischen Schnittstelle ausgerüstet hat. Regelungen mit Optolink werden in diversen Modellen verbaut. Gas- und Ölkessel, aber auch Wärmepumpen können auf diesem Weg mit einem PC kommunizieren.
Hardware
OptoLink Adapter gibts fertig zu kaufen oder man bastelt einen an den RaspberryPi.
Test
vcontrold für VItodens 300 installieren, testen und den Adressen der eigenen Steuerung der Heizungsanlage anpassen.
Zum Test anfänglich nur get
Befehle auf Speicheradressen verwenden (z.b. einer ähnlichen Anlagensteuerung) und die Ausgaben mit denen am Bedienfeld auf Konsistenz prüfen.
Dann Parameter am Bedienfeld ändern und nochmals prüfen ob der Inhalt der gelesenen Speicheradresse sich wie erwartet ändert.
vzlogger
Im vzlogger den MeterExec verwenden um die Daten via vclient
von vcontrold
des openv projekts auszulesen. Der Format String mit `$i` muss stets (auch bei nur einem value) verwendet werden.
- vzlogger.conf
... "log" : "/var/log/vzlogger/vzlogger.log", ... "meters": [{ "enabled": true, "allowskip": false, "protocol": "exec", "command": "vclient -h 127.0.0.1:3002 --munin -c 'getTempAged,getTempWWist' "format": "$i $v", // $i MUSS verwendet werden. Broken: Null<>Nil Strings zur Channelzuordnung "interval": 120, "channels": [{ "uuid": " ... uuid für getTempAged ", "identifier":"getTempAged.value", // WIE $i im format String von der munin Ausgabe "middleware": "http://.../middleware.php" },{ "uuid": "... uuid für getTempWWist", "identifier":"getTempWWist.value", "middleware": "http://.../middleware.php" }] }] ...
Systemdienst
Um vcontrold über systemctl zu steuern eine Konfiguration unter /etc/systemd/system/vcontrold.service
anlegen:
- vcontrold.service
[Unit] Description=vcontrold daemon After=syslog.target systemd-udev-settle.service [Service] Type=forking ExecStartPre=/bin/ls /dev/bus/usb/001 ExecStart=/usr/local/sbin/vcontrold -x /etc/vcontrold/vcontrold.xml ExecReload=/bin/kill -HUP $MAINPID Restart=always RestartSec=120 StandardOutput=null [Install] WantedBy=multi-user.target
Es kann nun als Dienst gestartet werden:
sudo systemctl start vcontrold
Start des Dienstes beim Boot hiermit aktivieren:
sudo systemctl enable vcontrold
Da vzlogger erst nach vcrontrold starten sollte ist auch seine Konfig /etc/systemd/system/vzlogger.service
anzupassen:
- vzlogger.service
[Unit] Description=vzlogger After=syslog.target network.target After=mysql.service ntp.service After=vcontrold.service [Service] User=vzlogger ExecStartPre=/bin/ls /dev/bus/usb/001 ExecStart=/usr/local/bin/vzlogger -c /etc/vzlogger.conf ExecReload=/bin/kill -HUP $MAINPID StandardOutput=null [Install] WantedBy=multi-user.target
Weiteres
Zum Steuern der Anlage (setzen von Werten in den Adressen) kann man parallel über bash Scripte die vclient
entsprechend aufrufen.