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

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.333 ANTWORTEN 1.333

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?

 

besser als ein Durchgangsprüfer ist die Widerstandsmessung vom Multimeter, da sind die Ströme gewöhnlich kleiner. Am besten auch die PE Klemme an der Vcal nehmen - wir wollen ja nicht den Schutzleiterwidestand in deiner Hausverkabelung wissen... 😉

 

Miss doch auch mal zwischen dem unbeschrifteten Pin 2 und  dem beschrifteten CAN_Gnd von Stecker 72.

 

Es gibt übrigens noch eine andere absolut ungefährliche Möglichkeit herauszufinden, ob deine Verkabelung auch ohne Gnd ok ist:

ip -details -statistics link show can0

Solange da keine Fehler und gedropte Pakete stehen, auch nachdem der CAN Adapter fleissig gesendet hat (bsw. ein readall), ist die Kommunikation ok.

 

Da PE und N wohl über den FI gekoppelt sein dürften, bringt nur eine Widerstandsmessung Klarheit.

Ich habe die Anlage per Sicherungsautomaten vom Netzt getrennt, und dann

- einen Wiederstand von 1.4 bis 9.0 Megaohm zwischen CAN_GND Stecker 72 (interner CAN) und PE Stecker 40 (Stromversorgung der WP-Steuerung) gemessen

OL zwischen "Pin 2" und dem PE, und auch zwischen "Pin 2" und dem CAN_GND Stecker 72.

Ich denke, das spricht dafür, dass dieser "Pin 2" an meiner VC250A-Inneneinheit gar nicht mehr verdrahtet ist.
 
Danke @HerrP für den Hinweis zu den ip statistics! Mir ist noch ein wenig mulmig, den ungeerdeten Pi wieder an diesen CAN zu hängen. Bei meinem ersten Versuch hat das zwar bestens funktioniert (hab es circa einen Tag lang genutzt), aber ich denke mir (ohne Anhaltspunkte) dass der Pi GND beim nächsten mal ja irgendwo anders hin floaten könnte. Dieses "Problem" hätte der Innomaker ja leider genau so. Also vielleicht doch den Pi GND an den CAN_GND des Stecker 72 legen?

ich denke mal selbst wenn das zwei unterschiedliche CAN Busse sein sollten, sind die nicht galvanisch getrennt, also der Gnd des einen wird identisch mit dem Gnd des anderen sein.

 

Aber der CAN HAT ist glaubich nicht isoliert, oder? Solange du nur den PI 'da dran' hast, ist das ok, weil das Stechernetzteil vom PI ist ja wohl galvanisch getrennt gegenüber 'allem'. Wenn am PI aber bsw. noch ein Netzwerkkabel hängt, sollte man zumindest mal messen, ob nicht ein Potential zwischen dem HAT Gnd und dem Viessmann CAN Gnd besteht.

 

Ich mach das immer so, dass ich erstmal mit dem hoch-impedanten Multimeter Spannung messe, und wenn ich das Potential kenne, einen Widerstand parallel zu den Messstrippen / zu dem Messgeräteeingang schalte, bei dem bei dem gemessenen Potential ein paar Milliampere fliessen würden. Meist ist danach das Potential weg, weil es einfach ein statisches war. Wenn auch mit Widerstand noch ein Potentialunterschied (oder auch eine Wechselspannung) da ist, mal vorsichtig (auch erstmal mit Widerstand, diesmal in Reihe) den Strom messen (bzw. per I = U/R berechnen) und beurteilen...   

 

 

Ja genau, das System Pi + CAN-HAT werde ich neben dem CAN nur noch mit dem micro-USB Steckernetzteil (original, natürlich ohne Erdung) verbinden, das sollte also isoliert sein.
 
Danke für die Beschreibung deiner Herangehensweise! So in etwas hatte ich mir das auch vorgestellt.
Ich hab es jetzt probiert.
 
