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
Wenn Du im vis-Editor das Widget für den drehenden Fan (basic image) auswählst, wird dann bei "Object ID" die richtige Verknüpfung zum e3oncan-Objekt angezeigt, also "e3oncan.0.vitocal.tree.1775_PrimaryCircuitFanOne" bzw. "e3oncan.0.vitocal.tree.1775_PrimaryCircuitFanTwo"?
Falls die Vitocal in Deinem e3oncan-Objektbaum nicht "vitocal", sondern "HPMUMASTER_0x680" heißt, muss das auch in den Object-IDs so stehen, also z.B. "e3oncan.0.HPMUMASTER_0x680.tree.1775_PrimaryCircuitFanOne"
> zumindest weniger Fehler wegen timeout
wenn du depictSystem gemacht hattest, sollte es diese Fehler überhaupt nicht geben. Wenn ein DID von depict gelesen wurde muss er immer gelesen werden können.
Ja den einen Hinweis mit vitocal ändern hatte ich schon von @D-S-M bekommen.
Hab alles mit vitocal geändert sonst hätte es gar nicht funktioniert.
Diese Hinweise könnte man noch mit ins ReadMe übernehmen?
Die Verknüpfung wird angezeigt, allerdings muss ich auf die Prozent Angabe klicken für den Wert.
Einen drehenden Fan hab ich ja nicht. Ich habe nur die Bilder, Kältekreis an oder aus.
In der json Datei schein die Verknüpfung richtig beschrieben zu sein.
Oder muss da noch an oder aus mit rein? Sollen sich ja nur drehen wenn die Anlage läuft richtig?
Vielleicht funktioniert die gif Darstellung in meiner view einfach nicht.
Verstehe auch nicht warum scheinbar nur bei mir Probleme auftauchen, bei Euch scheint es ja zu funktionieren. Ich habe nichts anderes gemacht wie in der Anleitung beschrieben.
Die Erklärung für die Alias Erstellung ist für mich nicht ausreichend.
Womöglich weil ihr von einem anderen Wissenstand erklärt.
Ich komme da nicht wirklich weiter weil sich für mich die Reiter nicht finden lassen.
Bei manchen Datenpunkten taucht das im iobroker hin und wieder auf?
Bin auch nicht sicher welche Geräte ich zum auslesen anwählen soll, nur den 380 oder beide?
Ja, bzgl. "vitocal" in den Objekt-IDs fehlt ein Hinweis im Readme - dachte, das wäre drin. Werde ich ergänzen.
Zum Fan: Das Gif muss auf "e3oncan.0.vitocal.tree.1775_PrimaryCircuitFanOne" verlinken. Wenn Du auf dem Prozentwert klickst, wählst Du ein anderes Widget aus, das hilft nicht. Auch Dein Auszug aus der View zeigt nicht das relevante Widget.
Das Image-Widget für das Gif ist unsichtbar und wird Aktivieirung sichtbar. Das macht die Auswahl ein wenig tricky. Es geht über das Pull-Down für die Widgets. Dort eines der "basic - Image" Widgets auswählen. Davon gibt es 2 zwei, eben für die drehenden Fans:
Dann schauen, ob der Link stimmt bzw. diesen korrigieren.
Okay probiere ich aus. Eh alles Nebel draußen.
Und zum Alias? Für mich als Laie sieht das erstmal so aus.
Wie soll ich da wissen wo ich was kreiere?
Über das Video? Ist zu alt.
Danke und Gruß
Hast Du die paar Grundlagen-Artikel in der ioBroker Doku gelesen (hatte Dir einen Link gepostet)?
Schau mal 2 Zeilen unterhalb Deiner Markierung, das steht "alias". Genau das ist der Objektbaum für die Alias-Objekte. Da musst Du die Objekte anlegen. Unter "0_userdata" legt alle anderen eigenen Objekte an, aber Alias-Verknüpfungen müssen unter "alias" angelegt werden.
Du hast ein E380 Energy Meter, oder? Dann solltest Du das auswählen. Vermutlich hast Du nicht auch noch ein E3100 Energy Meter. Also macht es keinen Sinn, das auszuwählen.
Welche Datenpunkte es bei welchem Gerät gibt, siehst Du im Objektbaum. Je nach benötigten Datenpunkten musst Du das zugehörige Gerät auswählen und den/die Datenpunkt(e) eintragen.
Also reicht der 380 und dann vitocal, fertig.
Die Lüfter drehen jetzt. Aber vermutlich immer 😅
Also auch wenn die Heizung aus ist.
Hallo, Ich habe es nun auch geschafft Open3E über Raspberry4 in Homeassistant einzubinden. Verwendet zur Integration habe ich hierzu Open3E-HA
Den Kältekreislauf habe ich direkt über ein Bildelement realisiert. Das Umschalten im Bildelement auf den "OFF" Modus muss ich noch rausfinden... ist aber zweitrangig. Wirklich ein Coole Sache wenn man mal halbwegs Schnallt wie man es anstellen muss. Jetzt muss ich mir noch in HA paar Ansichten basteln und rausfinden welche Datenpunkte noch interresant wären... Merci für das Projekt!.. Ich lese hier schon seit einiger Zeit mit und habe viele wichtige Infos für mich gefunden.
Okay... Ich bastel dann mal im Stillen weiter und hoffe ihr könnt mir helfen wenns mal klemmt 🤓
Gruß Steffen
@HerrP was muss ich darunter verstehen:
"depictSystem und DID von depict gelesen wurde.
Ich bekomme immer wieder Timeout UDS timeout on 0x680.355 und UDS timeout on 0x680.321
Muss ich die Abstände zum Abfrage Intervall größer oder kleiner setzen vielleicht?
Danke für eine kurze Erklärung.
Das ist alles schön und gut, aber ich kann da nichts bearbeiten. Die Felder die Du im ReadMe angeführt hast tauchen hier nicht auf. Ich lass es einfach gut sein. So oft geht der Heiz Stab eh nicht an.
Hier in dem anderen Ordner finde ich etwas wo zumindest der Zustand angegeben wird.
Hast Du das Alias-Objekt jetzt wieder vom Typ "device" angelegt???
> was muss ich darunter verstehen:
"depictSystem und DID von depict gelesen wurde.
depictSystem macht nichts anderes als zu versuchen, jeden Datenpunkt (DID) im Bereich von 256 bis 3.500 zu lesen. Auf jeder Steuereinheit (ECU), die auf 256 antwortet. Die Datenpunkte, die gelesen werden konnten, werden gesammelt und in den Open3Edatapoints_6yx.py aufgelistet. 6xy ist dabei die "Adresse" der ECU (genaugenommen die COB-ID (Communication Object Identifier), mit der die ECU auf dem CAN Bus angesprochen werden kann).
Wenn so ein Datenpunkt einmal von depictSystem gelesen werden kann, kann er immer gelesen werden. Zumindestens ist das unsere Erfahrung, wir haben es noch nie anders gesehen oder berichtet bekommen.
> Ich bekomme immer wieder Timeout UDS timeout on 0x680.355 und UDS timeout on 0x680.321
Muss ich die Abstände zum Abfrage Intervall größer oder kleiner setzen vielleicht?
Nein. mit einer Abfragezykluszeit (irgendwo im normalen Rahmen) hat das nichts zu tun.
Was du tun solltest, ist in deiner Open3Edatapoints_680.py nachzuschauen, ob da die DIDs 335 und 321 überhaupt aufgelistet sind.
Wenn sie das sind, sollten wir mal die Ausgabe von
ip -details -statistics link show can0
betrachten. Wenn da keine Auffälligkeiten sind (oder auch dann) schauen wir uns die Ausgabe von
candump -t a can0,680:7FF,690:7FF
an. Etwas länger laufen lassen, auf jeden Fall so lange, bis die Timeouts gekommen sind, und das in eine Datei tun und hier hochladen.
Bist du sicher, dass bei dir nur eine einzige Instanz von open3e läuft? Falls 2 Instanzen gleichzeitig laufen (z.B. einmal als Dienst gestartet und einmal in einer Konsole per command line? oder aus Versehen 2 Dienste eingerichtet?), ist es hochwahrscheinlich, dass da was durcheinander geht und das als Timeouts gemeldet wird.
hallo Steffen @deNobbes ,
danke für das positive Feedback! Sowas freut uns immer!
Jürgen und ich kennen uns mit HA kaum aus, aber es gibt hier ja noch viele andere 😉
Grüsse!
Phil
Ich bin nur mit iobroker unterwegs.
Aber Danke für die Erklärung.
Scheinbar 😅
Ich bin aber im richtigen Ordner?
Welchen Typ wähle ich aus bitte?
Ich bin "nur" Maschinist im Straßenbau, für mich ist das alles kryptisch, auch wenn ich meine PC´s noch selbst zusammenschraube und in etwa verstehe was Befehlszeilen sind.
Danke für Euer Verständnis.
Im richtigen Ordner scheinst Du zu sein. Schau Dir nochmal meinen Post vom 7.12.2025 13:14 an, da steht:
Den "Alias"-Tab gibt es vermutlich nicht, weil Du das Objekt mit Rolle "Device" erzeugt hast. Lösche das Objekt und erzeuge es neu mit Rolle "State" und Typ "Number". Dann sollte ein Tab "Alias" erscheinen.
"für mich ist das alles kryptisch, auch wenn ich meine PC´s noch selbst zusammenschraube und in etwa verstehe was Befehlszeilen sind."
Wir haben alle mal neu mit Linux, Raspi, ioBroker usw. angefangen. Das ist am Anfang mühsam und es braucht viel Zeit. Man muss Dokus und Anleitungen lesen, Dinge ausprobieren und sich erarbeiten. Probleme googeln, usw. Aber daran führt kein Weg vorbei, wenn man verstehen will, was man tut. Viel Erfolg!
Ein Traum...
Ich habe es tatsächlich hin bekommen.
Vermutlich. Ist die Verknüpfung zum Datenpunkt automatisch gesetzt oder muss ich da händisch bei?
Werde direkt mal den Heiz Stab aktiv setzen 😅
Vielen lieben Dank @Juergen-B
kann sein, dass die Frage schon kam, aber wie kann ich alle Datenpunkte auslesen?
Die Beispiel Args ist mir nicht ganz klar, woraus hier sich die --read Punte zusammensetzen. Ich würde gerne wirklich alles erstmal auslesen um mir per MQTT Explorer einen Reim draus machen zu können. Bis jetzt habe ich es nicht wirklich rausbekommen, wie das mit -scanall funktioniert.
Bzw. gibt es hier keine Übersicht mit allen Datenpunkten?
----------
Meine Frage hat sich soweit geklärt, es gibt ein Dokument Serviceanleitung Viessmann One Base, wo alle Parameter erklärt sind. Daraus ergibt sich aber eine andere Frage.
Kann man die Parameter -r in einem Bereich angeben, wie 2000-3000 oder muss man wirklich jeden Datenpunkt einzeln aufführen?
Ich habe 2x die klemm 91 wobei eine werkseitig gerückt ist, so sieht es der Schaltplan auch vor. Schließe ich meine CAT Leitung einfach an den freien 91er an oder nimm ich die belegte Klemme. Die Anlage wird einzeln und nicht im Verbund vetrieben.
vielen Dank 🙏
Dann an den freien wie beschrieben. Abschluss Widerstand am Adapter setzen.
@pala021 in der normalen Serviceanleitung sind bei Weitem nicht alle 'Parameter' erklärt - hast du eine besondere gefunden? Da wäre ich dann stark dran interessiert!
> Kann man die Parameter -r in einem Bereich angeben, wie 2000-3000
nein, das haben wir bisher nicht eingebaut. Gewöhnlich sucht man sich die DIDs raus, die einen interessieren, und die liegen gewöhnlich nicht alle beieinander. Du bist ehrlich gesagt auch der erste, der danach fragt (wobei das vielleicht keine dumme Idee und auch nicht sonderlich schwer umzusetzen ist).
> Bis jetzt habe ich es nicht wirklich rausbekommen, wie das mit -scanall funktioniert.
man schreibt es einfach hin: open3e --scanall
Voraussetzung ist, dass man vorher depictSystem gemacht hat, damit überhaupt bekannt ist, was "all" eigentlich ist.
danke HerrP. Zwischenzeitlich konnte ich mir das mit dem zweiten Teil "scanall" erklären. Das geht nur nicht wenn man --listen in seiner config datei verwendet. Ich wollte das nur einfach mal ausführen um alle Parameter einmalig sehen zu können, dafür habe ich mir dann auf meinen MQTT Server einen "dummy" eingerichtet und per Command
open3e -c can0 -m mqttserver:1883:open3e_TEST -muser mqtt:password -t 30 -a -mfstr {device}_{ecuAddr:03X}_{didNumber:04d}_{didName}
Ich war anfangs der Meinung, dass ich das per Config auch einbauen kann, aber sobald man --listen mit drin hat, nimmt er den -scanall nicht mehr. Die Idee war eigentlich erstmal alle Daten in MQTT zu erfassen und dort dann zu selektieren.