NEWS
Viessmann-Adapter mit vcontrol
-
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?
-
Also so wie ich das in meiner schlauen excel sehe ist:
5012 readonly, boolean
7900 readonly, boolean
7902 readonly, boolean
@darth2010 sagte in Viessmann-Adapter mit vcontrol:
Mein Ziel:
Aktiveren /Deaktivieren des Heizsstabs über ioBroker.Das geht meines Wissen nach nicht.
Weil die Adressen zum Heizstab alle readonly sind. Außerdem müsste ich bei meiner WP den Heizstab anschalten, die Sekundärpumpe und das 3-Wege-Ventil auf WW stellen. Ebenfalls alles readonly adressen.Die einzige Möglichkeit die ich kenne geht über die WW2 Bereitung -
B020
. Und da springt der Heizstab nur mit an wenn die Hysterese für den Heizstab6008
greift.Ich hab mir einen Heizstab noch zusätzlich gekauft und den in meinem WW-Tank montiert. Der wird bei PV Überschuß per iob angesteuert. Im Sommer bleibt somit die WP komplett aus.
-
@scrounger sagte in Viessmann-Adapter mit vcontrol:
Das geht meines Wissen nach nicht.
Weil die Adressen zum Heizstab alle readonly sind. Außerdem müsste ich bei meiner WP den Heizstab anschalten, die Sekundärpumpe und das 3-Wege-Ventil auf WW stellen. Ebenfalls alles readonly adressen.Bist du sicher?
Denn die Werte lassen sich über die Vitocal direkt am Display in Codierebene 1 ja auch ändern… -
Ok da hast du natürlich recht, dann muss man die auch schreiben können. Hab gesehen das die in der Excel 2mal auftauchen und da sind sie beschreibbar.
Wie das genau geht müsste ich auch ausprobieren bzw. aus meiner vito eine Adresse mit gleichen type finden und dann entsprechend umbauen.Das sind aber nur Einstellungen die man dadurch ändert. Ein Einschalten des Heizstabes wird darüber denke ich nicht möglich sein. Ob Heizstab aktiv ist lese ich z.B. so aus:
<command name="getHeizstab_Stufe_1_aktiv" protocmd="getaddr"> <addr>0488</addr> <len>1</len> <description>Heizstab Stufe 1 ein/aus</description> <unit>BST2</unit> </command> <command name="getHeizstab_Stufe_2_aktiv" protocmd="getaddr"> <addr>0489</addr> <len>1</len> <description>Heizstab Stufe 2 ein/aus</description> <unit>BST2</unit> </command>
Schreiben ging bei den Adressen wenn ich es noch richtig im Kopf habe nicht.
-
@scrounger Habe mir deine Dateien ja auch angesehen und leider keinen passenden Typ gefunden.
Die Adresse die ich genannt habe stehen ja im Handbuch drin.
Die 0488 und 0489 nicht, wenn ich es richtig gesehen habe…Hättest du denn irgendeinen Ansatz für zB die 5012?
Edit:
Das Einschalten des Heizstabes wäre ja theoretisch die logische Konsequenz, wenn der Verdichter gesperrt ist und die Hysterese unterschritten wird (und der Heizstab auch freigegeben ist).Ich probiere das morgen mal manuell aus direkt am Display der Vitocal.
5012 auf 0 setzen
7901 auf 1 um Warmwasser über Heizstab zu erlauben und dann 1x Warmwasserbereitung.
Dabei messe ich dann den Strom an den Vorsicherungen vom Verdichter und Heizstab. -
@issr4k sagte in Viessmann-Adapter mit vcontrol:
Hättest du denn irgendeinen Ansatz für zB die 5012?
Hiermit gehts bei mir, unit
UTI
aus meiner vcontrold.xml nehmen:<command name="getFreigabeVerdichter" protocmd="getaddr"> <addr>5012</addr> <len>1</len> <description>tbd</description> <unit>UTI</unit> </command> <command name="setFreigabeVerdichter" protocmd="setaddrValue"> <addr>5012</addr> <len>1</len> <unit>UTI</unit> <description>tbd</description> </command>
Edit:
Das Einschalten des Heizstabes wäre ja theoretisch die logische Konsequenz, wenn der Verdichter gesperrt ist und die Hysterese unterschritten wird (und der Heizstab auch freigegeben ist).Ich probiere das morgen mal manuell aus direkt am Display der Vitocal.
5012 auf 0 setzen
7901 auf 1 um Warmwasser über Heizstab zu erlauben und dann 1x Warmwasserbereitung.
Dabei messe ich dann den Strom an den Vorsicherungen vom Verdichter und Heizstab.Ah ok jetzt hab ich verstanden wie du das umsetzen willst - das sollte wohl klappen. Bin gespannt auf deine Erfahrungen.
-
@scrounger Prima, damit versuche ich es. Danke!
Und das manuelle Testen ebenso. Spätestens am Wochenende.
-
@scrounger Heute Abend teste ich meine neuen xml-Dateien. Wenn das Ergebnis positiv ausfällt, dann poste ich sie hier.
-
Und ich dachte es wäre einfach von 0 auf 1 und wieder zurück, da es im Menü an der Heizung ein einfacher an/aus Punkt ist
Wieder erwas dazu gelehrnt
Bin gespannt was eure Forschungen ergeben.
Ich bin noch bei der Suche nach einem günstigen Optolink-Kabel.Gruß
Darth -
@issr4k Hast du die Commands für die 7901?
Ich teste das mal parallel bei mir durch. -
@darth2010
Leider nicht. Die Vitocal will immer lieber den Verdichter verwenden, was ja energetisch auch Sinn macht, aber der Heizstab arbeitet verschleißfrei (vorausgesetzt man übertreibt es nicht mit den Spitzentemperaturen, Stichwort Kalkausfall).
abe mein Optolink-Kabel von Kleinanzeigen ~ 35€, auf Löten hatte ich keine Lust.@MartyBr was meinst du genau 7901, kann laut meinem Handbuch nur 0 und 1. Da steht aber etwas von Wärmepumpenkaskade bei… ggf. müssen wir auf 6015 aufweichen um den Heizstab für Warmwasser zu nutzen, darauf wird zumindest bei 7900 verwiesen…
-
@issr4k Bei meinem Handbuch steht zu 6015: Wert 0 und 1
Freigabe Durchlauferhitzer 7900
Freigabe Elektroheizeinsatz (Freigabe Zusatzheizung 6014)
Das verstehe ich nicht.
Wie schaltest du die 7901? Hast du dazu ein Code-Beispiel?
Ich habe an der VitoCal den Heizstab über die Codier-Ebene 1 freigeschaltet. Über das Menü kann ich den Heizstab schalten, ich bekomme es aber nicht über Vcontrol hin. -
@martybr Ich bin leider noch nicht dazu gekommen.
Morgen im Laufe des Tages werde ich aber Erkenntnisse haben. -
@issr4k Lass dir Zeit, ich habe heute mal meine Dateien erstmal fertig bekommen. Die Lüftungswerte konnte ich noch nicht finalisieren. Ich bekomme da keine Werte. Es sollen 7D08 (Abluft-Temperatur Sollwert) und 7D1D (Quelle Raumtemperatur-Istwert).
Ich habe mir nun eine Test Vito.xml mit diesen Werten gebaut und werde ich auch morgen mal testen. -
@scrounger
@Issr4k
Ich habe versucht, die Werte abzufragen. leider stürzt vcontrold immer ab. Vielleicht hat jemand einen Tipp für mich.Hier die Test-vito.xml:
<vito> <devices> <device ID="204D" name="V200-S" protocol="P300"/> </devices> <commands> <command name="getDevType" protocmd="getaddr"> <addr>00F8</addr> <len>2</len> <unit>UN</unit> <description>Information - Allgemein: Anlagentyp (204D)</description> </command> <command name="getTempA" protocmd="getaddr"> <addr>0101</addr> <len>2</len> <unit>UT</unit> <description>Information - Allgemein: Aussentemperatur (-40..70)</description> </command> <!-- VERDICHTER --> <command name="getFreigabeVerdichter" protocmd="getaddr"> <addr>5012</addr> <len>1</len> <description>tbd</description> <unit>UTI</unit> </command> <command name="setFreigabeVerdichter" protocmd="setaddrValue"> <addr>5012</addr> <len>1</len> <unit>UTI</unit> <description>tbd</description> </command> <!-- HEIZSTAB --> <command name="getHeizstab_Stufe_1_aktiv" protocmd="getaddr"> <addr>0488</addr> <len>1</len> <description>Heizstab Stufe 1 ein/aus</description> <unit>BST2</unit> </command> <command name="getHeizstab_Stufe_2_aktiv" protocmd="getaddr"> <addr>0489</addr> <len>1</len> <description>Heizstab Stufe 2 ein/aus</description> <unit>BST2</unit> </command> <!-- LUEFTUNG --> <!-- <command name="getFortluft" protocmd="getaddr"> <addr>0A05</addr> <len>1</len> <unit>RT</unit> <description>Volumenstrom Fortluft</description> </command> <command name="getZuluft" protocmd="getaddr"> <addr>0A04</addr> <len>1</len> <unit>RT</unit> <description>Volumenstrom Zuluft</description> </command> --> </commands> </vito>
Hier die Definitionen:
<unit name='Temperatur 1Byte ganzzahlig'> <abbrev>UTI</abbrev> <calc get='V' set='V'/> <type>uchar</type> <entity>°C</entity> </unit> <unit name='Bitstatus_Boolean'> <abbrev>BST2</abbrev> <type>enum</type> <enum bytes='00' text='0'/> <enum bytes='01' text='1'/> <enum bytes='02' text='NV'/> <enum text='UNKNOWN'/> </unit>
Meine originale Vito.xml startet ohne Probleme.
-
Ich kann erfolgreichen Vollzug melden
Zwar manuell über das Display der Vitocal, aber im Vorfeld konnte ich dann auch die 5012 aktiv über iobroker > vcontrold setzen.
Danke @Scrounger !Warum bei reinen Zahlenwerten (5012 = 0-15Wertebereich) Integer nicht funktioniert verstehe ich nicht, aber stattdessen mit uchar ??!!!??? Bin halt kein Informatiker
So klappt es:
<!-- vcontrold.xml --> <unit name='Einstellwert-Test'> <abbrev>XX</abbrev> <calc get='V' set='V'/> <type>uchar</type> <entity/> </unit>
<!-- vito.xml --> <command name="setComp" protocmd="setaddrValue"> <addr>5012</addr> <len>1</len> <unit>XX</unit> <description>Freigabe Verdichter </description> </command> <command name="getComp" protocmd="getaddr"> <addr>5012</addr> <len>1</len> <unit>XX</unit> <description>Freigabe Verdichterstufe (1=WW 2=Heiz 3=WW+Heiz 15=default)</description> </command>
-
5012 auf 0 (Verdichter sperren)
-
7900 Freigabe Heizwasser-Durchlauferhitzer (DLH) beachten (bei mir automatisch auf "3", siehe Beschreibung)
-
7901 nicht aufrufbar bei der Vitocal 222-G (nur bei Kaskade) stattdessen 6015 auf 1
gleiche Einstellung wie über das normale Benutzermnü > Warmwasser > Häckchen setzen bei "WW mit Elektro"
-
ggf. 7902 auf 1
-
ggf. Leistung des Durchlauferhitzers anpassen über 7907
Den Strom habe ich wie angekündigt gemessen:
während unter Diagnose > Anlagenübersicht der Heizstab vor sich hingeblinkt hat, gab der Verdichter keinen Mucks von sich...
Die "2" links davor kennzeichnet die Leistung (7907)
Generell ist die Stromaufnahme etwas unsymmetrisch, das liegt aber an den unterschiedlichen Leistungen der Heizwiderstände:
Generell muss man sagen, dass die Visualisierung über das Display der Vitocal sehr träge ist bis etwas zu sehen ist, auch bis der Heizstab mal endlich ansprang, gingen Sekunden ins Land.
<command name="setComp" protocmd="setaddrValue"> <addr>5012</addr> <len>1</len> <unit>XX</unit> <description>Freigabe Verdichter (0=aus 1=WW 2=Heiz 3=WW+Heiz 15=default)</description> </command> <command name="setHeaterforWW" protocmd="setaddrValue"> <addr>6015</addr> <len>1</len> <unit>XX</unit> <description>Druchlauferhitzer für Warmwasser aktivieren</description> </command> <command name="setHeaterforRoomtemp" protocmd="setaddrValue"> <addr>7902</addr> <len>1</len> <unit>XX</unit> <description>Durchlauferhitzer für Heizung aktivieren</description> </command> <command name="setHeater" protocmd="setaddrValue"> <addr>7907</addr> <len>1</len> <unit>XX</unit> <description>Leistung Durchlauferhitzer (1=3, 2=6 oder 3=9kW)</descript> </command>
-