Zunächst mal die Potentialdifferenz zwischen GND des Pis und dem CAN_GND des Stecker 72: das sind tatsächlich 65 V AC. Es ist aber wohl relativ typisch für solche Steckernetzteile, dass das Potentials des GND bis zur Hälfte der 220 V haben kann.
DC ist hier 0.1 V.
 
Bei 1 Megaohm sind es noch 37 V AC, also ein leakage current von 37 microampere.
DC ist weg, das war wohl statisch wie du sagst.
Wenn ich den Widerstand reduziere, stabilisiert sich der AC Strom bei circa 60 microampere.
So bin ich mit einem 37.4 Kiloohm Widerstand bei 2.2 V AC.
Dieser leakage Strom des Pi-Netzteils wird dann wohl auch bei 0 Ohm (direkte Verbindung) permanent zum CAN_GND der Vitocal fliessen.
Ich schätze mal, das ist gar kein Problem (?).
 
Ich hab während dieser Versuche immer wieder ein paar Werte per open3e abgefragt, ohne Probleme, und es ist zu keinen errors von "ip -details -statistics link show can0" gekommen.
Es bleibt die Unsicherheit ob der externe und der interne CAN Bus wirklich den gleichen GND haben. Trotzdem scheint mir das jetzt erst mal eine ganz plausible Lösung zu sein (also PI GND an CAN_GND des Stecker 72 der VC250-A).

 

Die auf diese Weise gemessenen Spannungen sind meines Erachtens nicht belastbar - und das im wahrsten Sinne des Wortes. Gemeint ist damit: Sobald du eine Last anhängst, dürften diese Spannung zusammenbrechen.

 

Wie du ja selbst schreibst: Der Pi ist durch das Netzteil erdfrei, der GND von der Wärmepumpe liegt sicherlich auf Erdpotential (PE) von deinem Haus. Wenn du etwa wie hier beschrieben vorgehst, solltest du nichts falsch machen.

 

Mit einem hast du natürlich recht: Sicherheit ist die Mutter der Porzellankiste.🙂 Dennoch denke ich, dass Du dir unnötig viele Sorgen machst.

Danke @galegro, ich sehe das ja eigentlich auch ganz ähnlich.

Ich bin hier etwas sehr vorsichtig, weil an der Vitocal 250-A Inneneinheit etwas verändert wurde, vor nicht allzu langer Zeit.
Im open3e wiki ist ja das Bild der CAN Anschlussbuchsen inklusive mit GND zu sehen (Aus der Anleitung 10/2021). Bei meinem Modell ist der GND ja nun anscheinend ganz weg (nicht nur auf dem Aufkleber), *und* die Anleitung sagt ausdrücklich ihn nicht zu nutzen. Diese Änderung hat ja bestimmt einen Grund. Vielleicht einfach nur Vermeidung der GND-Schleife, die zwar störend aber für die Hardware wohl kaum gefährlich wäre. Wissen tue ich es nicht, daher bin ich sehr dankbar, das hier mit euch ansprechen zu könnnen!
 
Ich werd in der discussion auf github in ein paar Tagen mal eine Zusammenfassung posten, mit Vorschlag diese neue Situation an der Vitocal 250-A in das open3e-Wiki mit aufzunehmen.

In meiner Installation dient der GND-Anschluss der Wärmepumpe ohnehin nur dazu, die Abschirmung des CAT3-Kabels zu erden. Und das funktioniert ja nachweislich bestens. Das Potential des CAN-Bus ist auch mir unbekannt. Was sollte uns also hindern, die Abschirmung das CAT-Kabels einfach mit dem PE des Hauses zu verbinden?

 

Ich kann mich allerdings nur noch allzu gut an meine Odyssee bei der Konfiguration von e3oncan erinnern. Als ich den USB2CAN-Konverter an meinen Raspberry Pi 4 anschloss, spielte meine Homematic-Installation (genauer: Homematic-IP) verrückt. Am Ende hatte alles rund um den CAN-Bus gar nichts damit zu tun, sondern führte bloß dazu, dass sich der Rasbperry Pi so richtig als Störenfried auszeichnen konnte. Nach wochenlangem Suchen, Testen, Krübeln, .. habe ich schließlich das Funkmodul RPI-RF-MOD mittels der Platine HB-RF-ETH (von Alexander Reinert) übers Netzwerk irgendwo in unserem Haus platziert. Fortan funktionierten Homematic-IP und CAN-Bus ohne Störungen tadellos.

 

Nach diesen schlimmen Erfahrungen bin ich der Ansicht/Überzeugung: Der eigentliche Grund für all die Störungen ist die USB3-Schnittstelle des Raspberry Pi 4.☹️

 

Mein Vorschlag: Einfach mutig das Ganze wie diskutiert verdrahten und die tollen Möglichkeiten von e3oncan genießen.🙂

 

> ... denke ich, dass Du dir unnötig viele Sorgen machst.

 

So gaaanz unberechtigt sind die Gedanken ja nicht. Bei ein paar Microampere wird zwar nix kaputt gehen, aber die gemessenen 65 Volt reichen schon zum Klippen:

 

HerrP_1-1717241994995.png

Da steht jetzt zwar DC, aber im Vergleich zu 250Mbd sind 50Hz schon fast DC.

 

Bei den meisten Transceivern findet man aber eine interne Beschaltung wie diese

 

HerrP_0-1717241791265.png

womit Microampere dann auch 'egalisiert' werden.

 

Trotzdem kann es nie schaden, sich um Ground Gedanken zu machen. 😉

 

Grüsse!

Phil

ps. >> Ich werd in der discussion auf github in ein paar Tagen mal eine Zusammenfassung posten, mit Vorschlag diese neue Situation an der Vitocal 250-A in das open3e-Wiki mit aufzunehmen.

 

Das open3e Wiki ist offen, du (wie jede/r andre auch) ist herzlich eingeladen, da Hilfreiches direkt drin zu posten!

Hallo Zusammen, 

 

ich habe einen PV Anlage mit Vitocharger VX3 und möchte diese mit Home assistant verbinden.

 

ich habe einen raspberry pi 4 aufgesetzt und mit den Can Adapter.

Folgende Anleitungen habe ich verwendet:

https://github.com/open3e/open3e/blob/master/README.md

https://github.com/open3e/open3e/discussions/5

https://github.com/Wolfgang-03/Open3E-HA/blob/main/installation.md#visualisierung-in-home-assistant

https://github.com/open3e/open3e/wiki/090-Homeassistant

 

ich komme nur leider an folgenden Punkt nicht weiter:

ich kann auf dem raspberry pi mit dem Befehl:

open3e -c can0 -dev vx3 -r 1664,1718,1801,1802,1824,1828,1830,1831,1832,1833,1834,1836,1838,1839,1840,2219,1140,2936 -v

mir die Werte des VX3 ausgeben lassen.

 

Da kommt dann das raus:

raspiio@raspiio:~/open3e $ open3e -c can0 -dev vx3 -r 1664,1718,1801,1802,1824,1828,1830,1831,1832,1833,1834,1836,1838,1839,1840,2219,1140,2936 -v

vx3 1664 ElectricalEnergyStorageStateOfCharge 100.0

vx3 1718 ElectricalEnergySystemConfiguration {"Netzbetriebsart": 2, "Elektrische Anlagenkomponenten": 1}

vx3 1801 ElectricalEnergyStorageEnergyTransferStatistic {"BatteryChargeToday": 6460.0, "BatteryChargeWeek": 26513.0, "BatteryChargeMonth": 35130.0, "BatteryChargeYear": 191522.0, "BatteryChargeTotal": 191522.0, "BatteryDischargeToday": 3112.0, "BatteryDischargeWeek": 19638.0, "BatteryDischargeMonth": 32569.0, "BatteryDischargeYear": 178197.0, "BatteryDischargeTotal": 178197.0}

vx3 1802 EnergyProductionPhotovoltaic {"PhotovoltaicProductionToday": 25114.0, "PhotovoltaicProductionWeek": 114458.0, "PhotovoltaicProductionMonth": 133525.0, "PhotovoltaicProductionYear": 788208.0, "PhotovoltaicProductionTotal": 788208.0, "PhotovoltaicProductionToday1": 0.0, "PhotovoltaicProductionWeek1": 0.0, "PhotovoltaicProductionMonth1": 0.0, "PhotovoltaicProductionYear1": 0.0, "PhotovoltaicProductionTotal1": 0.0, "PhotovoltaicProductionToday2": 0.0, "PhotovoltaicProductionWeek2": 0.0, "PhotovoltaicProductionMonth2": 0.0, "PhotovoltaicProductionYear2": 110.0, "PhotovoltaicProductionTotal2": 110.0, "PhotovoltaicProductionToday3": 25114.0, "PhotovoltaicProductionWeek3": 114458.0, "PhotovoltaicProductionMonth3": 133524.0, "PhotovoltaicProductionYear3": 788100.0, "PhotovoltaicProductionTotal3": 788100.0}

vx3 1824 ThreePhaseInverterCurrentPower {"cumulated": 4981.0, "L1": 1660.0, "L2": 1669.0, "L3": 1660.0}

vx3 1828 InverterElectricalEnergyStorageCurrentMaximumlChargePower 0.0

vx3 1830 InverterElectricalEnergyStorageCurrentMaximumlDishargePower 4029.0

vx3 1831 PhotovoltaicCurrentStringPower {"String1": 0.0, "String2": 0.0, "String3": 5037.0}

vx3 1832 PhotovoltaicStringCurrent {"String1": 0.0, "String2": 0.0, "String3": 10.0}

vx3 1833 PhotovoltaicStringVoltage {"String1": 0.0, "String2": 298.772, "String3": 494.545}

vx3 1834 ElectricalEnergyStorageStateOfEnergy {"StateOfEnergy": 9990.0, "Unkown": 0.0}

vx3 1836 ElectricalEnergyStorageCurrentPower 0.0

vx3 1838 ElectricalEnergyStorageVoltage 206.4

vx3 1839 ElectricalEnergyStorageUsableEnergy "10270000"

vx3 1840 ElectricalEnergyStorageUsableNominalEnergy "10270000"

vx3 2219 BatteryCalibration "00"

