NEWS
Viessmann-Adapter mit vcontrol
-
@hoizi1994
Eine Frage: Welche WP hast du im Einsatz? Die Steuerung war doch eine WO1C? Richtig?
Kannst du mir bitte mal deine beiden Xml-Dateien schicken?
Ich mache einen neuen Versuch mit VControld, da die API trotz Abonnement der Advanced Api immer noch nicht alle Werte liefert.
Ich habe im Developer Channel eine entsprechende Anfrage gestellt. -
Ihr dürft die Abzock-Modelle von Viessmann nicht unterstützen !
-
@issr4k
Ich habe mich auch lange gestreubt. Ich habe gerade eine Antwort von Viessmann bekommen:
Sowohl über die Vicare App als auch über die API lässt sich der heatingRod NICHT steuern.
Daher gehe ich wahrscheinlich wieder auf VControld.Ich werde wohl "schlank" anfangen. Gottseidank habe ich den Raspi unverändert aufbewahrt. Nun stört auch keine VitoComfort mehr, die habe ich aufs Altenteil gesetzt.
Ich fahre die WP nun ohne Raumregler, daher reicht mir VitoConnect und die ViCare App. -
@martybr sagte in Viessmann-Adapter mit vcontrol:
@mcbeath
Bei mir hatte das Update (oder eher die Neuinstallation) auf Bookworm geholfen. Danach keine Abbrüche mehr.
Ansonsten schau die "linux-Control" an. Damit kannst du einen Linux-Rechner aus ioBroker steuern und Befehle absetzen.@MartyBr
Ich wollte hier noch eine Rückmeldung zu den abstürzen geben.
Habe den pi4 mit Bookworm ( was aber schon drauf war ) neu aufgesetzt und vcontrold neu eingerichtet.
Was soll, ich sagen, seit 4 Tagen habe ich keinen absturz mehr gehabt.
Auch ser2net läuft jetzt störungsfreiDanke für den Tipp
Dann kann ich mich jetzt an die Register machen
-
Ich hoffe das mit den Adressen abfragen kann mir mal einer erkären.
Hatte in der Vito.xml mal folgende Adresse angelegt.
<command name="getVerdicher_Druck" protocmd="getaddr"> <addr>1610</addr> <len>2</len> <unit>UT</unit> <description>Verdichter Druck</description> </command>
bekomme dann aber die Fehlermeldung: "Vctrld send ERROR: ERR: command unknown"
Habe dann mal experimentiert und die Abfrage der AT geändert.
addr von 0101 auf 1610<command name="getAussentemperatur" protocmd="getaddr"> <addr>1610</addr> <len>2</len> <unit>UT</unit> <description>Ermittle Aussentemperatur in Grad C (-40..70)</description> </command>
Ergebnis, ich erhalte wie gehabt die Außentemperatur!?!?!
Wie lege ich denn neue Abfragen an?
Wollte diese Adresse versuchen aus der Vitosoft.<EventType> <ID>WPR_gemitteltDruck_Verdampfungsdruck_Verdichter1~0x1610</ID> <Description>@@viessmann.eventtype.WPR_gemitteltDruck_Verdampfungsdruck_Verdichter1.description</Description> <SDKDataType>Double</SDKDataType> <Unit>ecnUnit.Bar (absolut)</Unit> <AccessMode>Read</AccessMode> <Conversion>Div10</Conversion> <ConversionFactor>0</ConversionFactor> <ConversionOffset>0</ConversionOffset> <Address>0x1610</Address> <FCRead>Virtual_READ</FCRead> <FCWrite>undefined</FCWrite> <Parameter>SInt</Parameter> <BlockLength>2</BlockLength> <BytePosition>0</BytePosition> <ByteLength>2</ByteLength> <BitPosition>0</BitPosition> <BitLength>0</BitLength> <BlockFactor>0</BlockFactor> <MappingType>0</MappingType> </EventType>
-
@mcbeath
Die Außentemperatur bekommst du über<command name="getAussentemperatur" protocmd="getaddr"> <addr>0101</addr> <len>2</len> <unit>UT</unit> <description>Aussen Temperatur Sensor</description> </command>
Das ist der Datenpunkt 0101.
Du kannst hier in den Thread verschiedene XML-Dateien suchen und die passende dann anpassen.
-
@martybr sagte in Viessmann-Adapter mit vcontrol:
@mcbeath
Die Außentemperatur bekommst du über<command name="getAussentemperatur" protocmd="getaddr"> <addr>0101</addr> <len>2</len> <unit>UT</unit> <description>Aussen Temperatur Sensor</description> </command>
Das ist der Datenpunkt 0101.
Du kannst hier in den Thread verschiedene XML-Dateien suchen und die passende dann anpassen.
Das war mir klar, die AT funktioniert ja auch.
Ich möchte ja einen neuen Datenpunkt anlegen und scheitere ja schon beim neuen "getVerdicher_Druck" Befehl.
Oder muss ich nach anpassen der vito.xml mehr als nur im Adapter die vito.xml neu einlesen lassen?
Braucht vcontrold auch einen Neustart oder ähnliches? -
@mcbeath hatte deinen Text nicht vollständig gelesen. Ich bezog mich auf dein Code-Beispiel.
Ich starte den Raspi immer komplett neu, das geht schnell und funktioniert.
Ansonsten den vcontrold-Dienst neu starten.P.S.
Ich habe viessmannapi wieder gekündigt und arbeite wieder mit vcontrold.Welche WP setzt du ein? Vielleicht können wir gemeinsam an einigen Datenpunkten arbeiten. Mir fehlen die Energiewerte in Vcontrold. In der Viessmannapi konnte man wunderschön den Energieeinsatz (Stromverbrauch) und die Wärmeproduktion ablesen und somit den COP berechnen. In vcontrold lese ich den COP aus aber beide Werte werden schon praktisch. Vielleicht kannst du mir hierbei helfen?
-
Ich habe eine Vitocal A200 mit einer VT200 und W01C.
Deine vito.xml ist bei mir auch im Betrieb, aber viele Datenpunkte gehen nicht.nach neustart von vcontrold bekomme ich jetzt folgende Meldung.
Bedeutet dies 1610 gibt es nicht oder stimmt was mit der "unit" nicht?
Du kennst ja bestimmt schon die Fehlermeldungen.Vctrld send ERROR: ERR: >FRAMER: ERROR address 1610 code 4Error in recv, terminatingError executing getVerdichter_Druck
-
@mcbeath Nein, die kenne ich nicht, da ich den Datenpunkt 1610 nicht nutze.
Schade, der wäre bestimmt interessant geworden.Nutzt du Energieauswertung/abfrage?
-
@martybr sagte in Viessmann-Adapter mit vcontrol:
.. In der Viessmannapi konnte man wunderschön den Energieeinsatz (Stromverbrauch) und die Wärmeproduktion ablesen und somit den COP berechnen. ..
Wie du weißt, ermittle ich derzeit ja auch noch (sozusagen zu Fuß) aus den Daten der ViCare App den COP. In dem Viessmann Adapter von ioBroker sollten ja diese Daten enthalten sein, auch ohne das teure Abo buchen zu müssen. Leider stimmen die Werte aus beiden Quellen nicht überein. Schlimmer noch: Die Daten im Adapter - bzw. der ViessmannApi - sind völlig unübersichtlich/chaotisch. Da kann man nur raten, was gemeint sein könnte. Fiesmann halt!
Schade, dass deine WP sich nicht mit openE3 auslesen lässt. Damit lässt sich offensichtlich all das, was wir uns hier wünschen auslesen.
-
@legro
Die Daten in der Vikare App über den ViessmannApi Adapter ausgelesen waren schon sehr gut. Ich konnte den aktuellen Strombedarf der WP in W auslesen und auch gleichzeitig die erreichten Wärmewerte.Diese Werte waren mehr oder weniger die Ergänzung zum kostenlosen Angebot API. Ich konnte noch nicht einmal den Heizstab steuern. Ich habe daher auch das Advanced Paket (in der Testphase möglich) wieder gekündigt.
Also Wärmewerte dividiert durch eingesetzte Leistung hat direkt den COP Wert geliefert.
Nun lese ich den COP Wert direkt aus der WP mittels VControld aus. Ich hätte aber gerne auch die zugrundeliegen Werte
Ja, da bedauere ich auch. Es gibt scheinbar ein zur WAGO vergleichbaren Baustein für den KM-BUS, aber nach deinen Erfahrungen verzichte ich gerne darauf.
OpenE3 ist eine super Lösung, leider nicht kompatibel zu meiner WP.
-
@martybr sagte in Viessmann-Adapter mit vcontrol:
@mcbeath hatte deinen Text nicht vollständig gelesen. Ich bezog mich auf dein Code-Beispiel.
Ich starte den Raspi immer komplett neu, das geht schnell und funktioniert.
Ansonsten den vcontrold-Dienst neu starten.P.S.
Ich habe viessmannapi wieder gekündigt und arbeite wieder mit vcontrold.Welche WP setzt du ein? Vielleicht können wir gemeinsam an einigen Datenpunkten arbeiten. Mir fehlen die Energiewerte in Vcontrold. In der Viessmannapi konnte man wunderschön den Energieeinsatz (Stromverbrauch) und die Wärmeproduktion ablesen und somit den COP berechnen. In vcontrold lese ich den COP aus aber beide Werte werden schon praktisch. Vielleicht kannst du mir hierbei helfen?
Hey MartyBr
ich habe jetzt für meinen Kältekreis fast alle Werte gefunden.
12 Werte des Kältekreises. Manches sogar Doppelt....
Auch die Heizkreis VL Temperatur ist gefunden und dabei noch
unverhoffterweise wohl auch die Drehzahl der Sekundärpumpe, bin aber noch am auswertenBis zum COP oder Leistungswerten bin ich noch nicht.
Dafür sind aber die Werte Leistung in % vom Lüfter, Kompressor und Sekundärpumpe bestätigt. -
@mcbeath
Das klingt doch gut. Kannst du deine gefundenen Datenpunkte posten?
Ich würde dann die DPs nachstellen, ob sie auch an meiner WP funktionieren. -
@martybr
Folgt noch. die Stehen dezeit noch unschön auf dem Zettel und die Vito.xml
sieht noch recht wüst aus.Wenn die gecleant ist Poste ich das hier
-
Habe hier mal die Liste der Adressen die bei mir zumindest "0.0" und keinen Fehler ausgeben.
Einige sind doppelt (gleiche Werte auf verschiedenen Adressen). Manche bringen nur "0.0"
Die description ist teils nur von Viessmann übernommen und die unit ist alles UT (1/10 °C) noch nicht überarbeitet.
Wie erwähnt ist das nur eine Liste Grob ausgesiebter Datenpunke meiner A200.Vielleicht hilft es dennoch dem einen oder Anderen schon weiter
<command name="getVED" protocmd="getaddr"> <addr>1618</addr> <len>3</len> <unit>UT</unit> <description>Verdampfungsdruck Verdichter</description> </command> <command name="getKD1" protocmd="getaddr"> <addr>06B2</addr> <len>3</len> <unit>UT</unit> <description>Kondensatordruck</description> </command> <command name="getSD1" protocmd="getaddr"> <addr>06B0</addr> <len>3</len> <unit>UT</unit> <description>Saugdruck</description> </command> <command name="getSGD" protocmd="getaddr"> <addr>B410</addr> <len>3</len> <unit>UT</unit> <description>Sauggasdruck</description> </command> <command name="getHGD" protocmd="getaddr"> <addr>B411</addr> <len>3</len> <unit>UT</unit> <description>Heissgasdruck</description> </command> <command name="getEEV1-1" protocmd="getaddr"> <addr>5086</addr> <len>2</len> <unit>UT</unit> <description>EEV1-5086</description> </command> <command name="getEEV1-2" protocmd="getaddr"> <addr>5092</addr> <len>2</len> <unit>UT</unit> <description>EEV1-5092</description> </command> <command name="getEEV1-3" protocmd="getaddr"> <addr>5097</addr> <len>2</len> <unit>UT</unit> <description>EEV1-5097</description> </command> <command name="getEEV1-4" protocmd="getaddr"> <addr>5098</addr> <len>2</len> <unit>UT</unit> <description>EEV1-5098</description> </command> <command name="getgVKD" protocmd="getaddr"> <addr>1612</addr> <len>3</len> <unit>UT</unit> <description>gemittelter Kondensationsdruck Verdichter </description> </command> <command name="getTAVT" protocmd="getaddr"> <addr>1804</addr> <len>2</len> <unit>UT</unit> <description>Anlagenvorlauf Solltemperatur</description> </command> <command name="getTHK2" protocmd="getaddr"> <addr>1801</addr> <len>2</len> <unit>UT</unit> <description>Vorlauftemperatur HK2 </description> </command> <command name="getTPQ" protocmd="getaddr"> <addr>7415</addr> <len>2</len> <unit>UT</unit> <description>Primerquelle</description> </command> <command name="getTVD1" protocmd="getaddr"> <addr>5003</addr> <len>2</len> <unit>UT</unit> <description>Verdichter1</description> </command> <command name="getTEEV1-1" protocmd="getaddr"> <addr>5088</addr> <len>2</len> <unit>UT</unit> <description>EEV1 5088</description> </command> <command name="getTEEV1-2" protocmd="getaddr"> <addr>5089</addr> <len>2</len> <unit>UT</unit> <description>EEV1 5089</description> </command> <command name="getTEEV1-4" protocmd="getaddr"> <addr>5095</addr> <len>2</len> <unit>UT</unit> <description>EEV1 5095</description> </command> <command name="getTEEV1-5" protocmd="getaddr"> <addr>5212</addr> <len>2</len> <unit>UT</unit> <description>EEV1 5212</description> </command> <command name="getTEEV1-6" protocmd="getaddr"> <addr>5221</addr> <len>2</len> <unit>UT</unit> <description>EEV1 5221</description> </command> <command name="getTEEV1-7" protocmd="getaddr"> <addr>5223</addr> <len>2</len> <unit>UT</unit> <description>EEV1 5223</description> </command> <command name="getTVKE" protocmd="getaddr"> <addr>500D</addr> <len>3</len> <unit>UT</unit> <description>Verdampferkreis Eintritt</description> </command> <command name="getTVKA" protocmd="getaddr"> <addr>5010</addr> <len>2</len> <unit>UT</unit> <description>Verdampferkreis Austritt</description> </command> <command name="getTVKEg" protocmd="getaddr"> <addr>5036</addr> <len>2</len> <unit>UT</unit> <description>Verdampferkreis Eintritt gedaempft</description> </command> <command name="getTFG" protocmd="getaddr"> <addr>B404</addr> <len>3</len> <unit>UT</unit> <description>Fluessiggastemperatur</description> </command> <command name="getTSAM" protocmd="getaddr"> <addr>B432</addr> <len>3</len> <unit>UT</unit> <description>Temperatur Sammler</description> </command> <command name="getTVER" protocmd="getaddr"> <addr>B407</addr> <len>3</len> <unit>UT</unit> <description>Temperatur Verdampfung</description> </command> <command name="getTKON" protocmd="getaddr"> <addr>B408</addr> <len>3</len> <unit>UT</unit> <description>Temperatur Kondensation</description> </command> <command name="getTSG" protocmd="getaddr"> <addr>B409</addr> <len>3</len> <unit>UT</unit> <description>Temperatur Sauggas</description> </command> <command name="getTHG" protocmd="getaddr"> <addr>B40A</addr> <len>3</len> <unit>UT</unit> <description>Temperatur Heissgas</description> </command> <command name="getTPV" protocmd="getaddr"> <addr>B400</addr> <len>3</len> <unit>UT</unit> <description>Primaer Vorlauf Temperatur</description> </command> <command name="getTPR" protocmd="getaddr"> <addr>B401</addr> <len>3</len> <unit>UT</unit> <description>Primaer Ruecklauf Temperatur</description> </command> <command name="getTSV" protocmd="getaddr"> <addr>B402</addr> <len>3</len> <unit>UT</unit> <description>Sekunder Vorlauf Temperatur</description> </command> <command name="getTSR" protocmd="getaddr"> <addr>B403</addr> <len>3</len> <unit>UT</unit> <description>Sekunder Ruecklauf Temperatur</description> </command> <command name="getTFG1" protocmd="getaddr"> <addr>B484</addr> <len>3</len> <unit>UT</unit> <description>Fluessiggas</description> </command> <command name="getTFG2" protocmd="getaddr"> <addr>B485</addr> <len>3</len> <unit>UT</unit> <description>Fluessiggas</description> </command> <command name="getTDUK" protocmd="getaddr"> <addr>B40D</addr> <len>3</len> <unit>UT</unit> <description>Delat Unterkühlung</description> </command> <command name="getLVD" protocmd="getaddr"> <addr>B423</addr> <len>2</len> <unit>UT</unit> <description>Leitung Verdichter Prozentg</description> </command> <command name="getLPQ" protocmd="getaddr"> <addr>B420</addr> <len>2</len> <unit>UT</unit> <description>Leitung Primerquelle Prozent</description> </command> <command name="getLSP" protocmd="getaddr"> <addr>B421</addr> <len>2</len> <unit>UT</unit> <description>Leitung Serkunderpumpe Prozent</description> </command> <command name="getTVHK2" protocmd="getaddr"> <addr>01D4</addr> <len>3</len> <unit>UT</unit> <description>Vorlauftemperatur HK2</description> </command> <command name="getASKP" protocmd="getaddr"> <addr>B4C1</addr> <len>1</len> <unit>UT</unit> <description>Ausgang Sekundaerpumpe</description> </command> <command name="getDZSP" protocmd="getaddr"> <addr>B4A1</addr> <len>2</len> <unit>UT</unit> <description>Drehzahl Sekundaerpumpe</description> </command> <command name="getTPrVL" protocmd="getaddr"> <addr>01C3</addr> <len>3</len> <unit>UT</unit> <description>Primer VL Temp.</description> </command> <command name="getTPrRL" protocmd="getaddr"> <addr>01C4</addr> <len>3</len> <unit>UT</unit> <description>Primer RL Temp.</description> </command> <command name="getFKo" protocmd="getaddr"> <addr>1A54</addr> <len>1</len> <unit>UT</unit> <description>Frequenz Kompressor</description> </command> <command name="getFV1" protocmd="getaddr"> <addr>1003</addr> <len>3</len> <unit>UT</unit> <description>Frequenz Verdichter</description> </command> <command name="getTime" protocmd="getaddr"> <addr>08E0</addr> <len>8</len> <unit>UT</unit> <description>Datum</description> </command> <command name="getSHK2" protocmd="getaddr"> <addr>048E</addr> <len>1</len> <unit>UT</unit> <description>HK Pumpe</description> </command> <command name="getSMi" protocmd="getaddr"> <addr>0600</addr> <len>8</len> <unit>UT</unit> <description>Mischer</description> </command> <command name="getTSO" protocmd="getaddr"> <addr>01CD</addr> <len>3</len> <unit>UT</unit> <description>Temp. Speicher Oben</description> </command> <command name="getTSU" protocmd="getaddr"> <addr>01CE</addr> <len>3</len> <unit>UT</unit> <description>Temp. Speicher Unten</description> </command> <command name="getRLP" protocmd="getaddr"> <addr>0496</addr> <len>1</len> <unit>UT</unit> <description>Relais Ladepumpe</description> </command> <command name="getRZP" protocmd="getaddr"> <addr>0490</addr> <len>1</len> <unit>UT</unit> <description>Relais Zirkulation</description> </command> <command name="getCOP1" protocmd="getaddr"> <addr>1690</addr> <len>1</len> <unit>UT</unit> <description>COP V1</description> </command> <command name="getCOP2" protocmd="getaddr"> <addr>1691</addr> <len>1</len> <unit>UT</unit> <description>COP V2</description> </command>
-
Hätte da noch eine Frage.
In meinel log kommt zu jeder Datenpunkt Abfrage die Meldung...State value to set for "viessmann.0.get.StatusVentilWW" has to be type "string" but received type "number"
Wie kann ich das denn abstellen?
Im IOB ist der Datenpunkt auf "number" gestellt, ändere ich das auf "string" ist die Meldung unverändert!Ist da irgendwo was in der vito.xml zu ändern?
-
@mcbeath Also, ich habe die entsprechenden Datenpunkte unter Objekte im ioBroker auf den gewünschten Wert gesetzt. In diesem Fall wäre das beim Beispiel "Zahl" oder "number".
Möglicherweise kann man das auch in der Vito.xml umstellen. In der Definition einen Int-Wert dem Datenpunkt zuweisen. -
Das letztere wäre der korrekte Weg. Der Andere geht aber auch
-
@martybr
Komisch, hatte ich eben schon mal probiert, aber jetz funktioniert alles