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, 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!

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

 
Visualisierung der Vitocal Energiematrizen zur monatlichen Energiebilanz für ioBroker:
HerrP_0-1728512769080.png

Wer es ausprobieren möchte: Hier gibt es eine Anleitung.

 

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.675 ANTWORTEN 1.675

@qwert089 Danke für deine Nachricht. Nur was ist die E3-Steuerung und wie erkenne ich dies(e)?.

Danke im Voraus!

 

In.einh. Vitocal 222-S AWBT-E-AC 221.C16

Ausseneinheit 2XX-S 9kW 400V

Vitosoft 300 SID1, Softwareversion 8.0.6.2

Vitoconnet OPTO2

Inbetriebnahme 16.10.2023

Hersteller-Nr.: 7733747204052120

 

Hallo @Jonny_Holly 

 

Ihre WP verfügt über eine Vitotronic 200 WO1C-Regelung. Neuere E3- oder One Base-Regelungen haben keinen Optolink mehr, sondern ein komplett neues Design und ein bereits integriertes Kommunikationsmodul.
Die Bedienungsanleitungen für beide Regelungstypen lege ich bei.

 

VG

also ran an die IR Dioden @Jonny_Holly  😁 den Link hat ja qwert schon gepostet. da sind auch schon so einige Leute mit Wärmepumpe. und den Adapter hast du ja schon vom Opto2 (das kannst du trotzdem weiter benutzen wenn du magst).

Vielleicht hat's schon jemand gepostet, dann sorry, aber ich gerade drueber gestolpert: in den neueren Linux-Kernel wurde ein Patch eingebaut, der prueft, ob ein can-Device die restart-ms-Option ueberhaupt unterstuetzt. Und wenn nicht, dann fuehrt eine Zeile wie "/bin/ip link set can0 type can restart-ms 100" zu der Fehlermeldung "Error: Device doesn't support restart from Bus Off." Da SuSE immer eine Menge patches backported, ist der gerade in meinem Kernel gelandet und meine Scripte wollten nicht mehr. Bei wem das also irgendwann mal passiert, der entfernt einfach die Anweisung zum automatischen restart (denn sie funktioniert ja dann eh nicht :-))

Hallo Gemeinde,

ich verwende den CAN-Bus nun schon über 18 Monate, mit dem gestrigen Debian Update wird der CAN-Bus-USB-Adapter aber nach einem Reboot nicht mehr aktiv gestartet.

Hier mal meine Config

Ich habe die Datei /etc/systemd/network/80-can.network mit dem nachfolgenden Inhalt.

####################################

[Match]
Name=can*

#[Link]
#RequiredForOnline=no

[CAN]
BitRate=250000
RestartSec=100ms

####################################

 

sudo systemctl restart systemd-networkd
(.open3e) christopheradm@CAN-2-USB:~/open3e$ ip -details link show can0
3: can0: <NOARP,ECHO> mtu 16 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 10
link/can promiscuity 0 allmulti 0 minmtu 0 maxmtu 0
can state STOPPED restart-ms 0
bitrate 250000 sample-point 0.875
tq 250 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1 brp 12
gs_usb: tseg1 1..16 tseg2 1..8 sjw 1..4 brp 1..1024 brp_inc 1
clock 48000000 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 tso_max_size 65536 tso_max_segs 65535 gro_max_size 65536 parentbus usb parentdev 1-1:1.0

 

sudo systemctl status systemd-networkd
● systemd-networkd.service - Network Configuration
Loaded: loaded (/lib/systemd/system/systemd-networkd.service; enabled; preset: enabled)
Active: active (running) since Mon 2025-09-08 10:24:26 CEST; 27s ago
TriggeredBy: ● systemd-networkd.socket
Docs: man:systemd-networkd.service(8)
man:org.freedesktop.network1(5)
Main PID: 588 (systemd-network)
Status: "Processing requests..."
Tasks: 1 (limit: 2300)
Memory: 1.5M
CPU: 36ms
CGroup: /system.slice/systemd-networkd.service
└─588 /lib/systemd/systemd-networkd