Traceback (most recent call last):

  File "/home/raspiio/.local/bin/open3e", line 8, in <module>

    sys.exit(main())

             ^^^^^^

  File "/home/raspiio/.local/lib/python3.11/site-packages/open3e/Open3Eclient.py", line 364, in main

    readbydid(addr=ecudid[0], did=ecudid[1], raw=args.raw, msglvl=mlvl)

  File "/home/raspiio/.local/lib/python3.11/site-packages/open3e/Open3Eclient.py", line 220, in readbydid

    value,idstr =  dicEcus[addr].readByDid(did, raw)

                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/raspiio/.local/lib/python3.11/site-packages/open3e/Open3Eclass.py", line 143, in readByDid

    return self.readPure(did)

           ^^^^^^^^^^^^^^^^^^

  File "/home/raspiio/.local/lib/python3.11/site-packages/open3e/Open3Eclass.py", line 161, in readPure

    response = self.uds_client.send_request(

               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/raspiio/.local/lib/python3.11/site-packages/udsoncan/client.py", line 2255, in send_request

    raise NegativeResponseException(response)

udsoncan.exceptions.NegativeResponseException: ReadDataByIdentifier service execution returned a negative response ConditionsNotCorrect (0x22)

 

Das sieht glaub ich schon nicht ganz sauber aus. Aber es zeigt die gewünschten Werte.

Was ich aber nicht hin bekomme, dass dann per mqtt an Home  Assistant zu geben. Könnt ihr mir hier helfen. 

 

so wie ich es Verstehe sollte das der richtige Befehl sein oder? 

raspiio@raspiio:~/open3e $ open3e -c can0 -dev vx3 -r 1664,1718,1801,1802,1824,1828,1830,1831,1832,1833,1834,1836,1838,1839,1840,2219,1140,2936 -t 15 -m 192.168.178.60:1883:open3e -mfstr {didNumber}_{didName} -muser myuser:mypassword

mqtt broker disconnected. reason_code = Unspecified error

Traceback (most recent call last):

  File "/home/raspiio/.local/bin/open3e", line 8, in <module>

    sys.exit(main())

             ^^^^^^

  File "/home/raspiio/.local/lib/python3.11/site-packages/open3e/Open3Eclient.py", line 364, in main

    readbydid(addr=ecudid[0], did=ecudid[1], raw=args.raw, msglvl=mlvl)

  File "/home/raspiio/.local/lib/python3.11/site-packages/open3e/Open3Eclient.py", line 220, in readbydid

    value,idstr =  dicEcus[addr].readByDid(did, raw)

                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/raspiio/.local/lib/python3.11/site-packages/open3e/Open3Eclass.py", line 143, in readByDid

    return self.readPure(did)

           ^^^^^^^^^^^^^^^^^^

  File "/home/raspiio/.local/lib/python3.11/site-packages/open3e/Open3Eclass.py", line 161, in readPure

    response = self.uds_client.send_request(

               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/raspiio/.local/lib/python3.11/site-packages/udsoncan/client.py", line 2255, in send_request

    raise NegativeResponseException(response)

udsoncan.exceptions.NegativeResponseException: ReadDataByIdentifier service execution returned a negative response ConditionsNotCorrect (0x22)

 

in der Home Assistant configuration.yaml hab ich mal folgendes angelegt:

mqtt:
sensor:
unique_id: PVBatteryChargeTodayFromCAN
name: "Battery Charge Today from CAN"
device:
name: "VitochargeVX3"
identifiers:
- vitochargevx3
state_topic: open3e/ElectricalEnergyStorageEnergyTransferStatistic/BatteryChargeToday
device_class: energy
unit_of_measurement: kWh
value_template: '{{ value_json | float / 1000.0 }}'
state_class: total_increasing
qos: 0
retain: true
platform: mqtt

 

in Home Assistant bekomme ich folgende Meldung:

Es ist nicht möglich mqtt sensor durch Hinzufügen von „platform: mqtt“ zur sensor-Konfiguration zu konfigurieren.

Um dieses Problem zu beheben:

  1. Entferne „platform: mqtt“-Vorkommen aus der „sensor“-Konfiguration in deiner YAML-Konfigurationsdatei.
  2. Starte Home Assistant neu.

Beispiel, das entfernt werden sollte:

sensor:
  - platform: mqtt

 

bin leider noch recht unerfahren in Home Assistant und der Bash. Was mach ich falsch? 

Hallo Zusammen, 

 

ich habe einen PV Anlage mit Vitocharger VX3 und möchte diese mit Home assistant verbinden.

 

ich habe einen raspberry pi 4 aufgesetzt und mit den Can Adapter.

Folgende Anleitungen habe ich verwendet:

https://github.com/open3e/open3e/blob/master/README.md

https://github.com/open3e/open3e/discussions/5

https://github.com/Wolfgang-03/Open3E-HA/blob/main/installation.md#visualisierung-in-home-assistant

https://github.com/open3e/open3e/wiki/090-Homeassistant

 

ich komme nur leider an folgenden Punkt nicht weiter:

ich kann auf dem raspberry pi mit dem Befehl:

open3e -c can0 -dev vx3 -r 1664,1718,1801,1802,1824,1828,1830,1831,1832,1833,1834,1836,1838,1839,1840,2219,1140,2936 -v

mir die Werte des VX3 ausgeben lassen.

 

Da kommt dann das raus:

raspiio@raspiio:~/open3e $ open3e -c can0 -dev vx3 -r 1664,1718,1801,1802,1824,1828,1830,1831,1832,1833,1834,1836,1838,1839,1840,2219,1140,2936 -v

vx3 1664 ElectricalEnergyStorageStateOfCharge 100.0

vx3 1718 ElectricalEnergySystemConfiguration {"Netzbetriebsart": 2, "Elektrische Anlagenkomponenten": 1}

vx3 1801 ElectricalEnergyStorageEnergyTransferStatistic {"BatteryChargeToday": 6460.0, "BatteryChargeWeek": 26513.0, "BatteryChargeMonth": 35130.0, "BatteryChargeYear": 191522.0, "BatteryChargeTotal": 191522.0, "BatteryDischargeToday": 3112.0, "BatteryDischargeWeek": 19638.0, "BatteryDischargeMonth": 32569.0, "BatteryDischargeYear": 178197.0, "BatteryDischargeTotal": 178197.0}

vx3 1802 EnergyProductionPhotovoltaic {"PhotovoltaicProductionToday": 25114.0, "PhotovoltaicProductionWeek": 114458.0, "PhotovoltaicProductionMonth": 133525.0, "PhotovoltaicProductionYear": 788208.0, "PhotovoltaicProductionTotal": 788208.0, "PhotovoltaicProductionToday1": 0.0, "PhotovoltaicProductionWeek1": 0.0, "PhotovoltaicProductionMonth1": 0.0, "PhotovoltaicProductionYear1": 0.0, "PhotovoltaicProductionTotal1": 0.0, "PhotovoltaicProductionToday2": 0.0, "PhotovoltaicProductionWeek2": 0.0, "PhotovoltaicProductionMonth2": 0.0, "PhotovoltaicProductionYear2": 110.0, "PhotovoltaicProductionTotal2": 110.0, "PhotovoltaicProductionToday3": 25114.0, "PhotovoltaicProductionWeek3": 114458.0, "PhotovoltaicProductionMonth3": 133524.0, "PhotovoltaicProductionYear3": 788100.0, "PhotovoltaicProductionTotal3": 788100.0}

vx3 1824 ThreePhaseInverterCurrentPower {"cumulated": 4981.0, "L1": 1660.0, "L2": 1669.0, "L3": 1660.0}

vx3 1828 InverterElectricalEnergyStorageCurrentMaximumlChargePower 0.0

vx3 1830 InverterElectricalEnergyStorageCurrentMaximumlDishargePower 4029.0

vx3 1831 PhotovoltaicCurrentStringPower {"String1": 0.0, "String2": 0.0, "String3": 5037.0}

vx3 1832 PhotovoltaicStringCurrent {"String1": 0.0, "String2": 0.0, "String3": 10.0}

vx3 1833 PhotovoltaicStringVoltage {"String1": 0.0, "String2": 298.772, "String3": 494.545}

vx3 1834 ElectricalEnergyStorageStateOfEnergy {"StateOfEnergy": 9990.0, "Unkown": 0.0}

vx3 1836 ElectricalEnergyStorageCurrentPower 0.0

vx3 1838 ElectricalEnergyStorageVoltage 206.4

vx3 1839 ElectricalEnergyStorageUsableEnergy "10270000"

vx3 1840 ElectricalEnergyStorageUsableNominalEnergy "10270000"

vx3 2219 BatteryCalibration "00"

Traceback (most recent call last):

  File "/home/raspiio/.local/bin/open3e", line 8, in <module>

    sys.exit(main())

             ^^^^^^

  File "/home/raspiio/.local/lib/python3.11/site-packages/open3e/Open3Eclient.py", line 364, in main

    readbydid(addr=ecudid[0], did=ecudid[1], raw=args.raw, msglvl=mlvl)

  File "/home/raspiio/.local/lib/python3.11/site-packages/open3e/Open3Eclient.py", line 220, in readbydid

    value,idstr =  dicEcus[addr].readByDid(did, raw)

                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/raspiio/.local/lib/python3.11/site-packages/open3e/Open3Eclass.py", line 143, in readByDid

    return self.readPure(did)

           ^^^^^^^^^^^^^^^^^^

  File "/home/raspiio/.local/lib/python3.11/site-packages/open3e/Open3Eclass.py", line 161, in readPure

    response = self.uds_client.send_request(

               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/raspiio/.local/lib/python3.11/site-packages/udsoncan/client.py", line 2255, in send_request

    raise NegativeResponseException(response)

udsoncan.exceptions.NegativeResponseException: ReadDataByIdentifier service execution returned a negative response ConditionsNotCorrect (0x22)

 

Das sieht glaub ich schon nicht ganz sauber aus. Aber es zeigt die gewünschten Werte.

Was ich aber nicht hin bekomme, dass dann per mqtt an Home  Assistant zu geben. Könnt ihr mir hier helfen. 

 

so wie ich es Verstehe sollte das der richtige Befehl sein oder? 

raspiio@raspiio:~/open3e $ open3e -c can0 -dev vx3 -r 1664,1718,1801,1802,1824,1828,1830,1831,1832,1833,1834,1836,1838,1839,1840,2219,1140,2936 -t 15 -m 192.168.178.60:1883:open3e -mfstr {didNumber}_{didName} -muser myuser:mypassword

mqtt broker disconnected. reason_code = Unspecified error

Traceback (most recent call last):

  File "/home/raspiio/.local/bin/open3e", line 8, in <module>

    sys.exit(main())

             ^^^^^^

  File "/home/raspiio/.local/lib/python3.11/site-packages/open3e/Open3Eclient.py", line 364, in main

    readbydid(addr=ecudid[0], did=ecudid[1], raw=args.raw, msglvl=mlvl)

  File "/home/raspiio/.local/lib/python3.11/site-packages/open3e/Open3Eclient.py", line 220, in readbydid

    value,idstr =  dicEcus[addr].readByDid(did, raw)

                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/raspiio/.local/lib/python3.11/site-packages/open3e/Open3Eclass.py", line 143, in readByDid

    return self.readPure(did)

           ^^^^^^^^^^^^^^^^^^

  File "/home/raspiio/.local/lib/python3.11/site-packages/open3e/Open3Eclass.py", line 161, in readPure

    response = self.uds_client.send_request(

               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/raspiio/.local/lib/python3.11/site-packages/udsoncan/client.py", line 2255, in send_request

    raise NegativeResponseException(response)

udsoncan.exceptions.NegativeResponseException: ReadDataByIdentifier service execution returned a negative response ConditionsNotCorrect (0x22)

 

in der Home Assistant configuration.yaml hab ich mal folgendes angelegt:

mqtt:
sensor:
unique_id: PVBatteryChargeTodayFromCAN
name: "Battery Charge Today from CAN"
device:
name: "VitochargeVX3"
identifiers:
- vitochargevx3
state_topic: open3e/ElectricalEnergyStorageEnergyTransferStatistic/BatteryChargeToday
device_class: energy
unit_of_measurement: kWh
value_template: '{{ value_json | float / 1000.0 }}'
state_class: total_increasing
qos: 0
retain: true
platform: mqtt

 

in Home Assistant bekomme ich folgende Meldung:

Es ist nicht möglich mqtt sensor durch Hinzufügen von „platform: mqtt“ zur sensor-Konfiguration zu konfigurieren.

Um dieses Problem zu beheben:

  1. Entferne „platform: mqtt“-Vorkommen aus der „sensor“-Konfiguration in deiner YAML-Konfigurationsdatei.
  2. Starte Home Assistant neu.

Beispiel, das entfernt werden sollte:

sensor:

  - platform: mqtt

 

bin leider noch recht unerfahren in Home Assistant und der Bash. Was mach ich falsch? 

Top-Lösungsautoren