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.037 ANTWORTEN 1.037

Die Funktion "Sammeln von Daten ..." erfasst nur Daten, die die Viessmann-E3-Geräte von sich aus untereinander austauschen. Vermutlich hast Du nur ein E3-Gerät oder die Geräte sind nicht miteinander vernetzt. Dann kommen da keine Daten. Die Zeitspanne (5 Sekunden) ist die Mindestabstandszeit für das Speichern der Daten. Das ist notwendig, weil bei vernetzen Systemen manche Daten sehr häufig übertragen werden (jede Sekunde oder noch häufiger).

 

Für Deinen Fall (nur ein Gerät) gibt es die Funktion "Anfordern von Daten ...". Hier fragst Du momentan alle 10 Sekunden den Datenpunkt 256 ab. Der sollte auch alle 10 Sekunden aktualisiert werden. Du kannst hier weitere Datenpunkte eintragen, und/oder weitere Zeitpläne mit anderen Wiederholungszeiten anlegen.

Welche Datenpunkte es gibt, kannst Du im Tab "Liste der Datenpunkte" anzeigen lassen. Vielleicht schaust Du auch nochmal ins Readme.

Hat es eigentlich inzwischen irgendwer geschafft, die Adresse 1791 zu programmieren? Ich habe auch einen sehr hohen WW-Temperaturverlust und wollte daher mal das 3-Wege-Ventil von 3 auf 1 setzen, bekomme aber dieselbe 0x22 Fehlermeldung... Hatte vorher ueber die App sowohl Heizung als auch WW ganz ausgeschaltet.

ich glaub die Ruheposition vom 3-Wege-Ventil ist einer der per seed&key geschützten dids. ich warte ja auch immer noch drauf, dass wir das endlich mal angehen, sei es auch nur für spezielle Zwecke / mit speziellem 'Aufwand'. Aber die Ruheposition vom 3-Wege-Ventil ist so ein 'Gegenstand', was wir wirklich ermöglichen sollten...

 

ich selbst kann es leider nicht machen, weil ich bekanntlich kein Zielsystem habe, und für sowas reicht die Simulation nicht. Aber vielleicht findet sich ja doch wer, der von sowas Ahnung und ein Zielsystem hat, und sich mit unseren 'Quellen' da mal dran machen würde?! Unser 'Chef-Ingenieur' beteuert zwar immer, dass er das mal angehen würde, aber irgendwie hat er immer was andres zu tun... 😉

@FrankSteiner72  Bei WW-Temperaturverlust neben der Schwerkraftzirkulation auch andere Ursachen (siehe letzter Beitrag im verlinkten Community-Beitrag) nicht aus dem Blick verlieren 😉.

Ja, diese interessante Ursache konnte ich erfreulicherweise schon ausschliessen 😉 Und jetzt vergleiche ich die Verluste mit und ohne Zirkulationspumpe, mit und ohne zugedrehter Zirkulationsleitung usw. Das kann ich alles testen, aber eine moegliche Schwerkkraftzirkulation zwischen Speicher und Gaskessel wuerde ich halt auch gerne ausschliessen.

Wobei: wenn ich jetzt einfach mal nachts, wo weder WW noch Heizung laufen, die Frostschutzschwelle so hoch setze, dass die Umwaelzpumpe fuer den Heizkreislauf die ganze Zeit laeuft (ohne dass der Brenner angeht) dann muesste doch das 3-Wege-Ventil in dieser Zeit auf Heizkreis statt WW-Kreis stehen, und dann duerfte da doch keine Schwerkraftzirkulation zum WW-Speicher stattfinden koennen, oder denke ich da falsch?

Ja, leider haben wir sowohl eine Schwerkkraftzirkulation in der Zirkulationsleitung als auch bei zwischen Wasserspeicher uns Gaskessel. Das konnte ich durch die minuetliche Aufzeichnung von Pumpenstatus, 3-Wege-Ventilstellung, Vorlauf-Temperatur etc. leider eindeutig belegen 😞

Fuer die WW-Zirkulationsleitung braucht's also eine Schwerkraftbremse, und da wir die 1791-Position nicht schreiben koennen, wohl noch eine zweite zwischen Speicher und Kessel.

Mann, diese daemlichen Viessmaenner. Man sollte die mal dafuer verklagen, dass sie einem den Zugang zu Funktionen verweigern (bzw. Geld dafuer verlangen), die Energie einsparen und daher die Umwelt schonen.

nerv doch mal deinen Installateur dass er die Ruheposition umstellen soll. Der soll Viessmann nerven, vielleicht merken sie dann, dass es sinnvoll wäre, den Parameter zumindest 'normal' freizugeben...

 

Grüsse!

Ja, das werd ich versuchen!

Hallo zusammen,

 
bin neu hier, mit Vitocal 250-A (IDU AWO-E-AC 251.A16), Vitotrans 353, und zunächst bitterer Enttäuschung über die restriktive Konnektivität. Dank open3e (und co) fühle ich mich mit meiner Investition wieder ein wenig versöhnter 🙂 Vielen Dank Euch für diese coolen Projekte und diesen Thread!
Ich nutze jetzt einen Pi Zero 2, mit Bookworm, dem Waveshare RS485 CAN HAT, zwei Stücke Klingeldraht, und es läuft super.
 
