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, mosquitto, 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.
- Aktuell ist nur das Auslesen von Daten weitergehend erprobt. Bei den wichtigen Daten haben wir auch schon die Formate zur Interpretation geklärt, wir arbeiten an einer vollständigen Klärung.
Das Schreiben ist bei vielen Daten auch schon erprobt.
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. Einen guten 'Leitfaden' für den Einstieg hat @Hotzen-Plotz hier zur Verfügung gestellt:
https://github.com/open3e/open3e/discussions/5
Eine Sammlung von nützlichen Informationen hat @TSG initiert:
https://github.com/TheSmartGerman/open3e/wiki
(werden wir bald auch unter das open3e Projekt migrieren)
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
Wer es ausprobieren möchte: Hier gibt es eine Anleitung.
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
Moin zusammen,
ja IT-technisch hab ich ganz gut ausgebaut. Ich komme aus der IT und daher war es für mich nicht akzeptabel irgendwelche halbherzigen Lösungen zu haben. Außerdem war da eine große Portion Spieltrieb bei.
Die Netzwerke zu trennen und mit einer ordentlichen Firewall auszustatten fand ich sehr sinnvoll.
Wenn man mal mitliest was da so alles ohne Management passiert fragt man sich schon wieso man im Internet Passwörter vergibt, wenn zuhause alles tut was es will. 🙂
Bzgl. Can-Bus Adapter kommt auf jeden Fall etwas galvanisch getrenntes. Ich habe zwar alle Systeme vollständig geerdet (will heißen Serverschrank, Switche, Server etc hängen alle am Hauserder und haben natürlich Fein-, Mittel und Grobschutz im Stromnetz des Hauses), aber das schützt ja bekanntlich nicht von Allem.
Den Can Bus Adapter suche ich heute mal bei Amazon, genauso wie die Messköpfe für den Stromzähler.
LG
Torsten
Moin zusammen,
ich hab heute auch mal mit einem Raspi3B und dem CAN USB Adapter meine VX3 "angezapft" und es klappt.
Ich muss allerdings bei jedem Neustart des Raspis den Befehl
sudo ip link set can0 up type can bitrate 250000
absetzen.
Was mir aufgefallen ist : die Werte scheinen zur Ausgabe der GridBox unterschiedlich zu seien.
open3e:
EnergyProductionPhotovoltaic.PhotovoltaicProductionYear
4757,467 kWh
GridBox Jahreswert
4727,8 kWh
open3e:
EnergyProductionPhotovoltaic.PhotovoltaicProductionWeek
46,588 kWh
GridBox Wochenwert
40,7 kWh
woher kommen die Unterschiede ?
Super cooles Projekt!
Ich würde gerne über CAN die „Einmal Warmwasserbereitung“ meines Vitodens starten.
In der Liste der DIDs im Github Repo habe ich es nicht gefunden.
Ist die DID-Liste eigentlich schon vollständig? Wenn nein, wie könnte man geschickt die fehlenden DIDs fürs Write Data By Identifier herausfinden?
Try and Error möchte ich lieber nicht ausprobieren.
Ist noch jemand mit Home Assistant unterwegs, bei Bedarf könnte ich mir mal ansehen, wie man das HA MQTT Autodiscover integrieren könnte.
ich bin schon müde und schon beim zweiten Bierchen, deswegen nur ein paar kurze Sätze... der Reihe nach
@Torsten82 ein Ground-Konzept ist weit mehr als Erden. Alle Grounds betonhart (zero Impedance) an Erde zu binden ist zwar ein Teil einer (es gibt auch andre) Ground Konzept Strategie, aber erstens kannst du real keine Nullimpedanz herstellen und zweitens holst du dir mit sowas gewöhnlich Schleifen rein... Aber das sind andre Sachen, und normalerweise ist gerade CAN da eigentlich ziemlich unempfindlich, wenn man es nicht völlig verkehrt macht.
@petkow ich muss gestehen ich habe keinen Schimmer wo die Gridbox ihre Informationen her holt. Ich vermute allerdings, das hat irgendwas mit der Viessmann Server/Cloud/Rechenzentrums-Welt zu tun, und wird folglich ähnlich 'zuverlässig' und aktuell sein, wie die Vicare oder API Werte. open3e liest die Werte jedenfalls direkt aus den Geräten, und das in dem Moment, wo du es möchtest/einstellst. Wie weit die Werte stimmen, können wir nicht sagen, aber ich nehme stark an, dass die nahe an den Sensoren sind. Aber man muss auch den richtigen Wert betrachten. Es gibt ja auch Eigenverbräuche/verluste und so.
@baehm dieses Bit zum Anschubsen der WW Bereitung versteckt sich bestimmt in irgend einem Datenpunkt. Ich starte das bei meiner Optolink Therme auch ferngesteuert, und es würde mich schon sehr wundern, wenn das bei One Base nicht mehr ginge. Es muss halt nur jemand finden. Früher oder später wird das passieren 😉
Die aktuelle DID Liste (oder gibt's schon wieder neue DPs?) hab ich mal angehängt. 41 gut gefüllte A4 Seiten, bei denen oft ein DID Objekt ganze Datenstrukturen enthält (z.B. Phasen/Strang/Summenwerte oder so oder vergl. auch ".1", ".3" ... in den Manuals) - viel Spass 😁
Grüsse!
ps. natürlich gibt es nicht jeden DID bei jedem Gerät. Und ein Gerät enthält oft mehrere ECUs... Man kann Scans aber unproblematisch laufen lassen wenn man es richtig macht. Wir sind grad dabei, das zu vereinfachen. Wenn das rund ist, stellen wir das auch online.
Es ist wirklich spannend, hier die Diskussion zu verfolgen.
Nochmal ein dickes Danke für das Projekt und eure Zeit.
Mich interessiert, mit der anstehenden Heizsaison, besonders der Zugriff auf die gesperrten "Energiesparfunktionen". Gibt es hier etwas Neues bzw. irgendeinen Ausblick?
@viesmann - Oft erwähnt, aber immer wieder gerne - Diese Optionen nicht zugänglich zu machen ist ein Unding. Selbst die drei Heizungsbauer, die ich an der Hand habe, sparen sich das und bieten nicht an, die Optionen zu setzen.
kopiere dir das openE3 auf einen Windows-PC.
E3 Regelung temporär in den Wifi-AP Modus gesetzt.
Windows PC per Wifi verbunden und schon geht es los...
VG
Das heißt, die Energiesparfunktionen sind drin?
Das wäre der Knaller.
Wie bekommt man Open3E auf den Windows PC installiert?
Aus GitHub das zip-File laden …
Und in einem Verzeichnis entpacken.
Du solltest Python installiert haben … das ist notwendig.
Ich habe es allerdings nur mit dem IP Interface zum Hotspot der 250 getestet.
Für den usb2can Adapter habe ich folgendes gefunden:
https://github.com/INNO-MAKER/usb2can
https://github.com/Dani-W/Python-Interface_InnoMaker_USB2CAN
Vielleicht hilft das …
Danke, Phyton läuft auch mit Open3E, nur komm ich per WLAN nicht auf die Wärmepumpe. Keine Ahnung was ich da machen muss. Bräuchte leider auch hier Unterstützung.
Ich werde wohl auf den raspberry warten müssen, kann jedoch schon den Canbus Adapter verkabeln mit dem Viessmann Stecker.
Das wird noch ein Abenteuer werden mit raspi und Co.
@Awot252 so aktivierst du den Wifi AP in der Vitocal.
Das Software Tool ist in dem Fall nicht Viguide, sondern openE3
Mit diesem AP verbindest du deinen PC.
Dann rufts du die Windowstaste und R auf
tipps "cmd" und dann in dem schwarzen Fenster "ipconig"
Dort siehst du mit welcher Gateway die WiFi Karte verbunden ist.
Irgend etwas IP 192...
Diese Gateway IP ist die IP der Vitocal.
Diese IP must du im Programm verwenden.
Der AP Modus der Vitocal schaltet sich ,so viel ich mich erinnern kann, nach einer Zeit automatisch wieder aus und sie verbindet sich dann wieder mit deinem Wifi und dem Viessmann Backend.
VG
So. Gerade mal mit meiner Vitodens 200-W probiert.
Auslesen funktioniert schon mal sehr gut.
Ich würde jetzt z.B. gern die Option 2855.1 "Zusätzliche (passive) Frostschutzkonfiguration" von 1° auf -9° setzen.
Wie komme ich von den -9 auf die raw data?
Das ist jetzt UDS CAN. Du willst aber mit open3e schreiben, oder? Also den Datenpunt als raw auslesen. du bekommst dann wahrscheinlich 010A00 hex.
2855.1 ist ein 16-Bit Wert und steht ab Byte 1 (0-basierte Zählweise), also 0A 00. Das ist lsb..msb (big-endian) und dann als ZentelGrad. Also 0A 00 -> 0x000A = 10 dez -> 1,0°C.
-9°C -> -90 dez -> 0xFFA6 -> A6 FF (bytes lsb..msb). Die 01 davor ist ja 2855.0 und soll nicht geändert werden.
du schreibst also den RawWert 01A6FF auf DID 2855 und setzt damit 'Parameter' 2855.1 auf -9°C.
alles OHNE GEWÄHR 😉
Grüsse!
ps. ja ja, das ist ja reichlich 'unhandlich', ich weiss. das wird aber auch alles noch besser! aber wir sind nur eine kleine Truppe mit noch weniger Leuten, die wirklich des Python Programmierens mächtig sind und die haben auch noch einen Job und Familie und Haus und Garten und nicht sooo viel Zeit für das Hobbie open3e und es gibt ja auch noch viele Sachen zu klären und ich sag immer "Rom wurde auch nicht an einem Tag gebaut" und "lasst uns erstmal das Fundament fertig machen bevor wir Villen drauf setzen!"... und es ist ja open-source, also wenn es jemand fertig macht (hier speziell müssen die encode Zweige der Codecs (um)geschrieben werden) - gerne mitmachen! 😉
Wow. Das hat geklappt.
Ich suche mal die nächsten "Engiesparparameter", an die man sonst nicht ran kommt.
Und ich versuche die Umwandlung mal nachzuvollziehen. Und werde mich vorm ersten Selbstversuch sicher nochmal rückversichern 😉
vielleicht (bestimmt 😉 ) hilft dir der Anhang dabei, aus dem das Bildchen oben auch ist....
Ich würde sehr gerne helfen und unterstützen, nur habe ich davon überhaupt keine Ahnung.
🤣 das ist schon mal eine gute Vorraussetzung um rauszubekommen, ob es funktioniert 😁
btw... Achtung! das ".1" und so in den Handbüchern bezieht sich auf die Nummer des Elements. das ist nicht unbedingt gleichbedeutend mit der Nummer des Bytes. Wenn vorher länger-bytige Elemente stehen, verschiebt sich das Startbyte entsprechend. Und noch mal Achtung: die Werte aus den Handbüchern (bsw. bei dem Inbetriebnahme-Assistent) sind nicht unbedingt die Werte der Bytes... es gibt eben noch viel zu klären für ein solides Fundament 😉
Ich mag optimistische Menschen 😄
Ich würde mich jetzt an 2426.1 machen.
Die Länge ist hier 6, nicht 3 wie bei 2855. Ich würde jetzt einfach die ersten drei Bytes geändert und den Rest gelassen (ignoriert, da ich nicht weiß, wofür der ist :-P). Ist das korrekt?
Werte ist (ausgelesen):
Dezimal: 1
raw/open3e: 010a00000a00
Werte soll:
Dezimal: -9
raw/open3e: 01A6FF000a00
klingt erstmal als könnte es so sein. der .3 sind wahrscheinlich die letzten 2 Bytes, noch irgend ein 1-Byte Element dazwischen (.2) und vorne wahrscheinlich auch ein 1-Byte (.0). Ich müsste mal schauen, ob ich die andren Elemente auch geklärt bekomme, aber ich würd sagen ein Versuch ist es wert 😉
Uuuund es hat funktioniert. Einfach genial.
Danke! Für das reverse Engineering, die Applikation und den Support hier im Forum.
Hallo,
ich würde gerne ein extra VM auf meinem Proxmox Server für das Auslesen und Steuern meiner 222-S anlegen. Leider bekomme ich kein Kabel mehr zwischen Server und Wärmpumpe gelegt. Funktioniert das Projekt auch mittels Wifi-to-CAN-Adapter ?
Vielen Dank im Voraus
250$ und China Import?!? warum nimmst du nicht einen CAN Adapter + Raspi Zero W (+ ggf. WIFI Antenne)?
dann weisst du zumindest, dass es funktioniert. der Zero macht dann die Arbeit und der Proxmox nur noch die MQTT Sache. und für die Zwischenzeit, in der das MQTT grade noch nicht bi-direktional implementiert ist (der Branch ist grad in der Pipe) gehst du übergangsweise noch mit ssh oder Remote Desktop oder so auf den Raspi 👾
ps. mit dem bi-direktional hab ich was durcheinander gebracht, das heisst nur, dass man dann mit MQTT auch ein Lese-Request schicken kann. das mit dem Schreiben dauert noch ein wenig...
Benutzer | Anzahl |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |