abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 

CAN Bus, Home Automation E3 Generation lokal und kostenlos

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 einfachen Daten wie z.B. Warmwasser-Solltemperatur und so auch schon erprobt.

 

- In nicht all zu ferner Zukunft wird es eine einfache Windows Oberfläche zum Setzen der bisher den 'Fachpartnern' mit entsprechendem kostenpflichtigen Account vorbehaltenen Einstellungen wie zum Beispiel den "Energiespareinstellungen" bei den Gasgeräten geben.

 

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!

HerrP_2-1692095743490.png

 

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:

 

HerrP_3-1692095743607.jpeg

 

HerrP_3-1697543763132.png

Vitocal 250 Kältekreisübersicht: View und Installationsanleitung gibt's hier: https://github.com/MyHomeMyData/iob.vis.vitocal250.git

 
Jürgen hat auch noch weitere schöne Sachen abgeleitet.

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

1.023 ANTWORTEN 1.023

ich meine mich zu erinnern dass ja (zumindest auf dem inneren Bus sehen wir sie, war ziemlich am Anfang - länger her). aber das ist noch nicht in MQTT 'verpackt', weil es nicht abgefragt werden muss, sondern einfach abgelesen... Wie weit bist du auf der CAN Ebene 'fit'?

Ich komme beruflich aus der Automotive-Software und arbeite da auch mit CAN, jedoch ziemlich sicher mit komplett anderen CAN-Stacks usw. Aber ich versuch mich gerne daran 🙂

Mich würde das Thema VX3 auch brennend interessieren - (VX3 + Batterie per MQTT zu Loxberry) leider bin ich bzgl. CAN ein kompletter Newbie 😉