Sep 08 10:24:26 CAN-2-USB systemd-networkd[588]: ens18: Link UP
Sep 08 10:24:26 CAN-2-USB systemd-networkd[588]: ens18: Gained carrier
Sep 08 10:24:26 CAN-2-USB systemd-networkd[588]: lo: Link UP
Sep 08 10:24:26 CAN-2-USB systemd-networkd[588]: lo: Gained carrier
Sep 08 10:24:26 CAN-2-USB systemd-networkd[588]: ens18: Gained IPv6LL
Sep 08 10:24:26 CAN-2-USB systemd-networkd[588]: Enumeration completed
Sep 08 10:24:26 CAN-2-USB systemd[1]: Started systemd-networkd.service - Network Configuration.
Sep 08 10:24:26 CAN-2-USB systemd-networkd[588]: can0: Configuring with /etc/systemd/network/80-can.network.
Sep 08 10:24:26 CAN-2-USB systemd-networkd[588]: can0: Failed to set CAN interface configurations: Device doesn't support restart from Bus Off. Operation not supported
Sep 08 10:24:26 CAN-2-USB systemd-networkd[588]: can0: Failed

 

 

Wenn ich auf der CLLI den nachfolgenden Befehl absetzte, wird das Interface UP und funktioniert.

 

christopheradm@CAN-2-USB:~$ sudo ip link set up can0
christopheradm@CAN-2-USB:~$ sudo systemctl status systemd-networkd
● systemd-networkd.service - Network Configuration
Loaded: loaded (/lib/systemd/system/systemd-networkd.service; enabled; preset: enabled)
Active: active (running) since Mon 2025-09-08 11:20:34 CEST; 40s ago
TriggeredBy: ● systemd-networkd.socket
Docs: man:systemd-networkd.service(8)
man:org.freedesktop.network1(5)
Main PID: 578 (systemd-network)
Status: "Processing requests..."
Tasks: 1 (limit: 2300)
Memory: 1.5M
CPU: 36ms
CGroup: /system.slice/systemd-networkd.service
└─578 /lib/systemd/systemd-networkd

Sep 08 11:20:34 CAN-2-USB systemd-networkd[578]: lo: Link UP
Sep 08 11:20:34 CAN-2-USB systemd-networkd[578]: lo: Gained carrier
Sep 08 11:20:34 CAN-2-USB systemd-networkd[578]: ens18: Gained IPv6LL
Sep 08 11:20:34 CAN-2-USB systemd-networkd[578]: Enumeration completed
Sep 08 11:20:34 CAN-2-USB systemd[1]: Started systemd-networkd.service - Network Configuration.
Sep 08 11:20:34 CAN-2-USB systemd-networkd[578]: can0: Configuring with /etc/systemd/network/80-can.network.
Sep 08 11:20:34 CAN-2-USB systemd-networkd[578]: can0: Failed to set CAN interface configurations: Device doesn't support restart from Bus Off. Operation not supported
Sep 08 11:20:34 CAN-2-USB systemd-networkd[578]: can0: Failed
Sep 08 11:21:11 CAN-2-USB systemd-networkd[578]: can0: Link UP
Sep 08 11:21:11 CAN-2-USB systemd-networkd[578]: can0: Gained carrier

 

Hat hier einer eine Idee, wie ich dies gelöst bekomme?

 

Danke für die Unterstützung.

Lieben Gruß Christopher


Lieben Gruß Christopher mit Vitocal 251.A13 / Softwarestand 2323 / Herstellungsjahr 2023

Hi

 

nachdem mir mein Heizungsbauer mitgeteilt hat, dass er am 18.09. meine Vitocal 250 a10 auf 2509 geupdated hat, wollte ich beobachten, ob Veränderungen beim Betrieb der Wärmepumpe festzustellen sind.

 

Ich greife seit Februar 2025 Daten von der Bus Schnittstelle mittels usb2can Adapter ab und übertrage sie mittels raspberry und e3oncan in den iobroker, wo sie teilweise mittels flot visualisiert werden.

 

Seit dem Update bzw. seit dem letzten Statusänderungen vor dem Update (letzte Warmwasserbereitung davor erfolgte am 16.09., Heizung bis heute noch aus) scheinen die Daten nicht mehr zuverlässig übertragen zu werden.

 

