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
@Awot252 @Was meinst du damit - die Parameter findest Du hier: https://github.com/abnoname/open3e/blob/master/Open3Edatapoints.py und da sind zu jedem Parameter die derzeit bekannten Codecs zum parsen angegeben.
Ich bezog meine Frage auf das Dokument von Viessmann.
@Awot252 schrieb:Ich bezog meine Frage auf das Dokument von Viessmann.
Vielen Dank dafür
Gibt es bei Softwarestand 2323 Parameter, welche man zwingend ändern sollte?
@bb77und @mbauer666 Der Fehlercode 0x22 sagt aus, dass bei der Anlage eine 'Vorbedingung' nicht erfüllt ist. Da sich bei dieser Einstellung (Parameter 1791) die Stellung des 3-Wege-Ventil ändern kann, im praktischen Betrieb dies aber nur erfolgt, wenn Brenner (und Heizungspumpe?) kurz abgeschaltet werden. Grund dafür ist, dass beim Umschalten kurzzeitig der Durchfluss fehlt und deshalb die Wärme nicht abtransportiert werden kann. Möglicherweise ist das die 'Vorbedingung' für das Einstellen der Ruheposition des 3-Wege-Ventils.
Moin @Hotzen-Plotz !
>> Muss ich den Aufruf von Open3e irgendwie verändern gegenüber vorher?
Wie @Juergen-B schon gesagt hat, musst du - falls du für MQTT mit user und passwort agierst - den entsprechenden Teil im Aufruf ändern. Wenn du also früher
-muser ichuser -mpass meinpwd
benutzt hattest, musst du mit der neuen Version dann den Aufruf mit
-muser ichuser:meinpwd
machen. -mpass gibt es nicht mehr.
>> Gehe ich recht in der Annahme, dass ich folgende drei Dinge tun soll:
1. kill den bisherigen Programmlauf
2. "git pull https://github.com/abnoname/open3e" absetzen, damit ich den neuesten Kram auf den Raspi bekomme
3. open3e wieder anwerfen
Sonst nix?
Im Prinzip sollte das so funktionieren, aber (abgesehen von ein paar neuen Codecs und Klartexten und so) hast du dann auch keinen weiteren Nutzen von der neuen Version.
Also grundsätzlich: Wenn du mit der alten Version all deine Bedürfnisse abgedeckt bekommst, bleib einfach dabei - "never touch a running System" 😉
Die neue Version hat den Vorteil, dass man damit das gesamte (vom externen Bus aus erreichbare) System abscannen kann und dabei die zugehörigen Dateien erstellt werden (Datenpunktlisten, ggf. Anpassung der Datenlängen, ... und die devices.json). Dafür musst du aber vor dem Start der neuen Version ein mal
python3 Open3E_depictSystem.py
ausführen und danach -cnfg devices.json als Kommandozeileinargument hinzufügen beim Aufruf des Open3Eclient. Das -dev vyz kannst du dann weglassen.
Damit hast du dann Zugriff auf alle Datenpunkte (zumindest sollte ein read-all funktionieren - dazu später). Das ist aber eher 'Spielzeug', was den Forscherdrang befriedigt, rauszubekommen, an was man alles so dran kommt. Die allermeisten 'gebräuchlichen' Datenpunkte sind auch mit der alten Version zugänglich.
Wenn du den Umstieg machen willst, helfen wir dir natürlich weiter gern, falls 'Stolperfallen' auftauchen.
beste Grüsse & weiter viel Spass!
Phil
> Like - aber was ich bisher zu meinen Fragen hörte, habe ich selbst den Spass daran - und vermutlich noch viel mehr verloren.
@Ohne_Ahnung wir freuen uns über das Like, aber der Rest stimmt mich sehr traurig. Wir haben viel, viel Zeit und Mühen investiert, damit ihr Nutzen von und Freude an dem Tool habt. Ich persönlich habe noch eine alte Optolink Therme und kann schlichtweg garnix mit open3e machen, mein einziger Lohn ist eure Freude. Bei mir hat es sogar einen kleinen 'Ehekrach' gegeben, weil ich über Wochen von morgens bis tief in die Nacht nichts anderes gemacht habe, als open3e weiterzuentwickeln.
Deswegen sind wir natürlich hochgradig daran interessiert, was wir besser machen sollten/können, damit sich dann auch die beabsichgte -mindestens- Zufriedenheit einstellt.
Klar, wie schon öfter angesprochen, wäre eine (wahrscheinlich) Windows Lösung erstrebenswert, wo es einfach eine setup.exe gibt und dann eine schöne grafische Oberfläche, wo frau/man dann alles Weitere intuitiv mit der Maus machen kann?
Leider ist aber die Windows Welt wenig kompatibel mit UDS (Unified Diagnostic Services, worauf ja die One Base / E3 Kommunikation basiert) und CAN. Jeder CAN Bus Adapter muss individuell (herstellerspezifisch) eingebunden werden, und Kommunikationsbibliotheken für UDS/ISO-TP/DoIP habe ich für Windows noch nicht gefunden, jedes Bit muss 'zu Fuß' programmiert werden. Das ist bei Linux alles anders und viieel einfacher.
Nichts desto Trotz steht so eine Windows Lösung weiterhin auf unserer TODO Liste, aber der Weg dahin ist noch weit, arbeitsreich und 'steinig'. Wir hoffen auch immer noch darauf, das sich weitere hierin versierte Entwickler finden, die dann ihren Teil - wie gehabt am besten unentgeltlich - beitragen.
Ist es nur der Umstand der Linux Ungebung, was dir den Spass genommen hat, oder gibt es andere Gründe? Hast du ausser wahrscheinlich Zeit und vielleicht etwas Geld für die Kommunikations-Hardware noch etwas 'verloren'?
danke & beste Grüsse!
Phil
ps. und natürlich nicht zuletzt - was (nochmal) waren/sind deine Fragen?
>> nicht gleich alles auszulesen (-a). das klappt bei meiner vdens auch nicht.
Moin @bb77 ! Hast du vorher Open3E_depictSystem laufen lassen und dann Open3Eclient mit dem Kommandozeilenargument -cnfg devices.json gestartet (und auch die aktuelle Version aus dem master branch benutzt)?
Eigentlich sollte dann das -a funktionieren. Wenn nicht, bitte die Fehlermeldung posten.
danke & Grüsse!
Phil
@KarstenW auch an dich die Bitte, die aktuelle Version des master branch zu benutzen, Open3E_depictSystem laufen zu lassen und dann -cnfg devices.json als Kommandozeilenargument zu benutzen.
Hindergrund ist, dass die Open3EdatapointsVcal anhand eines bestimmtes Systems gebildet wurde, und entsprechend der von dir geposteten Fehlermeldung wahrscheinlich Datenpunkte enthält, die bei deiner Vcal nicht (oder nicht wie in der datapoints beschrieben) existieren.
Es gibt nicht eine Vcal, sondern diverse Modelle, die dann auch noch unterschiedliche Firmwarestände und entsprechend unterschiedliche Parameter haben. Um aus diesem Dillemma rauszukommen, haben wir depictSystem entwickelt.
Grüsse!
Phil
>>>
@bb77 Schreiben möglichst im raw-Modus, also z.B. für Ruhestellung 'Heizen':
python3 Open3Eclient.py -c can0 -dev vdens -raw -w 1791=01
@Dreman geht das bei dir? oder ist das tatsächlich ein weiterer 'intern erhöht schreibgeschützter' Parameter? (kann ich mir eigentlich nicht vorstellen, und beim Umschalten werden ja temporär beide Wege freigegeben, ein Mangel an Durchfluss sollte also nicht der Grund sein...)
Nein, selbst im Terminal mit cansend kommt als Antwort in candump der NR-Code 0x22, es ist also (unabhängig von open3e) irgendeine Vorbedingung nicht erfüllt (siehe auch mein Beitrag weiter oben). Eventuell funktioniert das nur im Abschaltbetrieb. Bei mir zumindest wird bei jedem Umschalten des 3-Wegeventil im Betrieb der Brenner (und die Pumpe?) kurz aus- und wieder eingeschaltet, siehe dazu auch die Begründung der Experten. Erfordert halt noch weiteres Forschen 😉.
Ich lese schon länger bei euch mit.
Ihr habt schon sehr früh, erkannt, dass Viessmann hier den falschen Weg geht.
Leider kann ich eure Lösung nicht benutzen, und euch auch nicht wesentlich unterstützen.
Meine Vitodens 300 w ist von 2022 und hat schon eine neue HMU auf Garantie bekommen. Die Garantie (noch 4 Jahre) ist das Hauptproblem, aber habe ich auch keine brauchbare Programmiererfahrung. So dass ich euch nicht komplett folgen kann.
Für mich käme ein Zugriff über WLAN Access Point temporär in Frage. Um die Energiesparfunktionen auf meine Bedürfnisse einzustellen.
Phil hat kurz erwähnt Zugriff über WLAN Access Point wäre möglich.
Vielleicht könnte es jemand mal für Anfänger erklären, wie man Zugriff über WLAN Access Point erhält. Was man braucht, und wie es geht.
Vielen DANK
UND MACHT WEITER SO !!!
Habe gerade auf meinem System ein 'Upgrade' gemacht.
Notwendig (um meine Tests herauszubekommen):
- git reset --hard origin/develop
- git reset --hard origin/master
Damit war ich auf dem aktuellen Stand. Im allgemeinen sollte ein einfaches git pull reichen ...
Jetzt:
python3 Open3E_depictSystem.py
Das lief so eine oder zwei Minuten ... und hat die Konfiguration erzeugt:
nun alles in der args Datei angepasst:
--can
can0
--dev
vcal
--mqtt
192.168.2.203:1884:open3e
--mqttformatstring
{didNumber}_{didName}
--listen
open3e/cmnd
--config
devices.json
-v
-> wichtig für mich: mqttformatstring anpassen - da ich nur von #680 (vcal) lese und meine Anwendung auf die Topics konfiguriert ist ...
Aufruf: python Open3Eclient.py @args
und schon geht es wieder
FF
Moin Phil
Ich habe keinen blassen Schimmer von Programmieren oder von Linux.
Zugriff über WLAN Access Point könnte ich noch hinbekommen.
Wie har1 schon geschrieben hat, könnt ihr den Zugriff über WLAN Access Point für uns normale einfachen Leute erklären.
Wäre super danke
Hi,
also, das mit der 1791, das würde ich nochmal versuchen, wenn die Heizung"ruhig" ist.
das mit der depec system geht bei mir leider nicht, denke, das liegt daran, das ich über wlan access point auf die heizung gehe und nicht wie ihr mit can. ich probier das aber gerne nochmal aus.
ich hab mir die neuse version vom github gezogen.
ich bin auch absoluter neuling auf dem gebiet. ich hab mir nen alten laptop genommen und da MX-Linux installiert. leider alles noch 32bit.
damit hab ich das alles gemacht, ist auch echt kein problem.
leider kann ich aber den io-broker nicht starten, irgendwas klappt da nicht, aber das ist ein anderes thema.
unter windows 10 kann man auch ubundu installieren und dann kann man auch mit der heizung reden, das klappt auch super.
gruß bb
da ich wie gesagt nur ein alte Therme habe und die auch noch ohne Vitoconnect, würden meine Beschreibungsversuche wahrscheinlich eher in die Irre führen als hilfreich sein. Aber z.B. @Juergen-B hat (soweit ich erinnere) schon öfter diesen Weg der Verbindung beschritten und kann das bestimmt aus dem Handgelenk geschüttelt erklären 🙂
Manfred, das mit dem Umschaltventil und der Brennerabschaltung ist ja interessant. Meine alte Therme kann das problemlos ohne. Dann müssen wir da wohl wirklich noch etwas forschen - das ist ja schon eine recht wichtige Einstellung, da wohl bei den allermeisten Anlagen (wie auch bei meiner) die 'Fachpartner' es nicht für nötig erachtet haben, eine Schwerkraftbremse wie von Viessmann vorgegeben einzubauen... Ein Forumsmitglied hier hat mir grad berichtet, dass er durch den nachträglichen Einbau der Schwerkraftbremse seinen Gasverbrauch im Sommer (also für WW) um bis zu 50% reduziert hat... Änderung der Ruhestellung des Umschaltventils dürfte eine ähnliche Größenordnung bewirken.
Grüsse!
@HerrP echt schade, das du keine open3e hast.
das mit der schwerkraftbremse ist nicht zu verachten, ich habe das sofort gemerkt, als ich die neue heizung in betrieb genommen habe. habe dann sofort schwerkraftventile installiert. aber trotzdem würde ich gerne den parameter codieren 🙂
also wie gesagt, ich helfe gerne weiter, auch wenn ich nicht viel ahnung habe.
was mir bisher aufgefallen ist:
- über IP das depictsystem, geht nicht
- über IP Rohwerte lesen geht nicht
was ich bisher gemacht habe:
- 2855, Frostschutz von 1°C auf -9°C geändert (ori 010A00; new 01A6FF)
- 1240, pumpe ausschalten im reduzierten Betrieb (ori 01; new 02)
- 919, dämpfung außentemperatur (ori 0005; new 00B4) 128 x 10min = 1280min, also 21,3h 7 jetzt 18 x 10min = 180min, also 3h
- 2426 von 1°C auf -9°C gesetzt, ist für die abschaltung der Pumpe da
(ori 010A00000A00; new 01A6FF000A00)
und jetzt wollte ich mich halt noch der 1791 widmen.
So, und jetzt echt ein riessige Lob an ALLE und besonders HerrP für ihre Zeit hier zu forschen und zu schreiben, ohne all den informationen hier, hätte ich das nicht hinbekommen.
Nebenbei, can2usb adapter hab ich mir bestellt 🙂 und wenn ich das mit dem iobroker hinbekomme, dann kommt mqtt und wenn das klappt, dann kaufe ich mir als nächstes so eine Himbeere 🙂
gruß bb
>> über IP das depictsystem, geht nicht
oh, stimmt, ist ausschliesslich für CAN geschrieben. Das werde ich mal ändern und Bescheid sagen. Wenn du es dann probieren würdest, wäre toll!
>> über IP Rohwerte lesen geht nicht
das ist nicht schön, eigentlich sollte das gehen, wir werden mal schauen, ob wir da was finden.
Sage mal, könntest du vielleicht schnell noch mal für die beiden, die gefragt haben, erklären, wie du die IP Verbindung herstellst!? Du machst das doch mit dem Access Point Modus, oder?
Der Dank gilt glaubich uns allen gleichermassen. Ohne die ganze Gruppe wären wir wohl nicht so weit gekommen. abnoname hatte ja initial überhaupt die wesentlichen Grundsteine gelegt, maxxberg hat das mit den complexen Codecs geschaffen, MyHomeMyData hat den Listener Mode gemacht und 'nebenbei' noch E3onCAN, jwende hat immer wieder dem systemischen Gedanken nachgeholfen, und so weiter und so fort, und so hat jeder seinen Teil beigetragen. Ich hatte nur beim 'Zusammenfügen' der ganzen 'Bausteine' kürzlich eine sehr zeitintensive Phase.... 😉
Hallo Phil,
nein - ich werde mir so oder so ein HomeAssit aufbauen.
Ich gehöre zu den Leuten die sich, vielleicht auch "naiv", für die Zukunft mit einer Wärmpepumpe rüsten wollten - wobei man schon erwarten hätte können - dass dies Gerät dabei ist - ohne Mehraufwand zu betreiben.
Persönlich wende und werde mich immer von Dingen abwenden - die nicht klar und eindeutig, verständlich und nachvollziehbar kommunizieren - weil es danach immer für mich Nachteile gibt.
Der Wunsch von Viessmann ist es, dass andere User Beiträge zur Lösung nachlesen können.
... ich hoffe bald erzählen alle Autohäuser und Werkstätten: "Viessmann" - das könnt ihr doch bei uns im Forum nachlesen.
Lernen durch Schmerz.
Danke Phil,
Gruß,
Ohne_Ahnung
ps. ich sehe grade MyHomeMyData hat an dem raw Bug 'eben gerade' schon was gemacht. Wahrscheinlich geht es jetzt?!
open3e über WLAN Access Point nutzen
Vorbereitung
Auf dem Rechner, der per WLAN mit dem Viessmann Access Point verbunden werden soll, muss open3e installiert sein und laufen. Am besten vorab mit python3 Open3Eclient.py --help probieren.
Wenn man open3e normalerweise auf einem Raspi verwendet, kann man natürlich auch diesen Rechner per WLAN mit dem Access Point verbinden. Leicht von der Hand geht das aber nur, wenn man die grafische Oberfläche nutzen kann.
Andernfalls ist es vermutlich einfacher, auf dem Arbeitsrechner Python und open3e einzurichten.
Wenn das geschafft ist, wird der Viessmann Access Point aktiviert. Das funktioniert auf den veschiedenen Viessmann-Geräten unterschiedlich. Auf einer Vitocal 250 geht es so:
Viel Erfolg!
Noch ein Hinweis zu ifconfig und nmap: In der Ausgabe von ifconfig schaut man nach dem Eintrag wlan0. Es sollte sich ein Wert finden wie "inet 192.168.0.2". Man kann direkt diese Adresse mit einer 1 am Ende probieren, also 192.168.0.1. Wenn das nicht geht scannt man mit nmap
nmap -p 80 192.168.0.0/24
und probiert alle gefundenen Adressen durch.
super, da hätten wir ja das schon mal - danke Jürgen! 🙂
@bb77 ich hab einen test-branch angelegt, wo ich DoIP in Open3E_depictSystem eingebaut habe. Es wäre supi, wenn du das mal ausprobieren könntest.
dazu als command line argument '-d' und die DoIP IP Adresse angeben, also so in der Art
python3 Open3E_depictSystem.py -d 192.168.43.42
Wenn es nicht funktioniert, poste bitte die Fehlermeldung!
danke & Grüsse!
Phil
Hm. Jetzt habe ich das Update gezogen und schon hab ichs kaputt gemacht.
Beim versuchsweisen start bekomme ich:
Enter listener mode, waiting for commands on mqtt...
bad payload: b''; topic: open3e/cmnd
bad payload: b''; topic: open3e/cmnd
Ich nutze auch die "args" Datei und habe da gemäß obigen Tips reingeschrieben:
--can
can0
--mqtt
127.0.0.1:1883:open3e
--mqttformatstring
{didNumber}_{didName}
--listen
open3e/cmnd
--config
devices.json
Ich würde mutmassen, dass da irgendwas mit dem mqttformatstring nicht richtig ist oder mit dem Teil hinter "listen".
Im alten Zustand lief noch alles und die Werte wurden mit der Bezeichnung wie "open3e/CalculatedOutsideTemperature" im iobroker angenommen.
Hat da jemand eine Idee?
Ergänzend: Ich habe es mal ohne diese args Datei versucht, so wie früher. geht aber auch nicht mehr. Jetzt mault das Ding:
Traceback (most recent call last):
File "/opt/git/open3e/Open3Eclient.py", line 358, in <module>
showread(addr=ecudid[0], value=val, idstr=idstr, did=ecudid[1])
File "/opt/git/open3e/Open3Eclient.py", line 239, in showread
publishStr = args.mqttformatstring.format(
AttributeError: 'NoneType' object has no attribute 'format'
Jetzt bin ich hilflos.