Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Viessmann-Adapter mit vcontrol

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Viessmann-Adapter mit vcontrol

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      McBeath @Hoizi1994 last edited by McBeath

      @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?

      M 1 Reply Last reply Reply Quote -1
      • M
        McBeath @McBeath last edited by McBeath

        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?!?

        H 1 Reply Last reply Reply Quote 0
        • M
          MartyBr @Scrounger last edited by

          @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.

          1 Reply Last reply Reply Quote 0
          • H
            Hoizi1994 @McBeath last edited by

            @mcbeath ein wenig weiter oben sind die xml datein von MartyBr die find ich top kann ich nahezu 1zu1 nehmen

            1 Reply Last reply Reply Quote 0
            • H
              Hoizi1994 @MartyBr last edited by

              @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

              M 1 Reply Last reply Reply Quote 0
              • M
                MartyBr @Hoizi1994 last edited by MartyBr

                @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.0

                Das 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.

                H 1 Reply Last reply Reply Quote 0
                • H
                  Hoizi1994 @MartyBr last edited by

                  @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

                  M 1 Reply Last reply Reply Quote 0
                  • M
                    MartyBr @Hoizi1994 last edited by

                    @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?

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      McBeath @MartyBr last edited by

                      @Hoizi1994
                      Ich danke dir für die infos bzüglich der vito.xml und vcontrold.xml von martybr 👍

                      @martybr
                      Hallo Martybr
                      ich hätte da mal eine frage zu den JAZ werten, die sind bei mir um den Faktor 10
                      zuhoch. Sprich aus 3,5 wird im IOB eine 35.
                      Kann man das in der vito.xml irgendwo anpassen?

                      Primärkreis Temperatur Eingang ist da (5,9 °C)
                      Primärkreis Temperatur Ausgang nicht (0°C)
                      Wo kann ich die korrekten Adressen finden?

                      Ich habe einen Exprot aller Datapoint der A200 von der Vitosoft.
                      Wenn mal die da vielleicht herleiten kann?!?

                      1 Reply Last reply Reply Quote 0
                      • H
                        Hoizi1994 last edited by Hoizi1994

                        @martybr said in Viessmann-Adapter mit vcontrol:

                        @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?

                        Einen wert von 66 muss ich schreiben

                        Wenn ich hier die setaddr55 kopiere und auf 66 ändere müsste das doch passen oder was bedeuted das hinterer hexlen usw? muss da auch was gändert werden

                        edit: sollte 1 bite sein der B005

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          MartyBr @Hoizi1994 last edited by

                          @hoizi1994
                          Probiere doch setaddr1 aus. Hier ist die Länge auf 1 Byte definiert.

                          Also:

                           <command name="setIntensivLueftung" protocmd="setaddr1">
                              	<addr>B005</addr>
                              	<len>1</len>
                              	<unit>ST</unit>
                              	<description>Intensiv Lueftung</description>
                          </command>
                          

                          Ist nur meine Vermutung, habe ich nicht getestet.

                          H 1 Reply Last reply Reply Quote 0
                          • H
                            Hoizi1994 @MartyBr last edited by

                            @martybr

                            wenn ich getLueftung bei Intensivlüftung mache kommt ein wert von 66 sollte dann die setaddr nicht auch 66 haben?

                            lg.

                            M 1 Reply Last reply Reply Quote 0
                            • M
                              MartyBr @Hoizi1994 last edited by

                              @hoizi1994 Du musst hier den Namen "setaddrxxx" vom Wert unterscheiden. Wenn du als Wert "66" bekommst, dann benötigst du auch eine Definition die zumindest 2 byte definiert.
                              Wie list du den Wert "getLueftung" aus? Kannst du nicht direkt mit den gleichen Adressen eine Definition "setLueftung" machen und dort z.B. als Wert die 66 eintragen?

                              Zeige mal die Passage aus der vcontrold.cml und der vito.xml

                              H 1 Reply Last reply Reply Quote 0
                              • H
                                Hoizi1994 @MartyBr last edited by Hoizi1994

                                @martybr

                                so lese ich aus
                                vito:

                                 <command name="getLueftung" protocmd="getaddr">
                                    	<addr>B005</addr>
                                    	<len>1</len>
                                    	<unit>ST</unit>
                                    	<description>Lueftungsmodus</description>
                                </command>
                                

                                wenn ich setaddr1 verwende hüpft der auf wert 3 und schaltet sich auf abschaltbetrieb

                                vcontrold

                                            <command name="setaddr6">
                                                 <send>SEND 00 02 $addr $hexlen 03;RECV 1 SR</send>
                                            </command>
                                

                                müsste ich bei der vcontrold hexlen auf 66 ?

                                M 1 Reply Last reply Reply Quote 0
                                • M
                                  MartyBr @Hoizi1994 last edited by

                                  @hoizi1994
                                  Setze doch mal in der vito.xml

                                   <command name="setLueftung" protocmd="setaddr">
                                      	<addr>B005</addr>
                                      	<len>1</len>
                                      	<unit>ST</unit>
                                      	<description>Lueftungsmodus</description>
                                  </command>
                                  

                                  und dann in dem Datenpunkt unter Viessmann.0/set dort einen Wert.

                                  H 1 Reply Last reply Reply Quote 0
                                  • H
                                    Hoizi1994 @MartyBr last edited by Hoizi1994

                                    @martybr im adapter von iobroker?

                                    da tut sich nix

                                    M 1 Reply Last reply Reply Quote 0
                                    • M
                                      MartyBr @Hoizi1994 last edited by

                                      @hoizi1994 Hast du die vito.xml entsprechend ergänzt? also den getxx und der setxx Command eingetragen und die neue vito.xml in der Viessmann-App neu eingelesen?

                                      Zeige bitte deine vito.xml mit den beiden Einträgen.

                                      H 1 Reply Last reply Reply Quote 0
                                      • H
                                        Hoizi1994 @MartyBr last edited by

                                        @martybr

                                        so sahs jetzt aus den wert habe ich im adapter eingegeben

                                         <command name="getLueftung" protocmd="getaddr">
                                                    <addr>B005</addr>
                                                    <len>1</len>
                                                    <unit>ST</unit>
                                                    <description>Lueftungsmodus</description>
                                            </command>
                                        
                                         <command name="setLueftung" protocmd="setaddr">
                                                    <addr>B005</addr>
                                                    <len>1</len>
                                                    <unit>ST</unit>
                                                    <description>Lueftungsmodus</description>
                                            </command>
                                        M 1 Reply Last reply Reply Quote 0
                                        • M
                                          MartyBr @Hoizi1994 last edited by

                                          @hoizi1994
                                          Was mir noch dazu einfällt ist: Hast du den Wert mit Bestätigt = Ja gesetzt?
                                          Ansonsten bin ich da auch überfragt. Meine 300F hat andere Datenpunkte und ich steuere über die App. In iobroker lese ich die Werte aus und baue mir Grafiken.

                                          2023_11_13_18_02_chart.svg

                                          H 1 Reply Last reply Reply Quote 0
                                          • H
                                            Hoizi1994 @MartyBr last edited by

                                            @martybr nein ohne bestätigt

                                            M 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            910
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            17
                                            348
                                            53505
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo