NEWS
Viessmann-Adapter mit vcontrol
-
@hoizi1994
Genau. Zuerst das Basisbetriebssystem installieren. Ich habe dort nun Debian 12 Bookworm laufen, das hat den udev Fehler nicht mehr.Danach vcontrold nach Anweisung installieren, den USB Port richtig eintragen und die xml Dateien ins Verzeichnis kopieren.
Ich würde zuerst nicht einer abgespeckten vito.xml beginnen und schauen, ob überhaupt Werte kommen. Zum testen wird gerne die Außentemperatur herangezogen.
Viel Erfolg. -
Lassen sich auch einzelne commands in putty etc. auslesen und schreiben um die Datenpunkte zu testen? Oder wie wird das gemacht zum testen?
Lg.
-
@hoizi1994
Das kannst du machen. Die Anleitung in openV ist sehr gut:https://github.com/openv/openv/wiki/vcontrold-mit-Raspberry-Pi
In Kürze:
- Per SSH (oder per Putty) auf das System aufschalten
- Per Telnet sich mit Vcontrold verbinden (telnet localhost 3002)
- Werte abfragen (z.B. getTempA)
-
@martybr ach gott das habe ich übersehen danke
-
@martybr said in Viessmann-Adapter mit vcontrol:
@issr4k Danke. Das teste ich morgen und gebe hier Rückmeldung.
Ich suche weiterhin verzweifelt Datenpunkte der VitoVent. Genauer die Temperaturen für Zuluft und Abluft. Die Volumenströme habe ich gefunden, die stehen auch in meinem Handbuch der Vitocom Steuerung.
Im FHEM Forum hat eine User geschrieben, dass die Datenpunkte 3 Bit Länge haben, und auf 2-Bit umgerechnet werden müssen:POLL, 01F70A0302, 2ByteS, 10, Fortlufttemperatur , - POLL, 01F70A0102, 2ByteS, 10, Zulufttemperatur , - POLL, 01F70A0202, 2ByteS, 10, Ablufttemperatur
Das sind dann die Datenpunkte "0A01" bis "0A03". Die Datenpunkte "F0A0" etc. kann ich ohne Probleme auslesen.
Hallo zusammen, ich habs zumindest für einige Werte gelöst. Hab in einem anderen Thread noch einen Tipp gefunden: Man muss das als drei Bytes lesen aber als zwei interpretieren (fragt mich nicht, was man rauchen muss, um auf solche Konstrukte zu kommen). Hier mal der Ausschnitt aus meiner Konfig für eine WO1C Wärempumpe mit angebunder Vitovent 300W Lüftung: Code: [Auswählen] # Lüftung POLL, 01F7B00501, 1ByteU, 1, Lueftung_Betriebsart , - SET, Einstellung_Lueftung, 01F4B00501, 1ByteU , - # kann man dann mit 66 auf Intensivbetrieb setzen POLL, 01F70A7E01, 1ByteH, 1, Lueftung_Betriebsprogramm , - POLL, 01F70A0103, 2ByteS, 10, Lueftung_Zulufttemperatur , - POLL, 01F70A0203, 2ByteS, 10, Lueftung_Ablufttemperatur , - POLL, 01F70A0003, 2ByteS, 10, Lueftung_AussentemperaturLueftung , - POLL, 01F70A0403, 2ByteU, 1, Lueftung_Zuluft_Volumenstrom, - POLL, 01F70A0C03, 2ByteS, 1, Lueftung_Elek_Vorheiz, - POLL, 01F70A0D03, 2ByteU, 1, Lueftung_Bypass, - POLL, 01F70A0E03, 2ByteU, 1, Lueftung_Filterstandzeit, - POLL, 01F70A0303, 2ByteS,10 ,Lueftung_Fortlufttemperatur, - POLL, 01F70A0503, 2ByteU,1 ,Lueftung_Fortluft_Volumenstrom, - POLL, 01F70A0403, 2ByteU,1 ,Lueftung_Zuluft_Volumenstrom, - Für Fortluft- und Zulufttemperatur funktioniert es damit leider nicht, passt aber, so lange die anderen beiden Temperaturen gescheite Werte liefern. Noch ein komisches Phänomen: Die geänderte Einstellung für Intensivbetrieb bei SET wird erst übernommen wenn das Byte nochmal per POLL ausgelesen wird. Weiss jemand zufällig wie man das evtl. noch umgehen kann? Danke, mohel
Hier der LinK:
https://forum.fhem.de/index.php?topic=104786.0Wie sieht denn hier aus hat hier jemand ne Vitovent 200w? Würde hier gerne so wie beim 1 malige Warmwasserbereitung die Intensiv Lüftung 1x aktivieren würde hier lediglich die Adresse auf B005 zum austauschen reichen?
-
@hoizi1994 Bei der Vitovent kannst du hier nur auf Marty hoffen.
Alternativ schau hier mal https://github.com/philippoo66/ViessData21 -
@hoizi1994
Ich habe die Vitovent 300F. Die 200W hat andere Datenpunkte. Versuch mal die Werte zu bekommen. Sind die in deinem Handbuch beschrieben? Teste mal mit einem Wert. Bei mir war es auch ein langwieriges Recherchieren, bis ich die richtigen Werte gefunden hatte.
Zeige mal deine xml-Dateien, vielleicht finde ich das was. -
so hab jetzt alles mal so beinander
leider startet der Adapter im Iobroker nicht da keine Verbindung zum Host ist, andere IP also diese eingetragen mit den SSH Zugangs Daten leider tut sich nix. Wie könnt ich prüfen an was es liegt per Telnet über SSH funktioniert alles soweit
hat da wer ne idee?
hat sich erledigt hab das problem gefunden danke trotzdem musste den adapter löschen und neu laden dann gings
-
Hey Leute,
Wie ich hier so lese habt ihr eure Viessmann mit Optolink und vcontrol ja am laufen.Hätte denn jemand für einen absoluten Anfänger eine step by step
Anleitung wie und was ich installieren und konfigurieren muss?Hab einen Pi4 neben der Heizung und das Optolink Kabel ist vorhanden und angeschlossen.
Auf dem Pi läuft der iobroker und der Viessmann Adapter ist drauf.Wie bekomme ich denn jetzt das Kabel zum Adapter durch gereicht?
Vcontrol muss her und irgendwie konfiguriert werden!?!Wäre sehr dankbar für die Erleuchtung.
-
@mcbeath Hier ist eine gute Anleitung zur Installation der Software "VControld":
https://github.com/openv/openv/wiki/vcontrold-mit-Raspberry-Pi -
@mcbeath hatte das selbe thema die vergangen 2 wochen auch vor mir war nicht so easy mMn bin aber aktuell nur soweit dass ich daten abfragen kann kannst mir ruhig auch nachtrichten schreiben wenn was unklar ist an der Installation
-
@martybr
Weißt du ob es generell möglich ist die Heizkreispumpe (Mischer) ein bzw. auszuschalten?
Bei mir ist das die Adresse 048E, lesen geht ohne Probleme, aber schreiben will er nicht.vito.xml - Adresse 048E
<command name="getHK2_Heizkreispumpe_aktiv" protocmd="getaddr"> <addr>048E</addr> <len>1</len> <description>Heizstab Stufe 1 ein/aus</description> <unit>BST2</unit> </command>
vcontrold.xml - Definition BST2
<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>
-
@hoizi1994
Hey hoizi,
Auf das Angebot komme ich doch gerne zurück.
Verbindung steht soweit, bekomme wohl noch keine Daten.
Schätze es liegt an der ID in der vcontrold.xmd.Wer weis wo ich diese her bekomme?
Vitokal A200 - VT 200 (WO1C)Habe was in der ecnDataPointType.xml der Vitosoft gefunden...
<DataPointType> <ID>V200GW1</ID> <Description>Allgemeine Produktbeschreibung: Vitotronic 200 GW1</Description> <Identification>20A4</Identification> <IdentificationExtension>0100</IdentificationExtension> <IdentificationExtensionTill>0106</IdentificationExtensionTill> <Options>undefined</Options> <EventOptimisation>0</EventOptimisation> <ControllerType>2</ControllerType> <ErrorType>1</ErrorType> </DataPointType> <DataPointType>
Ist die 20A4 meine ID?
-
Laut Github ist es wohl die "204D" meine ID.
Gerät ...................... ID ............... Protokoll....Produkt...................................Beschreibung
Vitotronic 200 .....204D............300,KW2....Vitotronic 200 (WO1C) .....Wärmepumpenregelung (Vitocal 2xx-G/3xx-G mit Vitotronic 200 (Typ WO1C)Und wenn ich die 204D in der Vcontrold.xml eintrage erhalte ich die Meldung "204D nicht definiert"
Im Viessmann Adapter steht unter Informationen zur Geizungsanlage aber auch immer nur die "2098" drin.
Bekommen ein paar Werte schonmal angezeigt aber die sind nicht zu gebrauchen.
Bauche wohl eine andere vito.xml?!? -
@scrounger sagte in Viessmann-Adapter mit vcontrol:
@martybr
Weißt du ob es generell möglich ist die Heizkreispumpe (Mischer) ein bzw. auszuschalten?
Bei mir ist das die Adresse 048E, lesen geht ohne Probleme, aber schreiben will er nicht.vito.xml - Adresse 048E
<command name="getHK2_Heizkreispumpe_aktiv" protocmd="getaddr"> <addr>048E</addr> <len>1</len> <description>Heizstab Stufe 1 ein/aus</description> <unit>BST2</unit> </command>
Der Name und die Beschreibung unterscheiden sich (Pumpe vs. Heizstab). Das ist aber nur ein kosmetischer Fehler. Schreiben musst du natürlich mit dem setHK2_Heizkreispumpe.
Bei meiner Anlage funktioniert zum Auslesen
<command name="getStatusPumpe" protocmd="getaddr"> <addr>048D</addr> <len>1</len> <unit>RT</unit> <description>Status HK1: Heizkreispumpe (0..1)</description> </command>
mit folgender Definition:
<unit name='ReturnStatus'> <abbrev>RT</abbrev> <type>enum</type> <enum bytes='00' text='0'/> <enum bytes='01' text='1'/> <enum bytes='02' text='EIN'/> <enum text='NOT OK'/> </unit>
Die >048D< scheint damit für den zweiten HK zu stehen. Das sieht also richtig aus.
Das schalten funktioniert bei mir (auch) nicht.
Ich muss mal die vito.xml um den Set-Befehl ergänzen. Vielleicht kann ich dann mehr dazu sagen. -
@mcbeath ein wenig weiter oben sind die xml datein von MartyBr die find ich top kann ich nahezu 1zu1 nehmen
-
@martybr said in Viessmann-Adapter mit vcontrol:
@hoizi1994
Ich habe die Vitovent 300F. Die 200W hat andere Datenpunkte. Versuch mal die Werte zu bekommen. Sind die in deinem Handbuch beschrieben? Teste mal mit einem Wert. Bei mir war es auch ein langwieriges Recherchieren, bis ich die richtigen Werte gefunden hatte.
Zeige mal deine xml-Dateien, vielleicht finde ich das was.So das was ich rausgefunden habe sind nur die Datenpunkte um den volumenstrom der lüftung in % zu ändern
B005 habe ich bis jetzt nur 2 und 66 rausbekommen 66 war die intensivlüftung wenn mans an der steuerung manuell startet 2 dürfte der betriebsmodus für die zeitsteuerung sein oder so
Doch wie man in den Leistungsstufen unschaltet bekam ich noch nicht raus. Evtl. hast ein paar tipps wie ich so was rausfinden könnte
-
@hoizi1994 Ich habe auch nur die große Suchmaschine und mein Handbuch durchsucht.
Evtl. findest du in anderen Foren Infos über die 200W, z,B. FHEM:
https://forum.fhem.de/index.php?topic=104786.0Das war auch bei meiner 300F eine Sucherei, bis ich die richtigen Werte gefunden habe.
Edit:
Schau mal hier:# Lüftung POLL, 01F7B00501, 1ByteU, 1, Lueftung_Betriebsart , - SET, Einstellung_Lueftung, 01F4B00501, 1ByteU , - # kann man dann mit 66 auf Intensivbetrieb setzen POLL, 01F70A7E01, 1ByteH, 1, Lueftung_Betriebsprogramm , - POLL, 01F70A0103, 2ByteS, 10, Lueftung_Zulufttemperatur , - POLL, 01F70A0203, 2ByteS, 10, Lueftung_Ablufttemperatur , - POLL, 01F70A0003, 2ByteS, 10, Lueftung_AussentemperaturLueftung , - POLL, 01F70A0403, 2ByteU, 1, Lueftung_Zuluft_Volumenstrom, - POLL, 01F70A0C03, 2ByteS, 1, Lueftung_Elek_Vorheiz, - POLL, 01F70A0D03, 2ByteU, 1, Lueftung_Bypass, - POLL, 01F70A0E03, 2ByteU, 1, Lueftung_Filterstandzeit, - POLL, 01F70A0303, 2ByteS,10 ,Lueftung_Fortlufttemperatur, - POLL, 01F70A0503, 2ByteU,1 ,Lueftung_Fortluft_Volumenstrom, - POLL, 01F70A0403, 2ByteU,1 ,Lueftung_Zuluft_Volumenstrom, -
Hier kommt deine B005 vor: 01F4B00501
Versuche mal die Werte aus der Tabelle und lass vorne die ersten 4 Zeichen und hinten die letzten 2 Zeichen weg.
-
@martybr oke danke für die Info
Hätte da noch ne frage zu den .xml wie sollte die vcontrold aussehen wenn ich eine setadrr66 machen würde für die intensiv Lüftung
muss ich da von deiner vcontrold.xml noch was hinzufügen ?
für die Vito dachte ich an sowas oder sehe ich da was falsch?
<command name="setIntensivLueftung" protocmd="setaddr66"> <addr>B005</addr> <len>1</len> <unit>ST</unit> <description>Intensiv Lueftung</description> </command>
bin hier leider ganz neu in dem Thema und finde nichts ähnliches im Inet
lg. und danke
-
@hoizi1994
Ich hatte in meiner vcontrold.xml folgende Protokolle definiert:<protocols> <protocol name='P300'> <pid>41</pid> <macros> <macro name='GETADDR'> <command>SEND 00 01</command> </macro> </macros> <commands> <command name="getaddr"> <send>GETADDR $addr $hexlen;RECV $len $unit</send> </command> <command name="setaddr"> <send>SEND 00 02 $addr $hexlen BYTES;RECV 1 SR</send> </command> <command name="setaddrValue"> <send>SEND 00 02 $addr $hexlen;SEND BYTES $unit;RECV 1 SR</send> </command> <command name="setaddr0"> <send>SEND 00 02 $addr $hexlen 00;RECV 1 SR</send> </command> <command name="setaddr1"> <send>SEND 00 02 $addr $hexlen 01;RECV 1 SR</send> </command> <command name="setaddr2"> <send>SEND 00 02 $addr $hexlen 02;RECV 1 SR</send> </command> <command name="setaddr16"> <send>SEND 00 02 $addr $hexlen A0 00;RECV 2 SR</send> </command> <command name="setaddr17"> <send>SEND 00 02 $addr $hexlen AA 00;RECV 2 SR</send> </command> <command name="setaddr18"> <send>SEND 00 02 $addr $hexlen B4 00;RECV 2 SR</send> </command> <command name="setaddr19"> <send>SEND 00 02 $addr $hexlen BE 00;RECV 2 SR</send> </command> <command name="setaddr20"> <send>SEND 00 02 $addr $hexlen C8 00;RECV 2 SR</send> </command> <command name="setaddr21"> <send>SEND 00 02 $addr $hexlen D2 00;RECV 2 SR</send> </command> <command name="setaddr22"> <send>SEND 00 02 $addr $hexlen DC 00;RECV 2 SR</send> </command> <command name="setaddr23"> <send>SEND 00 02 $addr $hexlen E6 00;RECV 2 SR</send> </command> <command name="setaddr24"> <send>SEND 00 02 $addr $hexlen F0 00;RECV 2 SR</send> </command> <command name="setaddr25"> <send>SEND 00 02 $addr $hexlen FA 00;RECV 2 SR</send> </command> <command name="setaddr45"> <send>SEND 00 02 $addr $hexlen C2 01;RECV 2 SR</send> </command> <command name="setaddr55"> <send>SEND 00 02 $addr $hexlen 26 02;RECV 2 SR</send> </command> <command name="setfunc"> <send>SEND 00 07 $addr 02 02;SEND BYTES $unit;RECV $len</send> </command> </commands> </protocol> </protocols>
Vielleicht kannst du ja ein Protokoll übernehmen oder dir ein neues bauen.
Welche Werte musst du in B005 schreiben?