NEWS
Viessmann-Adapter mit vcontrol
-
@martybr
Ja gerne doch!
Welche units sind denn die neuen?
Und wo hast du die her? -
@issr4k
Die kann man in der vcontrold.xml selber definieren. Schau mal rein:
vcontrold_neu.xml -
@martybr und woher weißt du wie?
-
@issr4k Ich habe mir verschiede vcontrold.xml Dateien angeschaut. Dort werden die <unit> Definitionen erstellt.
-
@martybr Kannst du mir das an einem Beispiel erklären?
-
@issr4k
Hier zwei Unit-Einträge:<unit name='BetriebsArt'> <abbrev>BA</abbrev> <type>enum</type> <enum bytes='00' text='Abschaltbetrieb'/> <enum bytes='01' text='Warmwasser'/> <enum bytes='02' text='Heizen und Warmwasser'/> <enum bytes='03' text='3'/> <enum bytes='04' text='dauernd reduziert'/> <enum bytes='05' text='dauernd normal'/> <enum bytes='06' text='normal Abschalt'/> <enum bytes='07' text='nur Kuehlen'/> <enum text='UNKNOWN'/> </unit> <unit name='Aktuelle Betriebsart'> <abbrev>ABA</abbrev> <type>enum</type> <enum bytes='00' text='Abschaltbetr. (Dauernd)'/> <enum bytes='01' text='Red. Betrieb (Schaltuhr)'/> <enum bytes='02' text='Normalbetrieb (Schaltuhr)'/> <enum bytes='03' text='Normalbetrieb (Dauernd)'/> <enum text='?'/> </unit>
Der obere steht in jeder XML. Hier werden Werte von 00 bis 07 ausgewertet. Der untere ist eine Variation, der die Werte von 00 bis 03 auswertet. Je nach Datenpunkt kannst du dann die entsprechende unit eintragen.
Beispiel vito.xml:
<command name="getTempSekVL" protocmd="getaddr"> <addr>0105</addr> <len>2</len> <unit>UT</unit> <description>Information - Heizkreis HK1: Vorlauftemperatur Sekundaer 1 (0..95)</description> </command>
Hier wird die unit == UT eingetragen. Die Definition steht wieder in der vcontrold.xml.
Hier:
<unit name='Temperatur'> <abbrev>UT</abbrev> <calc get='V/10' set='V*10'/> <type>short</type> <entity>° C</entity> </unit>
-
@martybr sagte in Viessmann-Adapter mit vcontrol:
@issr4k
Hier zwei Unit-Einträge:<unit name='BetriebsArt'> <abbrev>BA</abbrev> <type>enum</type> <enum bytes='00' text='Abschaltbetrieb'/> <enum bytes='01' text='Warmwasser'/> <enum bytes='02' text='Heizen und Warmwasser'/> <enum bytes='03' text='3'/> <enum bytes='04' text='dauernd reduziert'/> <enum bytes='05' text='dauernd normal'/> <enum bytes='06' text='normal Abschalt'/> <enum bytes='07' text='nur Kuehlen'/> <enum text='UNKNOWN'/> </unit> <unit name='Aktuelle Betriebsart'> <abbrev>ABA</abbrev> <type>enum</type> <enum bytes='00' text='Abschaltbetr. (Dauernd)'/> <enum bytes='01' text='Red. Betrieb (Schaltuhr)'/> <enum bytes='02' text='Normalbetrieb (Schaltuhr)'/> <enum bytes='03' text='Normalbetrieb (Dauernd)'/> <enum text='?'/> </unit>
Und wieder beispielhaft, mit welcher Adresse verwendest du die Einheit ABA ?
-
@issr4k
Habe ich noch nicht implementiert. Das wird mich in den nächsten Wochen beschäftigen. Ich schreibe ja gerade die vito.xml komplett um (hatte ich ja weiter oben geschrieben). Ich habe extra ein Testsystem aufgebaut, um mein laufendes System nicht zu himmeln. -
@issr4k
Meine Liste von Viessmann der Datenpunkte zur 204D muss fehlerhaft sein. Ich habe jetzt versucht, die Lüftung zu integrieren, das ist aber fehlgeschlagen. Beim Vergleich der Datenpunkte funktionierende Befehle zur Viessmannliste zeigt große Differenzen.
Hast du evtl. eine Liste der Datenpunkte? -
Hier gibts ein nettes Projekt wo man sich die möglichen Adressen für sein Gerät rausziehen kann:
https://github.com/sarnau/InsideViessmannVitosoftBei mir ist das leider schon lange her und hat auch nur bedingt funktioniert. Ich hab mir da folgende Daten rausgezogen und nen Excel erstellt:
EventTypes.xlsxWenn man nach
WPR3
filtert findet man alle Adressen inkl. Type für W01C Steuerung.
Allerdings muss man dann doch immer probieren ob die funktionieren. Ich hab mir das Handbuch genommen und dort nach den Adressen geschaut und dann getestet. Mit der Methode hab ich alles gefunden was ich so brauche. Die Adressen stehen ja auch in der Anlage wenn man in Codierebene 1 / 2 geht.Hier mal meine xmls:
vcontrold.xml
vito.xmlDamit hab ich dann ne ganz nette Visu erstellen können:
Edit:
Grad noch entdeckt: https://github.com/philippoo66/ViessData21
Hier gibts die Listen (DP_Listen_2.zip) pro Gerät. -
@scrounger Super, vielen Dank. Die Werte korrespondieren mit meinen Werten, dass scheint die gleiche Steuerung zu sein.
Eine Frage habe ich aber noch: Müssen eure Mieter niedrigere Temperaturen als ihr haben, oder ist das Zufall?Ich schaue mir mal in Ruhe die Excel an, auch hier für vielen Dank. Ich habe mir gerade das Handbuch der VitoTronic 200 rausgesucht. Dann kann ich da ja die Dateien finalisieren.
Ich habe nun auch im Handbuch endlich die Werte für die Vitovent gefunden:
Die liegen bei 7D0x.
Da steckt ja noch jede Menge Arbeit vor mir.Meine Visa sieht aktuell so aus (nicht so schön wie deine, bin noch am basteln):
-
@martybr sagte in Viessmann-Adapter mit vcontrol:
Eine Frage habe ich aber noch: Müssen eure Mieter niedrigere Temperaturen als ihr haben, oder ist das Zufall?
Ich wusste das diese Frage kommen wird
Da steckt ja noch jede Menge Arbeit vor mir.
Definitiv - ich habe Stunden damit verbracht. Hatte aber den positiven Nebeneffekt das ich mich sehr intensiv mit den Parametern beschäftigt habe und so noch einiges an der Anlage optimieren konnte.
Hat dabei geholfen Fehler in der Anlage aufzudecken und abzustellen, aber leider auch Fehler seitens Viessmann aufzudecken, die echt der Knaller sind....
https://www.viessmann-community.com/t5/Waermepumpe-Hybridsysteme/Standby-Stromverbrauch-Vitocal-200s/td-p/184588 -
@scrounger Das klingt heftig.
Ich ärgere mich seit einiger Zeit über Viessmann: Ich hatte mit 2016/2017, als ich neu gebaut habe, eine Steuerung von Viessmann installieren lassen: Homeautomatisierung live: die Vitocomfort. Damit konnte ich die Rollos etc. und die ganze Heizung inkl. Kühlung und Lüftung steuern. Alles über EnOcean. Top.
Letztes Jahr hat Viessmann die Vitocomfort abgekündigt. Als Ersatz gab es eine Migration (rabattiert) auf den Wibutler. Das ist ein tolles System mit u.a. Zwave, Zigbee und Enocean.
Das Dinges kann sogar mit Viessmann Komponenten. Leider keine Kühlung und es kennt die VitoVent 300F nicht.
Ich habe jetzt im Wibutler Forum einen Post hinterlassen, dass ich das Ding kostenlos abgebe. Schrottiges Forum, keine Antwort auf Fragen etc.
Nun Frust aus !! -
Hier wie angekündigt die Bilder zu Beitrag 50
Habt ihr eine Idee wie ich den Datentyp abbilden kann?
So 100% habe ich das mit dem erstellen der Datentypen noch nicht verstanden.Ich spreche 5012 an:
und zurück kommt 0x0F... sprich 15
gleiches hier mit 0x0B bzw. 11
EDIT:
Habe den Datentyp mal auf Integer geändert.<unit name="Test"> <abbrev>XX</abbrev> <calc get="V" set="V"/> <type>int</type> <entity/> </unit>
Damit bekomme ich zumindest mal den Dezimal Wert von vctrld rückgeliefert
Auf die gleiche Art einen Wert setzen geht allerdings nicht.
-
@issr4k sagte in Viessmann-Adapter mit vcontrol:
@martybr
Ließt du nach jeder Änderung an der vito.xml im ioBroker adapter neu ein?
Bei mir passiert irgendwie gar nichts mehr im Adapter.
Wenn ich „neu einlesen“ ankreuze meldet iobroker das der adapter wiederholt abstürztWas sagt denn die Log Ausgabe dazu?
Ggf Mal auf debug stellen. -
So ok?
host.ioBroker 2023-02-21 10:10:44.881 error instance system.adapter.viessmann.0 terminated with code 6 (UNCAUGHT_EXCEPTION) viessmann.0 30446 2023-02-21 10:10:44.218 error Cannot read properties of null (reading 'native') viessmann.0 30446 2023-02-21 10:10:44.217 error TypeError: Cannot read properties of null (reading 'native') at Viessmann.startAdapter (/opt/iobroker/node_modules/iobroker.viessmann/main.js:110:8) viessmann.0 30446 2023-02-21 10:10:44.216 error unhandled promise rejection: Cannot read properties of null (reading 'native') viessmann.0 30446 2023-02-21 10:10:44.215 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). host.ioBroker 2023-02-21 10:10:11.673 error instance system.adapter.viessmann.0 terminated with code 6 (UNCAUGHT_EXCEPTION) viessmann.0 30431 2023-02-21 10:10:11.001 error Cannot read properties of null (reading 'native') viessmann.0 30431 2023-02-21 10:10:11.001 error TypeError: Cannot read properties of null (reading 'native') at Viessmann.startAdapter (/opt/iobroker/node_modules/iobroker.viessmann/main.js:110:8) viessmann.0 30431 2023-02-21 10:10:10.999 error unhandled promise rejection: Cannot read properties of null (reading 'native') viessmann.0 30431 2023-02-21 10:10:10.998 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
EDIT: Habe gerade nochmal gegengecheckt. Instanz entfernen und neu installieren funktioniert. Und dein Adapter läuft wieder !
-
@issr4k Das muss ich auch immer machen, wenn ich eine der xml-Dateien ändere.
-
Klasse Idee mit diesem Thread
Ich bin leider noch bei bei der Planung der Anbindung meiner Vitocal 222-G an ioBroker.Mein Ziel:
Aktiveren /Deaktivieren des Heizsstabs über ioBroker.Hat dies schon jemand umgesetzt?
Gruß
Darth -
@darth2010 Da sind wir dran.
Allerdings scheitert das momentan noch an den genauen Datentypen bzw. wie wir die Adressen ansprechen können.
Ich kann z.B. die 790... aufrufen, aber bisher noch nicht ändern über vcontrold. Gleiches bei 5012Stand jetzt könnte es so aussehen bei z.B. einer Vitocal 222-G:
- Parametergruppe 5012 auf 0 stellen (Verdichter sperren)
- 7900 sollte auf 3 stehen (ergibt sich aber durch die Wärmepumpe selbst)
- 7901 auf 1 (Freigabe Durchlauferhitzer (DLH) für Warmwasser) je nachdem ob gewünscht EDIT: laut Handbuch doch eher die 6015 auf 1
- 7902 auf 1 (Freigabe DLH für Raumbeheizung) je nachdem ob gewünscht
- 7907 auf 1, 2 oder 3 (Max. Leistung des DLH mit 3, 6 oder 9kW, Abstufung je nach PV Leistung)
und dann ggf. noch die Solltemperaturen erhöhen: - 6000 auf zB. 60Grad (Warmwassersoll 1)
oder - 600C (Warmwassersoll 2)
dann ggf. noch - 2000 auf z.B. 24Grad (Soll-Raumtemperatur)
Ob das is der Praxis dann auch so funktioniert bzw. die Wärmepumpe das mitmacht, wird sich zeigen
Bitte immer alle Werte in der eigenen jeweiligen Serviceanleitung gegenprüfen.
-
@scrounger Hast du eine Ahnung wie man die Adressen ansprechen könnte?