abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 
Beantwortet! Gehe zur Lösung.

Herstellerübergreifende universelle Hausautomation?

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über­wachung, Heizungs­anlage, 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.

1 AKZEPTIERTE LÖSUNG

Akzeptierte Lösungen

>>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 🙂

Lösung in ursprünglichem Beitrag anzeigen

5 ANTWORTEN 5

>>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 🙂

Hallo qwert089,

vielen Dank für die schnelle Antwort!

Die Links waren sehr hilfreich, haben mir sofort wichtige Hinweise zur seriellen Schnittstelle und zu einigen Befehlscodes geliefert. Der Byte-Transfer, die Hexcodes und das „Timing“ sind schon sehr seltsam, sieht alles uralt aus – wer mag sich das mal ausgedacht haben…?
Egal, so etwas kenne ich noch aus dem letzten Jahrhundert, aber als „objektorientiertem Hochsprachen-Programmierer“ sträuben sich schon die Nackenhaare - Industrie-4.0 ist noch Lichtjahre entfernt. Aber die Heizung ist zum Glück ein ziemlich schlichtes Gerät, mit nur wenigen abfragbaren Daten und wenigen Einstellfunktionen (wenn man denn die Codes dafür kennt).
Dank der Hinweise habe ich inzwischen auch ein Konzept, wie ich auf simple Weise meine Heizung zumindest abfragen könnte. Für Versuche mit Einstellungen müsste ich mehr wissen, denn ich gehe nicht davon aus, dass die offensichtlich uralte interne Firmware fehlerhafte oder gefährliche Vorgaben sicher abfängt, wie es heute eigentlich selbstverständlich sein sollte…

Entsprechend meinen Vorkenntnissen hätte ich einen etwas unüblichen Ansatz:
- Der Raspberry scheint die Maschine der Wahl für Dauerlauf vor Ort (stromsparend, internetfähig).
- Alternativ sollte Zugriff via PC mit Windows und Linux möglich sein (z.B. kurze Statusabfragen).
- Nur ein direkt ausführbares Hauptprogramm (Vermeidung von Software-Abhängigkeiten).
- Programmiersprache: Lazarus (Quellcode ist portabel für ARM, PC-Linux oder -Windows oder AppleOS, gut strukturierbar, weitgehend selbstdokumentierend, auch nach längerer Zeit noch verständlich). Mit dem kostenlosen Entwicklungssystem klickt man sich ruckzuck ein hübsches grafisches interaktives „Mäusekino“ zusammen, in das man die gewünschten Funktionen dann hineinbaut. Lazarus erzeugt direkt Maschinencode für das Zielsystem – klein, schnell und vielfach ohne Zusatzsoftware. Eine Webserver-Komponente (und endlos vieles andere) ist da auch im Angebot, habe ich aber noch nicht benutzt...

Die Aufgabe ist ja sehr simpel: Zeichen senden, Antwort empfangen, decodieren und anzeigen.
Der Ansatz: Executable code öffnet Fenster (im userspace, für Nutzer-Interaktion) und startet Parallelprozess für serielle Schnittstelle (erspart daemon im Betriebssystem). Der Parallelprozess wird so hingeschustert (Komponente aus „synaser“), dass er den seltsamen Byte-Transfer erledigt und die kryptischen Bytes in nutzbare Daten konvertiert. Der Nutzer bekommt diese Daten im Fenster angezeigt – das wäre es dann zunächst.
Raspberry oder Linux-PC ermöglichen remote login mit ssh, damit könnte man das Heizungs-Programm übers Internet starten, wobei ssh den sicheren Tunnel für das Fenster und die Interaktion bietet. Damit wäre ohne Webserver o.ä. auch der verschlüsselte Zugriff via Internet möglich...
Übrigens - unter Windows könnte man das „Heizungs-Fenster“ ohne viele Änderungen als DLL compilieren und in der Form z.B. in „LabView“ integrieren – also altes Zeugs für Industrie-4.0...

Nochmals Dank für die Hinweise und beste Grüße
K.M.
Hallo,
in dem Wiki space gibt es auch ein paar Windows Programme zum download
https://github.com/openv/openv/wiki/Windows-Software

Ich greife von unterwegs per VPN auf den Raspberry zu.


VG
Hallo!

Selbsbau oder Kauf des originalen Viessmann-USB-Modul und dann schau bzw. such doch mal unter FHEM und dem Modul VCONTROL300 bei Tante Google.
Da werden Sie geholfen........😎

Gruss
GW1

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

Gruß
Heizing
Top-Lösungsautoren