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
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,
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!
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 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...
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.
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:
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
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:
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:
Beispiel, das entfernt werden sollte:
sensor:
- platform: mqtt
bin leider noch recht unerfahren in Home Assistant und der Bash. Was mach ich falsch?