Kann hier jemand eine Software für reverse engineering empfehlen - ev. ein Tutorial... würd mich gerne mit dem Thema befassen, da auch ich die Preise Überzogen finde (vor allem, da VI auch die Schnittstellen in der Serviceanleitung bewirbt (TCP/IP).

@HerrP  wie hast Du die Vcal bzw. Vdens ausgelesen? -> sind die CAN-Adressen gleich den Codieradressen? 

Hallo HerrP,

ich würde mich gerne auch am Projekt VX3 beteiligen.

 

Ist bei dem oberem Adapter ( https://www.amazon.de/dp/B07Q812QK8 ) auch schon der D-SUB, 9 Pin Stecker dabei?

 

Bei Amazon finde ich hierzu keine Informationen.

Ich hab ihn gestern mit dem Stecker bekommen - ist also alles dabei, was man braucht 👍

sorry, ich war scheinbar länger nicht hier - hab ich vielleicht nen Tag komplett verschlafen? 😁

 

@MichaelMayer  'unser' Michael wird dich kontaktieren und in's Teams einladen. Besser als hier alles zu verhackstücken. Automotive können wir sehr gut gebrauchen, weil E3 Kommunikation da ne Menge mit zu tun hat!

 

@Thyler21  danke für die Antwort an Martin! die hätte ich garnicht geben können... 😉

- Die 'Datenpunktadressen' sind die (z.B. UDS) Objekt Identifier. Das sind keine CAN COB IDs und auch keine CANopen SDO IDs (falls du das meinst).

- Open3Eclient.py hat eine Scan Option - damit kannst du (bei den Geräten) die (aufgeführten und noch mehr) Identifier auslesen.

- Ich hab grad versucht, dir ein wenig Lektüre per PM zu schicken, aber scheinbar hast du das disabled?

 

soweit. Wir sind weiter an der VX3 'Herausforderung' am arbeiten... auf jeden Fall freut uns euer Interesse! Mehr dann hoffentlich demnächst 😁

 

Grüsse!

Phil

@Hotzen-Plotz  wie sieht's aus bei dir?! läuft's? 🙂

beste Grüsse!

Phil

Hallo,

könnte man über den CAN Bus auch die Warmwasser-Zirkulationspumpe bei Bedarf ein- und ausschalten?

Also so etwas wie die externe Anforderung herbeirufen.

puh, gute Frage. Ich habe auf die Schnelle nicht gefunden, dass eine Fernbedienung vorgesehen ist. Deswegen müsste man dafür wahrscheinlich praktisch die entsprechende Funktion im Inbetriebnahmeassistenten aktivieren und das Statusbit des Steckers 96 überschreiben. Vorgesehen ist auch das bestimmt nicht, ob es trotzdem irgendwie geht, kann ich ehrlich gesagt (noch) nicht sagen, weil wir aktuell noch nicht dazu kommen, uns mit solchen Feinheiten zu beschäftigen.

 

Rein aus Sicht von 'Controllerprogrammierungslogik' halte ich das aber erstmal für ziemlich schwierig, weil sowas ja gewöhnlich so gelöst wird, dass der Status von Stecker 96 zyklisch (wahrscheinlich recht kurze Zyklen) geprüft und auf das entsprechende Bit geschrieben wird. In einem anderen (oder evtl. dem gleichen) Zyklus wird dann entsprechend dem Bit der Ausgang für die Pumpe gesetzt und ein Timer zum wieder Ausschalten gestartet. Ich fürchte, da zwischen zu kommen ist nicht 'einfach', selbst wenn man den Zugriff auf das Bit finden würde. Den Ausgang direkt zu steuern (wenn man wiederum das Bit finden würde und per externem(!) Bus da irgendwie Zugriff drauf möglich wäre) halte ich auch für schwierig, weil er ja von der Steuerung wahrscheinlich zyklisch übergeschrieben wird (irgendwie läuft ja bei so einer Steuerung doch das meiste in Zyklen)...

 

Grüsse!

@HerrP 

ich hätte ebenfalls Interesse an der VX3 Integration (da bei uns verbaut) und könnte auch Testkaninchen spielen, sofern ihr welche braucht. Bin zwar was CAN angeht noch ein unbeschriebenes Blatt, bin allerdings IT‘ler, mit allerhand Freude sich in neue Dinge einzudenken. Hab auch das gesamte KNX Thema in meinem Haus selber gemacht. Homeassistant und Raspi ist alles vorhanden. 

Moin Roman!

Danke für dein Angebot! Mitarbeit kann nur nützen 🙂 Hast du die VX3 'stand alone' oder mit einer VitoCal oder so gekoppelt? Ich glaube, wir sind schon etwas weiter mit der VX3, haben aber bisher nur eine stand alone im 'Rudel', und die andren sind glaubich aktuell mehr mit MQTT hin und her und VitoCal beschäftigt. Ich blick da bald nicht mehr durch 😁  Hast du schon ein CAN Interface?

Grüsse!

Phil

Hallo @HerrP,
bei mir gibt es einen Vitocharge VX3 (8.0A10) mit Energiezähler E380 CA. Daher habe ich ebenfalls großes Interesse an Ihrem Projekt. 🙂
Den CAN-Bus habe ich bei mir mit einem ESP32 (ESPHome) angezapft. Da ich noch nicht weiß, wie ich das Python-Projekt mit dieser Hardware verheiratet bekomme, würde ich die Daten mit der vorhandenen CAN-Integration von ESPHome und Ihren Infos bzgl. Protokoll/Datenpunkten interpretieren. 🤔
Beste Grüße!

Hi Phil,

Ich habe die VX3 auch standalone mit einem E380CA Energymeter. 
Derzeit noch kein Interface im Einsatz, würde mich da aber zeitnah drum kümmern. Für mich ist primär die PV Leistung sowie alle Infos rund um die Batterie am interessantesten, da der Rest schon anderweitig auf meinen KNX Bus gebracht und von dort im Homeassistant angezeigt wird. Könnte mir auch vorstellen mich in dem Zuge dann endlich mal mit Python zu beschäftigen 😂

Moin ihr!

 

ich meine, VX3 stand-alone könnten wir schon mit reden. Der Energiezähler postet zyklisch seine Daten, ich erinnere aber gerade nicht, ob das auch auf dem externen Bus sichtbar ist.

 

@RomanSch  'unser' Michael M. sagte ihr wäret da eh schon im Austausch? vlt kannst du @M_K  ein wenig updaten?! Ich kann ja mit meiner alten Optolink Therme überhaupt nicht mitspielen....

 

Grüsse!

Phil

@RomanSch  wie kommst du zu den KNX Daten? Hast du ein Wago Gateway dran?

@HerrP ich habe einen MDT Energiezähler auf dem KNX Bus (MDT Produkt) aber auch Tibber als Stromanbieter, der mir auch diese Daten in den Homeassistant schickt. 

Hallo. Sehr interessantes Thema. Mich nervt ebenfalls der Zugang über die Cloud. Ich bin ein Freund von lokalen Daten. Ich habe ebenfalls eine VX3 mit Speicher. Ich bin durch meine Arbeit Experte für CAN und CANopen. Habe mit den Tools meiner Firma bereits einen Scan auf dem externen Bus zwischen VX3 und Energiezähler gemacht. Zumindest dort wird definitiv CANopen "gesprochen".
Ich schau mir den Code auf GitHub mal an. Ich bin leider Python unerfahren.

Ich muss mal schauen wie ich dazu komme, aber ich möchte mal ein EDS für die VX3 und den Energiezähler erstellen. Vielleicht kann ich einige Objekte und die Interpretation der Datentypen herausfinden.

Moin @Pollux !

Es ist ein bischen CANopen dabei, das stimmt. NMT, ein paar 'Anmeldedaten' per SDO und je nach Geräten evtl. auch ein paar PDOs. Das meiste ist aber UDS als höhere Protokollschicht auf CAN. Vielleicht hast du ja Lust, in der Open3E Gruppe mitzumachen? VX3 und E380 scheint ein häufige Konfiguration zu sein, und es müsste definitiv da mal jemand zusammenfassend dokumentieren...

Grüsse!

Phil

Hallo Zusammen, ich werde mich auch bald wieder am Thema beteiligen. Unsere Anlage ist immer noch nicht ganz funktionsfähig, die Backupbox geht immer noch nicht. Sobald alles funktioniert gehe ich mit SavvyCan wieder an die Arbeit. Gruß Martin

Moin Martin!

 

Was für einen CAN Analyser man benutzt ist fast egal. Die Filter hören meist beim COB ID auf oder sind nicht flexibel genug. Ich importier meist komplette Dumps in eine Access Datenbank und benutze dann Abfragefilter. Die sind sehr effektiv, spätestens wenn man in SQL formuliert.

 

Das hat aber alles nur Sinn, wenn man das UDS Protokoll bzw. ISO-TP versteht. Und selbst da sind uns manche Sachen nicht klar, weil nicht-standardisierte Service Identifier benutzt werden ($77 taucht dauernd auf). Ein weiteres Problem ist, dass wir ECU Target Adressen von 'Slaves' nur vermuten können, und da gelingen die Standard Services nicht. Aber je mehr Leute dran sind, desto größer ist die Chanche, das wir schnell dahinter kommen... 😉

@M_K  sorry, dein Beitrag war ein bischen untergegangen. Ich hab keine Ahnung von den 'Systemgrenzen' von ESPhome. Läuft das auf diesem kleinen Chip? Oder wird das auf einem 'echten' Rechner installiert und der Chip da dran 'angeschlossen'? Eine Python Integration scheint ja möglich zu sein in dem ESPhome. Ob das dann eine von-hinten-durch-die-Brust-ins-Auge Angelegenheit wäre, blick ich aber nicht 😉

 

Die CAN Daten 'händisch' zu interpretieren und zu generieren dürfte jedenfalls ne Menge Arbeit sein, da Open3E ja auf udsoncan basiert (zumin die CAN Variante, und DoIP ist da sehr nah dran), und sich da ja jemand schon die Arbeit gemacht hat, und man die (relativ) einfach benutzen kann.

 

Grüsse!

Hallo @HerrP !
ESPHome (https://esphome.io/) läuft direkt auf dem ESP32/ESP8266 und kann sehr gut mit HomeAssistant interagieren. Bei mir läuft darauf bereits die Optolink Schnittstelle einer Vitotronic 200 KO1B mittels eines selbst-gebastelten Adapters. Über einen CAN-Bus Controller (MCP2515) konnte ich die CAN-Kommunikation zwischen Vitocharge und E380 CA mitschneiden. Bis auf einen Zeitstempel habe ich davon jedoch (mangels Kenntnissen bzgl. CAN-Standards/CAN-Protokollen) nichts interpretieren können.

Prinzipiell kann man via MicroPython auch Python auf diesen Microcontrollern nutzen, aber ohne ESPHome wäre das für mich nicht nutzbar. Eine Kombination aus beiden kenne ich nicht.

Ich hoffe, dass ich die Daten nach dem Sichten eurer geleisteten Arbeit evtl. selbst auf dem ESP interpretieren kann. Alternativ würde ich versuchen, die Rohdaten an HomeAssistant (Server) zu übertragen und dort die Interpretation zu vollenden. Dort kann man auch Python-Skripte nutzen, womit dies wahrscheinlich die einfachere Lösung darstellen sollte.

Wie du siehst, habe ich noch einige Unklarheiten zu beseitigen. 😅 learning by doing...
Beste Grüße!

Hallo Leute,

Was soll ich sagen,  MEGA Projekt.

 

Ich hätte einen VX3 8.0A5 mit Energiezähler, eine  Vitocol 200s (mit Vitoconet) und eine Vitoair im Angebot  

Falls es was zum Testen gibt, ich bin dabei.

 

Gruß und vielen Dank für eure Arbeit, 

Benjamin 

top! wir melden uns bestimmt früher oder später 😉

Grüsse!

interessantes Thema , bin durch Zufall hier gelandet.

habe eine Viessmann Vitodens 333 F Heizung, der CAN Bus sollte da vorhanden sein.

wäre es möglich mit so einem CAN zu USB Converter auch meine Heizung aus zu lesen?
mache das im Moment mit Openhab und der Viessman Api.

die Viessman Api hat aber sehr oft Probleme, Server nicht zu erreichen, usw.

Ausserdem würde ich meine Daten gerne lokal ohne Cloud abrufen.

das die Sache nicht ganz einfach ist, ist mit bewusst, aber wenn erst mal überhaupt was aus dem Bus kommt, wäre doch ein Anfang gemacht!

mein openhab läuft im Moment auf einem Mini-Pc mit Ubuntu, Server mit Apache, PHP und Python ist alles da drauf.

hab aber auch noch 3 ausgemusterte Raspberry´s, je ein Pi-1, Pi-2 und Pi-3, wo ich einen dafür verwenden könnte!

 

Top-Lösungsautoren