Hier ein Flot Screenshot der letzten Tage und dazu ein Screenshot aus der vicare App. Im Flot wird die Warmwasserbereitung vom 19.09. und der "Testbetrieb des Heizkreises" von heute 21.09. nicht angezeigt.

Screenshot 2025-09-21 182239.png Screenshot 2025-09-21 182933.png

 

Auch bei Betrachtung der "live Werte" im iobroker unter Objekte/e3oncan/json/2346 CompressorSpeedPercent zeigte immer nur den Wert "0". Obwohl der Kompressor lief.

 

Hat einer eine Idee, was hier falsch läuft? Hat das vielleicht nichts mit dem Update zu tun, sondern ein ganz anderes Problem mit dem Adapter, dem raspberry oder iobroker? 

Einen Tipp was ich kontrollieren könnte?

 

Viele Grüße

Tobias

Hallo zusammen,

meine Installation läuft inzwischen, und ich kann bereits verschiedene Werte der Wärmepumpe auslesen, das funktioniert bislang sehr zuverlässig.

Vielen Dank an open3E!


Meine Frage: Kann ich auch Werte schreiben, also aktiv ändern?
Konkret geht es mir um:

  • Vorlauftemperatur Warmwasser (WW)

  • Vorlauftemperatur Heizung (Heizen/Kühlen)

  • Umschalten der Betriebsart (WW / Heizen / Kühlen)

  • Betrieb ausschließlich mit dem Durchlauferhitzer der WP (nur Heizen bzw. nur WW)

Ich hätte erwartet, dass Viessmann hierfür eine Möglichkeit anbietet, aber IoT kennen die nicht.

Das Schreiben ist grundsätzlich möglich. Hier hilft wohl nur: einfach ausprobieren.

 

Hintergrund ..

 

Einige Datenpunkte können nur über den internen CAN-Bus geschrieben werden, einige sind verschlüsselt und mithin (noch) nicht zugänglich.

hallo @mike4534 !

 

Die Vorlauftemperatur ist read-only. Der Sollwert für die VL Temp wird von der Steuerung berechnet aus diversen Faktoren wie Heizkennlinie, Betriebsmodus, WW Anforderung und Überhöhung dabei, ... Die bedingenden Parameter lassen sich normalerweise mit open3e schreiben. Bei Gasthermen gibt es einen "Konstant-Temperatur Betrieb", da kann man das VL Temp Soll einstellen, ich weiss aber nicht, ob es sowas auch bei WPs gibt. 

 

Die Betriebsart kannst du definitiv schreiben.

 

Betrieb ausschließlich mit Durchlauferhitzer bin ich mir jetzt grad nicht sicher, ob das technisch überhaupt von Viessmann vorgesehen ist, aber vielleicht wissen da andre WP Betreiber was zu (ich hab nur ne Optolink Gastherme...)

 

Grüsse! 


@HerrP  schrieb:

 

.. Bei Gasthermen gibt es einen "Konstant-Temperatur Betrieb", da kann man das VL Temp Soll einstellen, ich weiss aber nicht, ob es sowas auch bei WPs gibt. 

 

Die Betriebsart kannst du definitiv schreiben.


Wir haben eine Wärmepumpe. Wir können die Betriebsart nur über den internen CAN-Bus steuern, ansonsten müssen wir dies über das Display an der Wärmepumpe vornehmen.

 

Allerdings scheint das Ganze so gut wir überhaupt nicht zu funktionieren. Hier kannst du meine traurigen Erfahrungen mit dem Zeug (ökonomisch, alternativ, ..) nachlesen.

ok, danke für den Hinweis mit Betriebsart und internem Bus (den kann open3e ja).

 

dass was in der Viessmann Software nicht funktioniert ist ja leider kein Einzelfall, und da ist auch open3e dann ziemlich machtlos...  

 

 

Eigentlich möchte ich keine Regelung der WP.
Mir ist die Außentemperatur egal, Heizkennlinen oder oder

Ich gebe die Zieltemp. vor und die WP soll dann z.B. das Heizungswasser auf 30 Grad fahren.
Fertig. 

Aber ich sehe das wird nicht einfach etwas werden 😞

Frage micht ob ich die Sollttemp. vorgeben kann.
Dann greife ich in die Regelung ja nicht ein.

 

 

  • Solltemp. Warmwasser (WW)
  • Solltemp. Heizung (Heizen/Kühlen)

  • Umschalten der Betriebsart (WW / Heizen / Kühlen)

  • Betrieb ausschließlich mit dem Durchlauferhitzer der WP (nur Heizen bzw. nur WW)


Das würde auch völlig reichen.

Hallo,

 

>>Solltemp. Heizung

du könntest eine sehr hohe Heizkurve einstellen und dann die Kodierung für die Begrenzung der VL Temp verändern.

 

>>Betrieb ausschließlich mit dem Durchlauferhitzer der WP (nur Heizen bzw. nur WW)

den Notbetrieb kann man so viel ich weis über den CAN Bus aktivieren

 

@mike4534  die Solltemperatur des WW kannst du natürlich einfach vorgeben. Du hattest oben aber von der Vorlauftemperatur Warmwasser gesprochen. Die kannst du nur "indirekt" vorgeben weil die sich gewöhnlich aus WW Soll und Überhöhung bei WW Bereitung ergibt (bei Gasthermen, ich denke bei WP auch).

 

Vorlauf-Soll Temp beim Heizen (/Kühlen) wird eben ständig von der Regelung ge/überschrieben, das kannst du glaubbich nicht verhindern (ausser "indirekt" mit irgendwelchen Tricks wie von @qwert089 dargestellt).

 

 

Heute habe ich unsere (Fußboden)Heizung eingeschaltet. Dabei fiel mir auf, dass ich in meiner Visualisierung in ioBroker noch gar keine Option hierzu erstellt habe. Ich machte mich daher auf die Suche, dies zu realisieren. Ich fand im Adapter folgendes Register ..

 

galegro_0-1758792277503.png


.. in dem als Werte gemäß der Dokumentation ..

 

dhwNur Trinkwasserbereitung (Sommerbetrieb)
dhwAndHeatingHeizung und Trinkwasserbereitung
forcedNormalKomfortmodus (normale Heizung)
forcedReducedAbsenkmodus (reduzierte Temperatur, z.B. Nacht)
standbyFrostschutz/Standby, keine aktive Heizung


.. stehen sollten. Dem ist jedoch mitnichten so.

 

Bin ich auf dem Holzweg? Wie kann man den Heizbetrieb ein-/ausschalten?

@galegro bei meiner Vitocal 250A schalte ich die verschiedenen Heizkreise über DID 1415 (Mischer 1), 1416 (Mischer 2),... ein. 

Die entsprechenden Werte habe ich erst vor kurzem in einem Post auf Github aufgelistet: https://github.com/open3e/open3e/discussions/54#discussioncomment-14305413

 

Diese Liste ist vermutlich nicht vollständig, sollte dich aber vielleicht weiterbringen. 

Das ruft dann exakt das Verhalten hervor, wie wenn du in App oder am Bediendisplay den jeweiligen Heizkreis aktivierst.

 

Sofern du auch kühlen kannst mit separatem Kühlpuffer, muss auch noch in DID 3070 der passende Puffermodus gesetzt werden. 

Vielen Dank für deine Hinweise..


So sieht das Ganz im Adapter von ioBroker bei mir aus ..

 

galegro_0-1758797363994.png

 

 

Wenn ich das richtig sehe, müsste dort jedoch „2“ stehen, da ich den sog. normale Heizbetrieb aktiviert habe. Auch in den anderen „Mischern“ fand ich keine sinnvollen Werte. Dort finde ich bloß „0“ und „255“.

 

Ich bin verwirrt.

 

Ich kenne mich mit dem Adapter in ioBroker nicht aus, aber warum sind die Werte zuletzt im Juli 2024 gelesen? Oder was bedeutet die Datumsangabe?

 

Hast du bei dir mehrere Heizkreise oder nur den internen der WP? Wenn ich es richtig verstehe, ich der interne Mischer dann MixerOne. Wenn du eine externe Mischung aus dem Puffer per Divicon Pumpengruppe hast, sollten das dann MixerTwo und folgende sein. 

 

Unter DID 372 und folgende sind die Heizkreisbezeichnungen gelistet. Vielleicht bringt das dir Klarheit, welcher Kreis der richtige ist. 

@galegro Die veralteten Zeitstempel können nach meiner Erfahrung 2 Ursachen haben:

  • Die Datenpunkte wurden entsprechend lange nicht mehr abgerufen => ...cmnd.udsReadByDid die Datenpunkte abfragen.
  • Die angezeigten Daten stammen aus dem Cache des Browser und zeigen nicht den tatsächlichen Zustand der Objekte => Mit <Shift> <Aktualisierungsbutton im Browser> dafür sorgen, dass die Daten vom Server neu geladen werden.

Wenn beides nicht hilft, mal ins Log des ioBrokers schauen.

Vielen Dank für eure Hilfe!

 

Bei mir ist's Register 1416.

 

galegro_0-1758803276464.png

 

Jetzt fehlt mir nur noch das Ganze für auch Warmwasser ein- und auszuschalten. Welche Register sind hierfür verantwortlich?

Meinst Du damit die Betriebsart? Das müsste folgendes sein:

 

Warmwasser aus => 531 DomesticHotWaterOperationState: {"Mode": 0, "State": 0}

Warmwasser ein  => 531 DomesticHotWaterOperationState: {"Mode": 1, "State": 1}

 

Warmwasser Eco => 3029 DomesticHotWaterEfficiencyMode: 0

Warmwasser Komfort => 3029 DomesticHotWaterEfficiencyMode: 2

 

Vielen Dank für deine Unterstützung.

 

Eigentlich suche ich nur nach der Möglichkeit, die in der App bereitgestellten Optionen Komfort, ECO, aus zu setzen.

Bereits bei meiner Suche nach dem oben nachgefragten Schalten der Heizung, fand ich auch dies ..

 

Der Datenpunkt DomesticHotWaterOperationState hat zwei Subwerte: "Mode" und "State". Die möglichen Werte sind wie folgt:

 

Für "Mode":

  • 0: Off (aus)

  • 1: Heating (heizen)

  • 2: Parallel Operation: Heating HotWater (parallel Betrieb: Heizung und Warmwasser)

  • 3: Parallel Operation: Heating Cooling (parallel Betrieb: Heizung und Kühlen)

  • 4: TestMode (Testmodus)

  • 5: Cooling (kühlen)

  • 255: Automatic (automatisch)

Für "State":

  • 0: ShutDown (abgeschaltet)

  • 1: Reduced (reduziert)

  • 2: Normal (normal)

  • 3: Comfort (komfort)

  • 5: Fixed Value (fester Wert)

  • 6: Antifreeze protection (Frostschutz)

  • 7: Energy Save: reduced (Energiesparen reduziert)

  • 8: Energy Save: normal (Energiesparen normal)

  • 9: Energy Save: comfort (Energiesparen komfort)

  • 10: Cooling: normal (Kühlen normal)

  • 11: Cooling: comfort (Kühlen komfort)

  • 12: No request (keine Anforderung)

Wenn ich das richtig sehe, ist dies das erste von dir genannte Register 531. Irgendwie finde ich einfach nicht den nötigen Überblick. Ich bin ob der vielen Werte völlig verwirrt.

Bei mir funktioniert folgendes:

 

Ww ein, Eco, schreibe 531 DomesticHotWaterOperationState: {"Mode": 0, "State": 0} => Ww aus

 

Ww aus, schreibe 531 DomesticHotWaterOperationState: {"Mode": 1, "State": 1} => Ww ein, Eco

 

Ww ein, Eco, schreibe 3029 DomesticHotWaterEfficiencyMode: 2 => Ww ein, Komfort

 

Ww ein, Komfort, schreibe 3029 DomesticHotWaterEfficiencyMode: 0 => Ww ein, Eco

 

Vielleicht geht das auch anders. Aber genau das passiert auch, wenn man die Änderungen per ViCare vornimmt.

Top-Lösungsautoren