NEWS
Test Adapter e3oncan - Viessmann E3 Serie einbinden
-
@jrbwh Tag! Bin wieder stecken geblieben. Es geht um den Datenpunkt 1006: Einmalladung Warmwasser.
e3oncan.0.HPMUMASTER_0x680.tree.1006_TargetQuickMode
Es ist beschrieben hier auf Seite 6:
[https://community.viessmann.de/viessmann/attachments/viessmann/customers-heatpump-hybrid/74546/1/6196307 Kundendatenpunktliste Vitocal (1).pdf](link url)
aber komischerweise nicht mehr in dem neueren Dokument hier:
[https://static.viessmann.com/resources/technical_documents/DE/de/VDP/6218400VDP00002_1.pdf](link url)Der Defaultwert ist "00000000". Wenn ich in der ViGuide oder ViCare das einmalige Warmwasser-Erwärmen aktiviere, wechselt der Wert auf "02010000" (und wird direkt als Punkt 1007 gespiegelt), was schon mal eine leichte Diskrepanz mit dem Dokument darstellt.
Der Punkt ist schreibbar, aber nicht in der Tree aufgelistet sondern nur in der Liste mit den Raw-Werten. Manuell kann ich es zwischen "02010000" und "00000000" umschalten. Wenn ist es aber vom JScript aus versuche, bekomme ich Fehler.
der Aufruf:setState('e3oncan.0.HPMUMASTER_0x680.tree.1006_TargetQuickMode',"02010000")
produziert:
Das gleiche nicht über die Tree sondern über den Raw-Baum führt zu noch mehr Error-Ausgaben:setState('e3oncan.0.HPMUMASTER_0x680.raw.1006_TargetQuickMode', "02010000");
Anschließend schmiert der Adapter ab und startet neu.Eine Idee, wie ich den Punkt aus dem Script heraus doch beschreiben kann?
Wäre es möglich, ausgehend von der Doku, den Punkt aufzubereiten und in der Tree als z.B. 1006_TargetQuickMode.Type (1006.0) und 1006_TargetQuickMode.Value(1006.1) (ich spinne mal jetzt mit den Namen) verfügbar machen, auch wenn der Wert 02 in der Doku nicht vorkommt? -
@tobi-5 Die Fehlermeldungen kommen, weil als Datenformat immer ein JSON-Objekt erwartet wird, der Befehl muss also so aussehen:
setState('e3oncan.0.HPMUMASTER_0x680.raw.1006_TargetQuickMode',JSON.stringify("02010000"));
Einen Absturz sollte das natürlich trotzdem nicht produzieren. Das werde ich mir anschauen und abfangen.
Die Datenpunktstruktur für 1006/1007 arbeite ich dann auch gleich ein. Eine gute Anlaufstelle für Diskussionen zum Verhalten und zur Nutzung der Datenpunkte ist auch das open3e Diskussionsforum.
-
@Tobi-5 Mit Version 0.10.8 ist der Bug gefixt und die Datenpunkte 1006/1007 sind als Struktur implementiert. Sollte morgen im Beta-Repo verfügbar sein.
-
@jrbwh Vielen lieben Dank. Werde ich bei Gelegenheit ausprobieren.
Dank Deiner Arbeit habe ich die letzten Tage, wo es so sonnig war, den Hausstrom, die Heizung und das Warmwasser um sonst, also wirklich 0 kWh Strom gekauft, dafür noch welchen eingespeist.
Das ganze automatisiert und visualisiert. Das (auch von Dir bereitgestellte?) Viessmann-Diagnose-Bild einer 252-A habe ich mit vernünfitgen Vektor-Grafiken nachgebaut, aufbereitet und um den Heizkreis mit Mischer erweitert. Es sieht dann so aus:
Wärmepumpe.mp4 -
@tobi-5 Vielen Dank für die tolle Rückmeldung
Das Diagnose-Bild sieht super aus
Ja, ich habe das mal von der Anlage abfotografiert und aufbereitet.
Wäre super, wenn Du Deine Version als View zur Verfügung stellen könntest. Am besten als neuen Beitrag unter Discussions.Viele Grüße, Jürgen
-
@jrbwh Hallo! Sorry, im Moment habe ich etwas viel um die Ohren.
Das "View" ist bestimmt ein Begriff aus VIS, ich habe mit der VIS2 gearbeitet. Dort gibt es den Knopf "Widgets exportieren", als Ergebnis kommt eine JSON (?) Datei raus. Diese lässt sich wieder importieren. Ich hoffe, man kann damit in VIS etwas anfangen, umgekehrt ließ sich dein View in VIS2 importieren. Die Grafiken sind schön durchsichtig, sodass man mit eigenen Hintergründen arbeiten kann. Sie müssen, wie gehabt, mit dem im VIS(2) integrierten Dateimanager in ein ensprechendes Verzeichnis (wo VIS sie wieder findet) geladen werden. Eventuell sind die Pfade anzupassen.
Meine Anlage beinhaltet die Vitocal 252-A (mit eingebautem 190L Warmwasserspeicher), mit kleiner Außeneinheit (R290 und nur 1 Propeller), einem 400L Puffer und einem Heizkreis mit Mischer (daher Heizkreis 2). Die Fußbodenheizung lässt sich einzeln über ein Ventil hinzuschalten (Shelly). Einzelne Objekte habe ich selber erstellt und die Logik dahinter wird mit einem Script bedient, hier muss jeder selber einen Ersatz schaffen oder eine andere Steuergröße aus den vorgefertigten Objekten wählen.
Da ich kein GitHub-Account habe, werfe ich es hier flach übers Netz, wenn es jemand gebrauchen kann: viel Spaß damit: VIS2VitocalHeatPump.zip -
@tobi-5 Danke für Deine Rückmeldung. Im ZIP-File sehe ich etliche Bilddateien, aber die Datei HeatPump ist leider leer, Größe ist 0. Würdest Du da bitte nochmal schauen?
-
@jrbwh Oh, da ist etwas schiefgegangen. Hier die Datei einzeln: HeatPump.zip
-
@tobi-5 Super, danke. Mit Vis-1 scheint es nicht zu gehen. Muss jetzt erstmal Vis-2 installieren.
-
@jrbwh Hallo jrbwh, jetzt habe ich doch noch eine Frage: Kennst Du einen Link zu einer detaillierten Beschreibung der Datenpunkte eines VitoCharge VX3 ? - Ich konnte mir zwar die Bedeutung einiger Datenpunkte durch Visualisierung zusammenreimen, aber aus machen werde ich einfach nicht schlau.
Zum Beispiel passt der Wert von e3oncan.0.EMCUMASTER_0x680.tree.0535_ObjectElectricalEnergyStatistical.GridFeedInEnergy zu keinem Wert der Smart Meters e380.
Hast Du eine Idee ? -
@flatlander Der beste Ort für Infos und Diskussionen ist das open3e-Projekt. Darauf basiert ja e3oncan-Adapter. Interessant ist auch das Viessmann-Forum, allerdings ziemlich unübersichtlich.
Der Datenpunkt 535 enthält kumulierte Energiewerte. Da ist natürlich die Frage, wann die auf Null waren. Ich habe schon erlebt, dass kumulierte Werte nach einem SW-Update durch Viessmann plötzlich wieder Null waren.
Kannst Du zumindest die Änderungen zwischen 535 und E380-Werten in Einklang bringen?
Ich benutze 535 nicht, kann deshalb nichts konkretes dazu sagen. -
@jrbwh Das Viessmann-Forum habe ich zu Datenpunkten schon durchsucht, da findet man nur Klagen, dass Viessmann eben keine Auskunft dazu gibt. Im Forum des open3e-Projekts habe ich dann unter vx3_datapoints nur das da gefunden:
import open3e.Open3Ecodecs from open3e.Open3Ecodecs import * dataIdentifiers = { "name": "EMCU", "dids": { 256 : None, 257 : None, 258 : None, 259 : None, 260 : None, 261 : None, 262 : None, 263 : None, 264 : None, ... usw.
Schade. So langsam gehen mir die Ideen aus, wo ich noch suchen könnte.
-
@flatlander In der Datei vx3_... stehen nur die Datenpunkte, die vom Standardwert abweichen, also z.B. eine andere Länge haben. Alle anderen Datenpunkte stehen im generischen File Open3Edatapoints.py. Das bringt Dich aber vermutlich auch nicht weiter.
Würde empfehlen, Deine Frage(n) im Viessmann-Forum oder in open3e unter Discussions zu stellen. Vielleicht hat bereits ein anderer User das Problem gelöst. -
@jrbwh
Hallo, ich habe eben meinen iobroker auf NodeJS v22.18 geupdated. Leider scheint dies dem e3onCAN nicht gut getan zu haben, denn jetzt funktioniert er nicht mehr.host.iobrokerpi4b 2025-08-17 17:28:23.026 error instance system.adapter.e3oncan.0 terminated with code 1 (JS_CONTROLLER_STOPPED) host.iobrokerpi4b 2025-08-17 17:28:23.026 error Caught by controller[0]: Node.js v22.18.0 host.iobrokerpi4b 2025-08-17 17:28:23.026 error Caught by controller[0]: } host.iobrokerpi4b 2025-08-17 17:28:23.026 error Caught by controller[0]: code: 'ERR_DLOPEN_FAILED' host.iobrokerpi4b 2025-08-17 17:28:23.026 error Caught by controller[0]: at Object..js (node:internal/modules/cjs/loader:1820:10) { host.iobrokerpi4b 2025-08-17 17:28:23.026 error Caught by controller[0]: at Module._compile (node:internal/modules/cjs/loader:1688:14) host.iobrokerpi4b 2025-08-17 17:28:23.026 error Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/socketcan/dist/socketcan.js:51:26) host.iobrokerpi4b 2025-08-17 17:28:23.026 error Caught by controller[0]: at require (node:internal/modules/helpers:135:16) host.iobrokerpi4b 2025-08-17 17:28:23.026 error Caught by controller[0]: at Module.require (node:internal/modules/cjs/loader:1445:12) host.iobrokerpi4b 2025-08-17 17:28:23.026 error Caught by controller[0]: at wrapModuleLoad (node:internal/modules/cjs/loader:235:24) host.iobrokerpi4b 2025-08-17 17:28:23.025 error Caught by controller[0]: at TracingChannel.traceSync (node:diagnostics_channel:322:14) host.iobrokerpi4b 2025-08-17 17:28:23.025 error Caught by controller[0]: at Function._load (node:internal/modules/cjs/loader:1246:12) host.iobrokerpi4b 2025-08-17 17:28:23.025 error Caught by controller[0]: at Module.load (node:internal/modules/cjs/loader:1423:32) host.iobrokerpi4b 2025-08-17 17:28:23.025 error Caught by controller[0]: at Object..node (node:internal/modules/cjs/loader:1846:18) host.iobrokerpi4b 2025-08-17 17:28:23.025 error Caught by controller[0]: Error: Module did not self-register: '/opt/iobroker/node_modules/socketcan/build/Release/can.node'. host.iobrokerpi4b 2025-08-17 17:28:23.025 error Caught by controller[0]: ^ host.iobrokerpi4b 2025-08-17 17:28:23.025 error Caught by controller[0]: return process.dlopen(module, path.toNamespacedPath(filename)); host.iobrokerpi4b 2025-08-17 17:28:23.025 error Caught by controller[0]: node:internal/modules/cjs/loader:1846 host.iobrokerpi4b 2025-08-17 17:28:21.579 info instance system.adapter.e3oncan.0 in version "0.10.9" started with pid 662310 host.iobrokerpi4b 2025-08-17 17:28:19.832 info "system.adapter.e3oncan.0" enabled
Hast Du Tips, was man da tun kann?
-
@bertderkleine Das könnte an nicht korrekt aufgelösten Modul-Abhängigkeiten liegen. Bitte versuche mal folgendes:
- Adapter stoppen
- in einem Terminalfenster folgende Befehle ausführen:
cd /opt/iobroker/node_modules/iobroker.e3oncan/ npm rb npm i
- Adapter starten
-
@jrbwh sagte in Test Adapter e3oncan - Viessmann E3 Serie einbinden:
/opt/iobroker/node_modules/iobroker.e3oncan/
Danke Dir für die super fixe Reaktion!
Ich habe die Befehle ausgeführt und jetzt läuft der Adapter wieder!
Klasse, danke!Hier das Feedback des Systems:
Bert@iobroker:/opt/iobroker/node_modules/iobroker.e3oncan $ npm rb rebuilt dependencies successfully Bert@iobroker:/opt/iobroker/node_modules/iobroker.e3oncan $ npm i added 402 packages, and audited 404 packages in 2m 77 packages are looking for funding run `npm fund` for details found 0 vulnerabilities
Haben dem Ding wirklich 402 Pakete gefehlt? Die Eieeruhr beim Ausführen von "npm i" hat eine Weile gedreht.
Ich verstehe von sowas ja nichts...
-
@bertderkleine Freut mich, dass es wieder funktioniert. Die Meldungen von npm wundern mich aber auch. Muss mir das auf einem Test-System anschauen. Danke für die schnelle Rückmeldung.