Jetzt habe ich aber eine Hardware-Frage, zu CAN GND.
In der "Montage- und Serviceanleitung für die Fachkraft" der Vitocal 250-A (Stand 1/2024 und auch Stand 2/2023), steht unter "Verbindung mit weiteren Viessmann Geräten über CAN-BUS" an mehreren Stellen ausdrücklich "CAN Ground (GND) nicht anschließen!". CAN soll nur 2-adrig genutzt werden.
Auch der Aufkleber (siehe Bild) auf dem Gerät selbst zeigt den ehemaligen "CAN GND" (Pin 2, zwischen CAN H und CAN L) nur noch Hellgrau an.
 
Ich bin CAN-Noob, hab gelesen dass im Prinzip CAN "nur" mit dem Potentialunterschied zwischen H und L arbeitet, möchte es aber für meine Vitocal so sicher wie möglich machen.
Ich denke mir, dass ein Anschluss des nicht-geerdeten (also "floating") Pis nur über zwei Kabel an die Vitocal für diese gefährlich seien könnte, falls zwischen Pi und der Erde der Vitocal mal mehr Spannung sein sollte, als die Bauelemente des CAN-Anschlusses der Vitocal vertragen.
Auch nehme ich an, dass die "weiteren Viessmann Geräte" die in der Service-Anleitung gemeint sind alle selber geerdet sind, und daher kein CAN-GND genutzt werden sollte.
Sollte ich also meinen Pi erden, indem ich sein GND direkt mit der Potentialausgleichtsschiene des Hauses verbinde? Soweit ich gelesen habe macht man das eigentlich mit einem isolierten System nicht (damit nicht im Fehlerfall Spannung von der Erde an den Pi kommt).
Hat da jemand Ideen oder Erkenntnisse zu?
 
Beste Grüße!
VC250A16_CAN.jpg

Moin @WP24 !

 

ich glaube, du liegst mit deinen 'Betrachtungen' schon ganz richtig. Ich hab keine E3, kann deshalb nicht nachmessen, ob (CAN_)Gnd und PE verbunden sind, gehe aber in Anbetracht der Tatsache, dass es an dem Energiezähler überhaupt keine Anschlussmöglichkeit für CAN_Gnd gibt, davon aus.

 

In dem Fall ist es richtig, CAN_Gnd zwischen zwei 'geerdeten' Geräten nicht anzuschliessen, weil man dann eine große Schleife mit mächtig Einstrahlpotential für Störungen bauen würde.

 

Vielleicht tust du mir mal den Gefallen, nachzumessen, ob CAN_Gnd bei den E3 Geräten mit PE verbunden ist...

 

> dass im Prinzip CAN "nur" mit dem Potentialunterschied zwischen H und L arbeitet, 

 

Auch das ist 'im Prinzip' richtig. Da aber der CAN Transceiver Baustein auch eine Spannungsversorgung hat, und beide Teile (pos. und neg.) der Eingangsstufe bezogen auf den Ground dieser Spannungsversorgung 'messen', sind hier Grenzen gesetzt. Ich habe bei einem gängigen Transceiver da was in der Größenordnung von (gut 20 bis max) 40 Volt gelesen (ist unterschiedlich für pos. und neg. 'Kanal').

 

Jenseits dieses Pegels/Offsets 'liest' die Stufe immer 'gesetzt' bzw 'nicht gesetzt' und es ist vorbei mit dem differentiellen Signal.

 

Wenn also die CAN_Gnd's beider verbundenen Geräte mit/per PE verbunden sind, ist es sehr unwahrscheinlich, dass diese 40 Volt erreicht werden, und die differentielle Stufe bügelt recht zuverlässig irgendwelche Störungen aus.

 

Wenn es sich aber um einen voll isolierten Transceiver handelt wie den Innomaker, sieht die Sache anders aus. Bei dem sind sowohl die Signale per Optokoppler isoliert wie auch die Spannungsversorgung (per Übertrager). Es gibt also erstmal überhaupt keine Potentialanbindung, der ganze Transceiver floatet irgendwo rum.

 

Das hat den Vorteil, dass ein Masseunterschied zwischen Laptop/Rechner und deinen teuren Viessmann Geräten keinerlei Schaden anrichten kann, weil kein Strom fliessen kann.

 

Durch irgendwelche (meist kapazitive Kopplung bsw. per Kondensaturen in irgendwelchen Schaltnetzteilen) kann es aber passieren, dass sich ein statisches oder auch höherfreuentes Potential zwischen dem floatenden Transceiver und den Viessmann Geräten einstellt. Dieses Potential kann ohne Probleme so hoch werden, dass die Eingangsstufen des floatenden Transceivers übersteuern und das diffentielle Signal 'im Ar...' ist.

 

Deswegen bindet man da CAN_Gnd des Innomaker Transceivers an das CAN_Gnd des Viessmann Systems an, damit der Innomaker (oder ein anderer voll isolierter Adapter) die Signale immer bezogen auf das Viessmann Potential 'sieht'. Strom fliessen kann dabei aufgrund der Isolierung des Adapter nicht. Ausserdem baut man keine Schleifen mit großen Flächen für einstrahlende Störungen, weil der CAN_Gnd mit im CAN Kabel geführt ist, und nicht wie PE weit davon weg liegt.

 

Wie gesagt - viele Leute 'vergessen', dass auch eine differentielle Eingangsstufe immer einen Massebezug durch die Spannungsversorgung hat.

 

In industriellen Anlagen mit viel Störungspotential wird deswegen oft die Spannungsversorgung wie natürlich auch die Masse mit im CAN Kabel mitgeführt, und so haben alle CAN Transceiver Bus-seitig ein und dasselbe Bezugspotential. Das Bus-Signal (Tx und Rx) wird dann zur Maschinenkomponente/nelektronik über Optokoppler geführt. Damit kann nirgends ein schädlicher Strom fliessen, und einstahlende Störungen wirken gleichermassen auf das Signal wie auf die Spannungsversorgung, und das differentielle Signal ist damit maximal sauber.

 

Ich hoffe, das bringt etwas Licht in deine Gedanken!?

 

Grüsse!

Phil

 

ps. also noch mal explizit: Wenn die CAN_Gnd's der Viessmann Geräte mit PE (oder sonstwie untereinander) verbunden sind, diese nicht mit einem zusätzlichen Gnd Kabel auf der CAN Klemme verbinden (wie auch so empfohlen - Schleifenbildung). Dem voll-isolierten CAN Adapter aber mit einem nahe beim Signal geführten GND busseitig ein Bezugspotential verschaffen (das der Viessmann Geräte).

 

Nicht aber den PI erden! das wäre in zweierlei Hinsicht 'nicht gut': a) Durch die Vollisolierung des Adapters erreichst du damit keinen busseitigen Potentialbezug und b) spannt der weit weg vom Signalweg geführte PE immer ein große Fläche mit großem Störungsempfang auf (und auf PE werden ja oft noch Störungen wie bsw. die vom Wechselrichter abgeführt).

Vermutlich machst du dir unnötige Sorgen.

 

Ich habe zwei USB2CAN-Konverter an meinen Raspberry Pi 4 angeschlossen für den internen und externen CAN-Bus. Zurzeit nutze ich jedoch bloß den externen CAN-Bus.

 

Die Verbindung zwischen dem externen und internen CAN-Bus der Wärmepumpe und den D-SUB-9-Steckern der Konverter habe ich über je ein verdrilltes Adernpaar eines CAT3-Kabels hergestellt. Die Abschirmung des CAT-Kabels habe ich mit den Masseanschlüssen/GND an der Wärmepumpe und den in den D-SUB-9-Steckern der Konverter verbunden. Das war‘s dann auch schon.

das ist ja der eine Aspekt den @WP24 angesprochen hat (Verbindung Viessmann <-> CAN Adapter, das hast du so gemacht wie oben beschrieben / von mir empfohlen, vorausgesetzt es handelt sich um vollisolierte Adapter oder welche zumindest ohne PE Bezug). Der andere Aspekt ist die Verbindung der Viessmann Geräte untereinander, da lese ich dich so, als hättest du nur die Wärmepumpe.

Danke @HerrP und @galegro, das scheint mir alles sehr schlüssig!

Dem isolierten CAN Adapter (Innomaker oder vielleicht sogar CAN HAT) den CAN_Ground der Vitocal zu geben ist sicherlich die beste Strategie.
 
Jetzt stellt sich für mich das "Folgeproblem", dass es an meiner Vitocal Inneneinheit ja keinen deklarierten CAN_Ground für den externen CAN-BUS mehr gibt... Vielleicht ist der "Pin 2" (zwischen CAN H und CAN L im Bild meines obigen Posts) ja gar nicht mehr verdrahtet.
Ich könnte eventuell an den GND des "Stecker 72" (also der CAN-BUS zur Außeneinheit)... Dieser wird genutzt und ist beschrieben, allerdings sollte man die zwei CAN-busse vielleicht lieber schön getrennt lassen). Oder rausfinden, ob der Pin 2 verdrahtet ist.
 
@HerrP, das war ja deine Frage. Gerne versuche ich nachzumessen, ob dieser Pin 2 mit PE verbunden ist.
Bei einem ersten schnellen Versuch habe ich allerdings über 100 mV DC zwischen dem GND des Stecker 72 und dem PE einer nahen Steckdose gemessen -- vielleicht ist das also gar nicht so ganz trivial. Hast du einen Vorschlag, wie man das machen könnte? Vom Netz nehmen und dann Durchgangsprüfer zwischen Pin 2 und PE einer Steckdose?

 

Top-Lösungsautoren