Hallo in die Runde,
hier eine Frage und Überlegungen zur Hausautomation
Vorhanden:
Gas-Heizkessel Viessmann Vitocrossal 300 mit Warmwasserspeicher und Steuerungs-Elektronik Vitotronic 200 KW6B, über Vitoconnect 100 per WLAN mit „ViCare“-App im Internet erreichbar.
Meine Probleme:
Installation der Heizungsanlage im Keller ist sehr ungünstig für WLAN, daher Verbindung unzuverlässig, weil hohe Dämpfung bis zum DSL-Router, WLAN-Frequenzbereich durch Nachbarschaft zeitweilig stark belegt (TV-Streaming...)
Steuerung bzw. Statusabfrage nur per Handy-App möglich, daher abhängig von Verfügbarkeit von Mobilfunk, der Internet-Verbindung und des Viessmann-Servers.
Datenschutz-Problematik (Verschlüsselung? Angreifbarkeit?)
Einbindung in universelle Hausautomation nicht möglich wegen fehlender Dokumentation der Schnittstelle und der Kommunikation (Protokoll, Zeichensatz, Befehlscodes etc.)
Da ich den Installationsort und die WLAN-Situation nicht ändern kann und eine Möglichkeit für eine frei programmierbare Hausautomation suche (incl. Hausüberwachung, Heizungsanlage, Rolladen-Steuerung etc.), habe ich mir als erstes meine Heizungsanlage genauer angesehen. Dabei ergab sich Erstaunliches…
Die Steuerungs-Elektronik ist über ein simples optisches Interface und ein USB-Kabel mit der „Vitoconnect“ verbunden. Also das USB-Kabel stattdessen in meinen Linux-PC gesteckt und die Schnittstelle mit dem „dmesg“-Kommando abgefragt. Wie erwartet entpuppte sich das Interface als simple serielle Schnittstelle, mit einem handelsüblichen Konverter-Chip via USB im Rechner-Betriebssystem emuliert:
[ 7296.441361] usb 3-2: new full-speed USB device number 3 using xhci_hcd
[ 7296.591569] usb 3-2: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
[ 7296.591576] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 7296.591581] usb 3-2: Product: CP2102 USB to UART Bridge Controller
[ 7296.591584] usb 3-2: Manufacturer: Silicon Labs
[ 7296.591587] usb 3-2: SerialNumber: 0001
[ 7296.626652] usbcore: registered new interface driver usbserial_generic
[ 7296.626667] usbserial: USB Serial support registered for generic
[ 7296.630253] usbcore: registered new interface driver cp210x
[ 7296.630269] usbserial: USB Serial support registered for cp210x
[ 7296.630306] cp210x 3-2:1.0: cp210x converter detected
[ 7296.632389] usb 3-2: cp210x converter now attached to ttyUSB0
Damit ist die Heizungsanlage hardwaremäßig via „COM1“ ohne weiteres Zubehör direkt ansprechbar. Das wäre im Prinzip ja durchaus gut – die serielle Schnittstelle ist ein bis heute weit verbreiteter Industriestandard, robust, störsicher, sehr einfach programmierbar und lokal völlig unabhängig vom Internet. Ein pfiffiger Zeitgenosse hat das natürlich längst vor mir entdeckt, die Schnittstellen-Parameter ausgeforscht (4800 baud, 8 bits, even parity, 2 stopbits) und versucht herauszufinden, was darüber denn so transferiert wird:
https://www.koervernet.de/de/hausautomatisierung/17-viessmann-infrarot-schnittstelle
Und da traf mich der Schock – die Heizungs-Steuerung kommuniziert offensichtlich mit hexadezimal codierten Bytes! Hoffen wir nur, dass die „Vitoconnect“ diese Bytes nicht unverschlüsselt via Internet zum Viessmann-Server schickt?
Das erscheint mir im 21. Jahrhundert unfassbar – Messplatz-Automation mit solchen Gerätesteuerungen habe ich dienstlich für die Hochfrequenztechnik schon Anfang der 1980er Jahre mit 8-bit-Prozessoren programmiert und wegen der kryptischen Geräte-Codes **bleep**, bis sie verschrottet wurden. Seitdem sind fast 4 Jahrzehnte vergangen, und wenn die Heizungs-Hardware nicht gut wäre, würde ich jetzt aufgeben…
Aber nun wage ich in dieser Community zu fragen: Gibt es irgendwo eine Liste, mit der man diese Hexcodes lesbaren Befehlen, Daten oder Fehlermeldungen zuordnen kann?
Vielen Dank für etwaige Hinweise, mit besten Grüßen
K.M.
Gelöst! Gehe zu Lösung.
>>Gibt es irgendwo eine Liste, mit der man diese Hexcodes lesbaren Befehlen, Daten oder Fehlermeldungen zuordnen kann?
Hallo,
das ist hier sehr ausführlich dokumentiert.
https://github.com/openv/openv/wiki/vcontrold-mit-Raspberry-Pi
Bsp für eine Umsetzung
http://blog.bubux.de/webseite-zur-darstellung-der-sensordaten/
http://blog.bubux.de/viessmann-heizung-auslesen/
so wie sich das anhört sollte die Umsetzum kein Problem für dich darstellen.
SQL, html un phh Kenntnisse sind hilfreich 🙂
>>Gibt es irgendwo eine Liste, mit der man diese Hexcodes lesbaren Befehlen, Daten oder Fehlermeldungen zuordnen kann?
Hallo,
das ist hier sehr ausführlich dokumentiert.
https://github.com/openv/openv/wiki/vcontrold-mit-Raspberry-Pi
Bsp für eine Umsetzung
http://blog.bubux.de/webseite-zur-darstellung-der-sensordaten/
http://blog.bubux.de/viessmann-heizung-auslesen/
so wie sich das anhört sollte die Umsetzum kein Problem für dich darstellen.
SQL, html un phh Kenntnisse sind hilfreich 🙂
Der Byte-Transfer, die Hexcodes und das „Timing“ sind schon sehr seltsam, sieht alles uralt aus – wer mag sich das mal ausgedacht haben…?
Das ist gut möglich, die Optolinkschnittstelle kam erstmals um 1995.
In den neuen Reglungen wird allerdings eine anderes Protokoll verwendet, das auch verschlüsselt ist. Hat allerdings den Nachteil, dass man dann mit Bastellösungen nicht mehr zugreifen kann.😁
Gruß
Heizing
Benutzer | Anzahl |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |