hier noch mal mein Beitrag aus 'Internet der Dinge', dem Offenen Brief an Max Viessmann, als neuer Thread - Diskussionen, Fragen etc. bitte hier 🙂
Moin Freunde*!
Da Viessmann zwar ein wunderschöne Schnittstelle (UDS, ISO-TP oder DoIP) eingebaut hat, das aber nur eingeschränkt und für eine 4-stellige Summe (per WAGO Gateway) zur Verfügung stellt, haben wir uns bekanntlich dran gemacht, das selber offen zu legen. 🙂
Stand der Dinge ist:
- Wir haben eine MQTT fähige Lösung zum Anschluss an den externen CAN Bus ("Stecker 91"), die es erlaubt, E3 Geräte (Wärmepumpen, Gasgeräte, (PV Speicher gerade in der Testphase, BSZ brauchen wir noch Kandidaten)) in Home Automation Systeme einzubinden. ioBroker, Home Assistant, Node-RED und so weiter also alles einfach machbar und bei uns schon im dauerhaften Einsatz.
- Das Ganze läuft lokal, also ohne irgendeine Hersteller oder sonstwelche Cloud, ohne Internet! Bei der CAN Bus Kopplung kann die gleichzeitige Verbindung mit dem Viessmann Server zwecks Wahrung der Gewährleistungs- und Garantieansprüche aufrechterhalten bleiben.
Eine Anbindung über den WLAN Access Point ist auch möglich, damit aber keine parallele Viesmann-Server-Verbindung mehr.
und last not least: das Ganze ist natürlich kostenfrei und open source! im Sinne eins besseren Miteinanders 😉
Der laufend aktualisiert werdende Stand der Linux Lösung ist auf
https://github.com/open3e/open3e
verfügbar.
Eine Sammlung von nützlichen Informationen hat @TSG initiert:
https://github.com/open3e/open3e/wiki
beste Grüße!
Phil
zur Beachtung: Der Zugriff auf das Zielgerät mittels dieser durch Viessmann nicht vorgesehenen Lösung zieht möglicherweise den Verlust von Gewährleistungs-/Garantieansprüchen nach sich und kann unter Umständen zu GEFAHREN FÜR LEIBLICHE UNVERSEHRTHEIT ODER SACHWERTE führen! Die Autoren schliessen jegliche Haftung aus.
Beispiele aktueller Home Assistant Integrationen von Wärmepumpen:
Vitocal 250 Kältekreisübersicht: View und Installationsanleitung gibt's hier: https://github.com/MyHomeMyData/iob.vis.vitocal250.git
Einen Adapter für ioBroker:
https://github.com/MyHomeMyData/ioBroker.e3oncan
und noch ein paar andre Sachen, die aber in dem Adapter integriert sind. Schaut einfach mal sein Repo an...
https://github.com/MyHomeMyData
ps. wer uns unterstützen will und kann ist herzlich willkommen!
pps. und wir freuen uns über jedes 'like' (👍) - damit zeigt ihr deutlich, dass ihr eine offene und lokale Kommunikation mit den 'One Base' Geräten eigentlich von Viessmann erwartet
Hallo,
das Thema scheint ja sehr aktuell zu sein! Ich nehme, hoffentlich noch diesen Monat meine Vitocal 250A13 in Betrieb. Ich nutze HomeAssistant sehr intensiv und möchte natürlich die neue Wärmpumpe bestmöglichst einbinden? Ist die Variante über open3e nun die sauberste mit allen Daten oder reicht die Cloud Variante. Insbesondere würde mich natürlich die Garantie interessieren, gibt es doch Erfahrungen bzw. Gründe weshalb das auslesen der Daten über mqtt erlischt?
@pala021 schrieb:Ist die Variante über open3e nun die sauberste mit allen Daten oder reicht die Cloud Variante. Insbesondere würde mich natürlich die Garantie interessieren, gibt es doch Erfahrungen bzw. Gründe weshalb das auslesen der Daten über mqtt erlischt?
Die Daten über CAN-Bus/Open3E abzufragen ist zuverlässiger und preiswerter. In der Cloud hast Du in der kostenlosen Variante ein tägliches, maximales Abfrage-Limit (mit dem man nicht so viele Daten in so feiner Zeitauflösung wie mit Open3E abfragen kann), die Cloud-API kann sich unangekündigt ändern und steht auch hin und wieder nicht zur Verfügung.
Und wenn man an den externen CAN-Bus-Anschluss (und nicht an den internen) geht: Der ist dafür vorgesehen, dass da externe Geräte angeschlossen werden. Dennoch kann Dir hier niemand eine verbindliche Garantie bezüglich der Garantie geben.
@pala021 wenn du HA vorhast, wirf auch mal einen Blick auf https://github.com/MojoOli/open3e-ha ich hab keine Ahnnung von HA, aber es wird gesagt, das macht es einfacher mit den Entitäten und Gedöhns
Liest sich gut danke.
Um eine Can Verbindung komme ich scheinbar nicht rum. Wie ist hierzu der Lösungsansatz? Wie beschrieben mit einem Rasperry? Da meine Anlage komplett neu ist, muss der Techniker zur Inbetriebnahme etwas einstellen? Oder rufe ich die Daten einfach über die Klemme 91 selber ab?
Einfach am EMS abgreifen. Den Endwiderstand entfernen, beim PI 3+ sitzt der auf dem Raspy.
Ich habe ganz frisch aufgebaut und die Teile bestellt:
https://www.ebay.de/itm/157151306855
Gebraucht und guter Verkäufer.
https://www.amazon.de/dp/B07M8SH8TM?ref=ppx_yo2ov_dt_b_fed_asin_title
https://www.amazon.de/dp/B0956NV6CM?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1
Als Kit bestellen.
https://www.amazon.de/dp/B01566WOAG?ref=ppx_yo2ov_dt_b_fed_asin_title
Und schnelle SD Karte, A10 Minimum, ab 32 GB geht bis 1TB.
Für die Anbindung habe ich mich hier dran gehalten, der erste Teil passt universal:
https://crydteam.de/2025/04/27/viessmann-vx3-in-homeassistant/
Viel Erfolg
Hallo und vielen Dank. Gerne würde ich mit dir ein bisschen privat schreiben und mich diesbezüglich austauschen. Die Konstellationen unserer Anlage ist sehr identisch. Würde mich über eine privat Nachricht freuen.
Hi,
Ich habe eine Viessmann Vitocal 250 A und Home Assistant. Da ich es sehr schade finde immer wieder das Kommunikationsmodul restarten zu müssen um Verbrauchsdaten zu erhalten habe ich mir nun den innomaker USB-CAN Wandler plus 3Pin Phoenix Stecker besorgt. CAT5 Kabel habe ich noch. Leider habe ich noch nirgends gesehen, welcher Pin am Interface mit welchem Steckerpin verbunden werden muss. Und wo genau in das Heizungssteuergerät kommt dann der Stecker? Anbei der Schaltplanaufkleber unter dem Gerät sowie eine Möglichkeit...
Viele Grüße
Daniel
moin @Romeleitis !
dein Foto zeigt wohl den Stecker auf dem Schatplan links allerdings 'auf dem Kopf stehend' - der vorhandene Stecker ist wohl der NTC. Entsprechend würdest du da den CAN Adapter an den 1. und 3. Pin von oben (Foto) anschliessen (High und Low nicht vertauschen).
Genau, Du musst auf die andere Seite, also links.
Ground wird nicht mehr angeschlossen.
Vielen Dank schon einmal für die Hilfe zum Kabel. Ist jetzt konfektioniert und angeschlossen.
Bei der Installation kommt es leider beim Befehl
open3e -c can0 -v -r 256
zu einem Fehler :
Configuration file devices.json not found, continuing with generic DID list, ECU 0x680
0x680 256 BusIdentification {"BusAddress": 1, "BusType": {"ID": 2, "Text": "CanInternal"}, "DeviceProperty": {"ID": 31, "Text": "HPMUMASTER"}, "DeviceFunction": {"ID": 2, "Text": "HMUMASTER"}, "SW-Version": "20.516.2532.307", "HW-Version": "2.612.101.4", "VIN": "74714424XXXXXXXX"}
closing 0x680 - bye!
Während des ersten Verbindungstests (candump can0) bekomme ich eine Ausgabe, allerdings nicht wie in der Installationsanweisung immer 8 Werte, sondern unterschiedlich viele :
can0 000 [2] 82 53
can0 701 [1] 05
can0 190 [7] 8C 33 0E 3A 34 00 40
can0 1FF [8] 0C 0C 19 0E 3A 34 00 00
can0 701 [1] 05
can0 000 [2] 82 4B
can0 190 [7] 8C 33 0E 3A 35 00 40
can0 1FF [8] 0C 0C 19 0E 3A 35 00 00
can0 000 [2] 82 62
can0 000 [2] 82 6F
can0 000 [2] 82 50
can0 000 [2] 82 52
can0 000 [2] 82 48
can0 701 [1] 05
can0 190 [7] 8C 33 0E 3A 36 00 40
can0 1FF [8] 0C 0C 19 0E 3A 36 00 00
can0 000 [2] 82 61
can0 000 [2] 82 4A
can0 000 [2] 82 49
can0 000 [2] 82 4E
can0 000 [2] 82 5A
can0 000 [2] 82 4F
can0 000 [2] 82 54
can0 000 [2] 82 70
can0 000 [2] 82 55
can0 000 [2] 82 4D
can0 701 [1] 05
OK, hab es selbst hinbekommen. In der Anleitung fehlt, dass man vor dem Befehl
open3e -c can0 -v -r 256
noch folgende Befehle absetzen muss :
open3e_depictSystem -s
open 3e -cnfg devices.json
Dann mache ich mal weiter mit der Anleitung 🙂
das mit dem fehlenden devices.json ist eher ein Hinweis, weil - cnfg devices.json inzwischen default ist. Es hat den DID 256 ja ausgelesen (mach da mal besser die letzten 7 Ziffern deiner VIN unkenntlich).
Das mit dem depictSystem steht ganz dick im Readme, ziemlich oben
Wahrscheinlich hast du es übersehen, weil es so groß ist... 😉
ein Aufruf open3e -cnfg devices.json ist nicht notwendig, -cnfg ist ein Parameter und der hat wie gesagt schon den default devies.json. open3e -cnfg devices.json bewirkt so garnichts, weil es nichts weiter tut (wie read oder write irgendwas oder listen) als open3e zu starten und ohne irgendeine Aktion wieder zu beenden.
Aber schön dass es läuft! 🙂
Ich hatte diese Anleitung genommen :
Viessmann VX3 in Homeassistant - crydteam
Da diese aber für eine VX3 ist und nicht für eine Vitocal250-A scheitere ich nun schon wieder.
Mit dem prüfen über
sudo systemctl status open3e
erhalte ich nur Fehler :
Dec 12 17:09:20 Raspberry-open3e open3e[49878]: 2025-12-12 17:09:20 [ERROR] UdsClient: [TimeoutException] : Did not receive response in time. Global request timeout time has expired (timeout=3.000 sec)
Dec 12 17:09:24 Raspberry-open3e open3e[49878]: 2025-12-12 17:09:24 [ERROR] UdsClient: [TimeoutException] : Did not receive response in time. Global request timeout time has expired (timeout=3.000 sec)
Dec 12 17:09:29 Raspberry-open3e open3e[49878]: 2025-12-12 17:09:29 [ERROR] UdsClient: [TimeoutException] : Did not receive response in time. Global request timeout time has expired (timeout=3.000 sec)
Dec 12 17:09:33 Raspberry-open3e open3e[49878]: 2025-12-12 17:09:33 [ERROR] UdsClient: [TimeoutException] : Did not receive response in time. Global request timeout time has expired (timeout=3.000 sec)
Dec 12 17:09:37 Raspberry-open3e open3e[49878]: 2025-12-12 17:09:37 [ERROR] UdsClient: [TimeoutException] : Did not receive response in time. Global request timeout time has expired (timeout=3.000 sec)
Dec 12 17:09:41 Raspberry-open3e open3e[49878]: 2025-12-12 17:09:41 [ERROR] UdsClient: [TimeoutException] : Did not receive response in time. Global request timeout time has expired (timeout=3.000 sec)
Dec 12 17:09:46 Raspberry-open3e open3e[49878]: 2025-12-12 17:09:46 [ERROR] UdsClient: [TimeoutException] : Did not receive response in time. Global request timeout time has expired (timeout=3.000 sec)
Dec 12 17:09:50 Raspberry-open3e open3e[49878]: 2025-12-12 17:09:50 [ERROR] UdsClient: [TimeoutException] : Did not receive response in time. Global request timeout time has expired (timeout=3.000 sec)
Dec 12 17:09:54 Raspberry-open3e open3e[49878]: 2025-12-12 17:09:54 [ERROR] UdsClient: [TimeoutException] : Did not receive response in time. Global request timeout time has expired (timeout=3.000 sec)
Dec 12 17:09:59 Raspberry-open3e open3e[49878]: 2025-12-12 17:09:59 [ERROR] UdsClient: [TimeoutException] : Did not receive response in time. Global request timeout time has expired (timeout=3.000 sec).
Die Schritte davor haben funktioniert.
Gibt es eine bessere Anleitung (am Besten passend für die Vitocal 250-A)?
Ich schätze es liegt an den falschen Datenpunkten.
Gibt es eine Übersicht dazu?
Ich habe mir zwar mit open3e_dids2json eine Open3Edatapoints.json angelegt, aber da suche ich mich dumm und dusselig.
Mir würde es fürs erste langen, wenn ich die folgenden Dinge abgreifen könnte :
- Heizung-Stromverbrauch heute
- Stromverbrauch heute
- WW-Stromverbrauch heute
Ich nutzte dies hier:
Aber für ioBroker.
Rest mit Gemini.
https://github.com/open3e/open3e/wiki/030-Installation-und-Inbetriebnahme-von-open3E
> Ich schätze es liegt an den falschen Datenpunkten.
> Gibt es eine Übersicht dazu?
die Datenpunkte (DIDs) stehen in der/den entsprechenden Open3Edatapoints_6xy.py, in deinem Fall wahrscheinlich in der Open3Edatapoints_680.py. Das ist aber etwas 'kryptisch'...
mach doch mal ein open3e --scanall (an der Konsole, vorher den Dienst stoppen!) dann bekommst du alle DIDs, die depictSystem gefunden hat, mit Klartext und Werten. (Du muss es aber (glaubich) in dem Verzeichnis ausführen, wo die Open3Edatapoints_6...py stehen, die depict erzeugt hat.)
du kannst die Ausgabe auch in eine Datei umleiten open3e --scanall >> ausgabe.txt
Eine Übersicht über alle Datenpunkte findet man hier. Am besten man sucht nach Begriffen wie "Power", "Energy", "Temperature", "Pressure", "Percent", "Setpoint", "Matrix" usw. Zu welchem Gerät das jeweils gehört, ergibt sich meist aus dem Kontext, oder man schaut in die im vorigen Post genannten Dateien.
@Romeleitis Du hast keinen Filter gesetzt, also siehst Du alles, was auf dem Bus passiert. In der Anleitung wird auf die relevanten IDs gefiltert.
Ich habe jetzt mal folgende Datenpunkte hinzugenommen :
Ich bräuchte bitte noch eine Anleitung zur Einbindung der Gif Lüfter und des Heizstabes in der Visualisierung. Die Videos und Links passen nicht mehr zur aktuellen Version von iobroker, oder ich sehe es einfach nicht. Ich habe keine Idee wo ich hier ein Alias kreieren kann. Zudem wird mir auch die Prozentangabe beim Volumenstrom mit NaN angezeigt.
Habe aber alle Datenpunkte der Beschreibung eingefügt. Oder hast Du eine vergessen?
Im übrigen bin ich jetzt direkt an die WP gegangen, beim EMS war nicht so gut. Und damit ist meine zuerst gestellte Frage hier im Thread beantwortet, man kann eine Stichanbindung trotz belegten CAN Bus an der WP durchführen, also zwei Geräte an einem Kontakt. Der Abschluss Widerstand am Adapter muss aber entfernt werden wenn man nur lesen möchte, zudem sollte das CAT Kabel höchstens 30cm haben.
Besten Gruß
Beim Prozentwert des Volumenstroms hat ein ".Actual" am Datenpunkt gefehlt, das habe ich in der View jetzt ergänzt. Danke für den Hinweis.
Du kannst das in Deiner View einfach korrigieren, wenn Du auf den Prozentwert klickst und im Abschnitt "Common" bei "switch" bei "0381_CentralHeatingPump" das ".Actual" ergänzt, also zu "0381_CentralHeatingPump.Actual". Dann sollte es direkt funktionieren.
Die Einbindung des Heizstabes ist aus meiner Sicht im Readme korrekt und vollständig beschrieben. Was stimmt da nicht oder fehlt? Bitte konkret beschreiben. Zur Einbindung der Fan-Gifs muss man die Bilddatei an die richtige Stelle hochladen, mehr ist es nicht. Da braucht es kein Alias.
Du schreibst "Der Abschluss Widerstand am Adapter muss aber entfernt werden wenn man nur lesen möchte, zudem sollte das CAT Kabel höchstens 30cm haben."
An einem CAN-Bus sollte an beiden Bus-Ende jeweils ein Abschlusswiderstand angebracht sein. Dadurch werden die korrekten elektrischen Pegel eingestellt und Signal-Reflexionen am den Busenden vermieden. Wenn man einen zusätzlichen Teilnehmer über eine kurze Leitung anschließt, hat man die Bus-Topologie nicht wesentlich verändert und kann die Abschlusswiderstände unverändert lassen. An welcher Stelle am Bus man das tut, sollte eigentlich egal sein. Auf keinen Fall darf man einen dritten Widerstand ergänzen. Ob auf dem Bus gelesen oder geschrieben wird, hat damit aber überhaupt nichts zu tun.
Was meinst Du mit "beim EMS war nicht so gut"?
Laut dieser Beschreibung:
https://github.com/open3e/open3e/wiki/020-Inbetriebnahme-CAN-Adapter-am-Raspberry#e380
Sollte man dort nicht anbinden wegen isoliert. Die Daten könnten clippen?
Dort war ich zuerst und habe den Widerstand im Adapter gesetzt gelassen weil der am EMS entfernt werden musste. Den Rest hatte mir Gemini erklärt 😅.
Ich habe ja ein Systemverbund. Ich weiß aber nicht wo an der WP der Abschluss Widerstand gesetzt ist.
Sollte ich ihn doch wieder an den Adapter setzen?
Und ja, Heizstab ist korrekt beschrieben aber wo bitte erzeuge ich diesen Alias?
In der View, im ioBroker? Ich bin da irgendwie unfähig zu.
Du schreibst die Bilddatei muss an die richtige Stelle hochgeladen werden?
Auch in der View? Oder in den IMG Ordner?
Oder einfach platzieren?
Prozentangabe funktioniert, danke.
Beim Thema Clipping geht es Masse-Drift bei einem potenzialfreier Can-Adapter. Wenn aber E380 und Vitocal verbunden sind, herrscht an beiden Anschlüssen das gleiche Potenzial. Es kann dann der Masse-Anschluss an der Vitocal genutzt werden, sofern der belegt ist. Bei neueren Geräten ist das meines Wissens nicht der Fall. Dann macht es nach meinem Verständnis keinen Unterschied, wo man anschließt. Und mit dem Abschlusswiderstand hat das auch nichts zu tun. Zum Abschlusswiderstand an der Vitocal musst Du in der Anleitung für Dein konkretes Modell nachschauen. Oder den HB fragen.
Alias: Im ioBroker Objektbaum anlegen und nach Anleitung im Readme konfigurieren.
Bild: Im vis-Editor hochladen nach Anleitung im Reame, also nach /vis.0/main/img/
Die Original-Doku zu ioBroker bzgl. alias: https://www.iobroker.net/#de/documentation/basics/alias.md
was den Anschluss des CAN Adapters am Energiezähler anbetrifft gibt es glaubich inzwischen genug praktische Erfahrung, dass es oft auch ohne Masseanbindung ordentlich funktioniert. Vielleicht sollten wir den Absatz etwas entschärfen?
Die Theorie ist immer noch richtig, aber offensichtlich sind die gewöhnlichen Umgebungen meist störungsarm genug, so dass keine dramatische Potentialbeeinflussung passiert weil die 'Symmetrierwiderstände' von dem Transceiver ausreichen.
Okay. Die Bilder sind richtig platziert, also wie es sein sollte, im IMG Ordner.
Trotzdem keine Bewegung in der view. Im Ordner drehen sie sich schön.
Oder muss ich in der view noch etwas aktivieren?
Wie auch immer, an der WP angeschlossen habe ich jetzt zumindest weniger Fehler wegen timeout im iobroker. Ich lass das jetzt alles so wie es hängt und gut.
Danke für die Geduld mit mir, wird bald Zeit für neues Bier 😅.