Skip to content

Instantly share code, notes, and snippets.

@Schm1tz1
Last active November 20, 2022 20:40
Show Gist options
  • Save Schm1tz1/6409c90a8af5a7aaa12a41df923343bf to your computer and use it in GitHub Desktop.
Save Schm1tz1/6409c90a8af5a7aaa12a41df923343bf to your computer and use it in GitHub Desktop.
vclient scripts with command->item mapping for automated (cron) retriavel of value from vcontrol to openHAB
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="0001", SYMLINK+="ttyVitoIR"
<?xml version="1.0"?>
<V-Control xmlns:vcontrol="http://www.openv.de/vcontrol">
<unix>
<config>
<!-- These are the default settings vcontrold drops privileges to when
started as root. Be sure to have the respective user and group. If
you use a serial device, be sure to have read and write permissions
on the corresponding device file for the user/group -->
<username>nobody</username>
<groupname>dialout</groupname>
<serial>
<tty>/dev/ttyVitoIR</tty>
</serial>
<net>
<port>3002</port>
<allow ip="127.0.0.1"/>
<allow ip="192.168.178.0/24"/>
</net>
<logging>
<file>vcontrold.log</file>
<syslog>n</syslog>
<debug>n</debug>
</logging>
<device ID="20CB"/>
</config>
</unix>
<units>
<unit name="Temperatur">
<abbrev>UT</abbrev>
<calc get="V/10" set="V*10"/>
<type>short</type>
<entity>Grad Celsius</entity>
</unit>
<unit name="Temperatur100">
<abbrev>UTH</abbrev>
<calc get="V/100" set="V*100"/>
<type>short</type>
<entity>Grad Celsius</entity>
</unit>
<unit name="Neigung">
<abbrev>UN</abbrev>
<calc get="V/10" set="V*10"/>
<type>short</type>
<entity/>
</unit>
<unit name="Temperatur 1Byte">
<abbrev>UT1</abbrev>
<calc get="V/2" set="V*2"/>
<type>char</type>
<entity>Grad Celsius</entity>
</unit>
<unit name="Temperatur 1Byte unsigned">
<abbrev>UT1U</abbrev>
<calc get="V/2" set="V*2"/>
<type>uchar</type>
<entity>Grad Celsius</entity>
</unit>
<unit name="Temperatur 1Byte ganzzahlig">
<abbrev>UTI</abbrev>
<calc get="V" set="V"/>
<type>uchar</type>
<entity>Grad Celsius</entity>
</unit>
<unit name="Status">
<abbrev>ST</abbrev>
<calc get="V" set="V"/>
<type>char</type>
<entity/>
</unit>
<unit name="Counter">
<abbrev>CO</abbrev>
<calc get="V" set="V"/>
<type>int</type>
<entity/>
</unit>
<unit name="Volumenstrom">
<abbrev>VS</abbrev>
<calc get="V" set="V"/>
<type>ushort</type>
<entity>l/h</entity>
</unit>
<unit name="Counter liter">
<abbrev>COL</abbrev>
<calc get="V/1000" set="V*1000"/>
<type>int</type>
<entity/>
</unit>
<unit name="Prozent">
<abbrev>PR</abbrev>
<calc get="V/2" set="V*2"/>
<type>short</type>
<entity>%</entity>
</unit>
<unit name="Prozent 1 Byte ganzzahlig">
<abbrev>PR1</abbrev>
<calc get="V" set="V"/>
<type>uchar</type>
<entity>%</entity>
</unit>
<unit name="Prozent zweites Byte ganzzahlig (Pumpe)">
<abbrev>PR2</abbrev>
<calc get="B1" set="B1"/>
<type>uchar</type>
<entity>%</entity>
</unit>
<unit name="Prozent erstes Byte">
<abbrev>PR3</abbrev>
<calc get="V/2" set="V*2"/>
<type>uchar</type>
<entity>%</entity>
</unit>
<unit name="CounterS">
<abbrev>CS</abbrev>
<calc get="V/3600" set="V*3600"/>
<type>uint</type>
<entity>Stunden</entity>
</unit>
<unit name="CycleTime">
<abbrev>CT</abbrev>
<type>cycletime</type>
</unit>
<unit name="ReturnStatus">
<abbrev>RT</abbrev>
<type>enum</type>
<enum bytes="00" text="0"/>
<enum bytes="01" text="1"/>
<!-- At least for device 20CB the heating circuit pump returns
status 03 when it's on and the heating runs in in night mode -->
<enum bytes='03' text='2'/>
<enum text="NOT OK"/>
</unit>
<unit name="BetriebsArt">
<abbrev>BA</abbrev>
<type>enum</type>
<enum bytes="00" text="WW"/>
<enum bytes="01" text="RED"/>
<enum bytes="02" text="NORM"/>
<enum bytes="04" text="H+WW FS"/>
<enum bytes="03" text="H+WW"/>
<enum bytes="05" text="ABSCHALT"/>
<enum text="UNKNOWN"/>
</unit>
<unit name="SetReturnStatus">
<abbrev>SR</abbrev>
<type>enum</type>
<enum bytes="00" text="OK"/>
<enum bytes="05" text="SYNC (NOT OK)"/>
<enum text="NOT OK"/>
</unit>
<unit name="SystemTime">
<abbrev>TI</abbrev>
<type>systime</type>
</unit>
<unit name="ErrorState">
<abbrev>ES</abbrev>
<type>errstate</type>
<enum bytes="00" text="Regelbetrieb (kein Fehler)"/>
<enum bytes="0F" text="Wartung (fuer Reset Codieradresse 24 auf 0 stellen)"/>
<enum bytes="10" text="Kurzschluss Aussentemperatursensor"/>
<enum bytes="18" text="Unterbrechung Aussentemperatursensor"/>
<enum bytes="20" text="Kurzschluss Vorlauftemperatursensor"/>
<enum bytes="21" text="Kurzschluss Ruecklauftemperatursensor"/>
<enum bytes="28" text="Unterbrechung Aussentemperatursensor"/>
<enum bytes="29" text="Unterbrechung Ruecklauftemperatursensor"/>
<enum bytes="30" text="Kurzschluss Kesseltemperatursensor"/>
<enum bytes="38" text="Unterbrechung Kesseltemperatursensor"/>
<enum bytes="40" text="Kurzschluss Vorlauftemperatursensor M2"/>
<enum bytes="42" text="Unterbrechung Vorlauftemperatursensor M2"/>
<enum bytes="50" text="Kurzschluss Speichertemperatursensor"/>
<enum bytes="58" text="Unterbrechung Speichertemperatursensor"/>
<enum bytes="92" text="Solar: Kurzschluss Kollektortemperatursensor"/>
<enum bytes="93" text="Solar: Kurzschluss Sensor S3"/>
<enum bytes="94" text="Solar: Kurzschluss Speichertemperatursensor"/>
<enum bytes="9A" text="Solar: Unterbrechung Kollektortemperatursensor"/>
<enum bytes="9B" text="Solar: Unterbrechung Sensor S3"/>
<enum bytes="9C" text="Solar: Unterbrechung Speichertemperatursensor"/>
<enum bytes='9E' text='Solar: Zu geringer/kein Volumenstrom oder Temperaturwächter ausgelöst'/>
<enum bytes="9F" text="Solar: Fehlermeldung Solarteil (siehe Solarregler)"/>
<enum bytes="A7" text="Bedienteil defekt"/>
<enum bytes="B0" text="Kurzschluss Abgastemperatursensor"/>
<enum bytes="B1" text="Kommunikationsfehler Bedieneinheit"/>
<enum bytes="B4" text="Interner Fehler (Elektronik)"/>
<enum bytes="B5" text="Interner Fehler (Elektronik)"/>
<enum bytes="B6" text="Ungueltige Hardwarekennung (Elektronik)"/>
<enum bytes="B7" text="Interner Fehler (Kesselkodierstecker)"/>
<enum bytes="B8" text="Unterbrechung Abgastemperatursensor"/>
<enum bytes="B9" text="Interner Fehler (Dateneingabe wiederholen)"/>
<enum bytes="BA" text="Kommunikationsfehler Erweiterungssatz fuer Mischerkreis M2"/>
<enum bytes="BC" text="Kommunikationsfehler Fernbedienung Vitorol, Heizkreis M1"/>
<enum bytes="BD" text="Kommunikationsfehler Fernbedienung Vitorol, Heizkreis M2"/>
<enum bytes="BE" text="Falsche Codierung Fernbedienung Vitorol"/>
<enum bytes="C1" text="Externe Sicherheitseinrichtung (Kessel kuehlt aus)"/>
<enum bytes="C2" text="Kommunikationsfehler Solarregelung"/>
<enum bytes="C5" text="Kommunikationsfehler drehzahlgeregelte Heizkreispumpe, Heizkreis M1"/>
<enum bytes="C6" text="Kommunikationsfehler drehzahlgeregelte Heizkreispumpe, Heizkreis M2"/>
<enum bytes="C7" text="Falsche Codierung der Heizkreispumpe"/>
<enum bytes="C9" text="Stoermeldeeingang am Schaltmodul-V aktiv"/>
<enum bytes="CD" text="Kommunikationsfehler Vitocom 100 (KM-BUS)"/>
<enum bytes="CE" text="Kommunikationsfehler Schaltmodul-V"/>
<enum bytes="CF" text="Kommunikationsfehler LON Modul"/>
<enum bytes="D1" text="Brennerstoerung"/>
<enum bytes="D4" text="Sicherheitstemperaturbegrenzer hat ausgeloest oder Stoermeldemodul nicht richtig gesteckt"/>
<enum bytes="DA" text="Kurzschluss Raumtemperatursensor, Heizkreis M1"/>
<enum bytes="DB" text="Kurzschluss Raumtemperatursensor, Heizkreis M2"/>
<enum bytes="DD" text="Unterbrechung Raumtemperatursensor, Heizkreis M1"/>
<enum bytes="DE" text="Unterbrechung Raumtemperatursensor, Heizkreis M2"/>
<enum bytes="E4" text="Fehler Versorgungsspannung"/>
<enum bytes="E5" text="Interner Fehler (Ionisationselektrode)"/>
<enum bytes="E6" text="Abgas- / Zuluftsystem verstopft"/>
<enum bytes="F0" text="Interner Fehler (Regelung tauschen)"/>
<enum bytes="F1" text="Abgastemperaturbegrenzer ausgeloest"/>
<enum bytes="F2" text="Temperaturbegrenzer ausgeloest"/>
<enum bytes="F3" text="Flammensigal beim Brennerstart bereits vorhanden"/>
<enum bytes="F4" text="Flammensigal nicht vorhanden"/>
<enum bytes="F7" text="Differenzdrucksensor defekt"/>
<enum bytes="F8" text="Brennstoffventil schliesst zu spaet"/>
<enum bytes="F9" text="Geblaesedrehzahl beim Brennerstart zu niedrig"/>
<enum bytes="FA" text="Geblaesestillstand nicht erreicht"/>
<enum bytes="FD" text="Fehler Gasfeuerungsautomat"/>
<enum bytes="FE" text="Starkes Stoerfeld (EMV) in der Naehe oder Elektronik defekt"/>
<enum bytes="FF" text="Starkes Stoerfeld (EMV) in der Naehe oder interner Fehler"/>
<enum text="UNKNOWN"/>
</unit>
<unit name="DeviceType">
<abbrev>DT</abbrev>
<type>enum</type>
<enum bytes="20 53 01 2B" text="V200WB2 ID=2053 Protokoll:GWG_VBEM"/>
<enum bytes="20 98" text="V200KW2 ID=2098 Protokoll:KW"/>
<enum bytes="20 CB 03 4A 00 00 01 0A" text="VScotHO1 ID=20CB Protokoll:KW,300"/>
<enum bytes="20 94" text="V200KW1 ID=2094 Protokoll:KW"/>
<enum text="UNKNOWN"/>
</unit>
<unit name="Sachnummer">
<abbrev>SN</abbrev>
<type>uint</type>
<icalc get="((((((((((((B0-48)*10)+(B1-48))*10)+(B2-48))*10)+(B3-48))*10)+(B4-48))*10)+(B5-48))*10)+B6-48"/>
</unit>
<unit name="Brenner Stunden">
<abbrev>BH</abbrev>
<type>uchar</type>
<calc get="(B1 * 100)+B0"/>
<entity>h</entity>
</unit>
<unit name="ErrorStateGWG">
<abbrev>ESG</abbrev>
<type>enum</type>
<enum bytes="00" text="Keine Stoerung"/>
<enum bytes="02" text="Fehler Sicherheitskette"/>
<enum bytes="04" text="Brennerstoerung 04"/>
<enum bytes="05" text="Brennerstoerung 05"/>
<enum bytes="07" text="Brennerstoerung 07"/>
<enum bytes="08" text="Brennerstoerung 09"/>
<enum bytes="08" text="Brennerstoerung 09"/>
<enum bytes="0A" text="Brennerstoerung 10"/>
<enum text="UNKNOWN"/>
</unit>
<unit name="Bitstatus">
<abbrev>BST</abbrev>
<type>uchar</type>
<icalc get="(B0 &amp; (0x01&lt;&lt;BP))&gt;&gt; BP"/>
<enum bytes="00" text="0"/>
<enum bytes="01" text="1"/>
<enum text="UNKNOWN"/>
</unit>
<unit name="HKP Pumpentyp">
<abbrev>HKT</abbrev>
<type>uchar</type>
<icalc get="(B0 &amp; (0x01&lt;&lt;BP))&gt;&gt; BP"/>
<enum bytes="00" text="stufig"/>
<enum bytes="01" text="drehzahlgeregelt"/>
<enum text="UNKNOWN"/>
</unit>
<unit name="Umschaltventil Stellung">
<abbrev>USV</abbrev>
<type>enum</type>
<enum bytes="00" text="UNDEV"/>
<enum bytes="01" text="Heizen"/>
<enum bytes="02" text="Mittelstellung"/>
<enum bytes="03" text="Warmwasser"/>
<enum text="UNKNOWN"/>
</unit>
</units>
<protocols>
<protocol name="P300">
<pid>41</pid>
<macros>
<macro name="GETADDR">
<command>SEND 00 01</command>
</macro>
<macro name="SETADDR">
<command>SEND 00 02</command>
</macro>
</macros>
<commands>
<command name="getaddr">
<send>GETADDR $addr $hexlen;RECV $len $unit</send>
</command>
<command name="setaddr">
<send>SETADDR $addr $hexlen;SEND BYTES $unit;RECV 1 SR</send>
</command>
<command name="gettestaddr">
<send/>
</command>
</commands>
</protocol>
<protocol name="KW2">
<macros>
<macro name="SYNC">
<command>SEND 04;WAIT 05</command>
</macro>
<macro name="GETADDR">
<command>SEND 01 F7</command>
</macro>
<macro name="SETADDR">
<command>SEND 01 F4</command>
</macro>
</macros>
<commands>
<command name="getaddr">
<retry>3</retry>
<recvTimeout>4000</recvTimeout>
<send>SYNC;GETADDR $addr $hexlen;RECV $len $unit</send>
</command>
<command name="setaddr">
<send>SYNC;SETADDR $addr $hexlen;SEND BYTES $unit;RECV 1 SR</send>
</command>
<command name="gettestaddr">
<retry>3</retry>
<recvTimeout>1500</recvTimeout>
<send>SYNC;GETADDR;SEND BYTES;SEND 02;RECV 02</send>
</command>
</commands>
</protocol>
<protocol name="GWG">
<macros>
<macro name="SYNC">
<command>SEND 04;WAIT 05</command>
</macro>
<macro name="GETADDR">
<command>SEND 01 CB</command>
</macro>
<macro name="GETBADDR">
<command>SEND 01 9E</command>
</macro>
<macro name="GETVADDR">
<command>SEND 01 C7</command>
</macro>
<macro name="GETPADDR">
<command>SEND 01 6E</command>
</macro>
<macro name="GETEADDR">
<command>SEND 01 AE</command>
</macro>
<macro name="GETXADDR">
<command>SEND 01 C5</command>
</macro>
<macro name="GETKMADDR">
<command>SEND 01 43</command>
</macro>
</macros>
<commands>
<command name="enable">
<send/>
</command>
<command name="disable">
<send/>
</command>
<command name="getaddr">
<retry>3</retry>
<recvTimeout>4000</recvTimeout>
<send>SYNC;GETADDR $addr $hexlen 04;RECV $len $unit</send>
</command>
<command name="gettestaddr">
<retry>3</retry>
<recvTimeout>4000</recvTimeout>
<send>SYNC;GETADDR;SEND BYTES;SEND 01 04;RECV 1</send>
</command>
<command name="getbaddr">
<retry>3</retry>
<recvTimeout>4000</recvTimeout>
<send>SYNC;GETBADDR $addr $hexlen 04;RECV $len $unit</send>
</command>
<command name="getbtestaddr">
<retry>3</retry>
<recvTimeout>4000</recvTimeout>
<send>SYNC;GETBADDR;SEND BYTES;SEND 01 04;RECV 1</send>
</command>
<command name="getpaddr">
<retry>3</retry>
<recvTimeout>4000</recvTimeout>
<send>SYNC;GETPADDR $addr $hexlen 04;RECV $len $unit</send>
</command>
<command name="getptestaddr">
<retry>3</retry>
<recvTimeout>4000</recvTimeout>
<send>SYNC;GETPADDR;SEND BYTES;SEND 01 04;RECV 1</send>
</command>
<command name="getvaddr">
<retry>3</retry>
<recvTimeout>4000</recvTimeout>
<send>SYNC;GETVADDR $addr $hexlen 04;RECV $len $unit</send>
</command>
<command name="getvtestaddr">
<retry>3</retry>
<recvTimeout>4000</recvTimeout>
<send>SYNC;GETVADDR;SEND BYTES;SEND 01 04;RECV 1</send>
</command>
<command name="geteaddr">
<retry>3</retry>
<recvTimeout>4000</recvTimeout>
<send>SYNC;GETEADDR $addr $hexlen 04;RECV $len $unit</send>
</command>
<command name="getetestaddr">
<retry>3</retry>
<recvTimeout>150</recvTimeout>
<send>SYNC;GETEADDR;SEND BYTES;SEND 01 04;RECV 1</send>
</command>
<command name="getxaddr">
<retry>3</retry>
<recvTimeout>150</recvTimeout>
<send>SYNC;GETXADDR $addr $hexlen 04;RECV $len $unit</send>
</command>
<command name="getxtestaddr">
<retry>3</retry>
<recvTimeout>4000</recvTimeout>
<send>SYNC;GETXADDR;SEND BYTES;SEND 01 04;RECV 1</send>
</command>
<command name="getkmaddr">
<send>SYNC;GETKMDDR $addr $hexlen 04;RECV $len $unit</send>
<retry>3</retry>
<recvTimeout>4000</recvTimeout>
</command>
<command name="getkmtestaddr">
<retry>3</retry>
<recvTimeout>4000</recvTimeout>
<send>SYNC;GETKMADDR;SEND BYTES;SEND 01 04;RECV 1</send>
</command>
<command name="init">
<send>SEND 16 00 00;PAUSE 100;SEND 16 00 00;PAUSE 100;SEND 16 00 00;PAUSE 100;SEND 16 00 00;PAUSE 100;SEND 16 00 00;PAUSE 100;SEND 16 00 00;PAUSE 100;SEND 16 00 00;PAUSE 100;SEND 16 00 00;PAUSE 100</send>
<retry>3</retry>
</command>
<command name="setaddr">
<send>SYNC;SETADDR $addr $hexlen;SEND BYTES $unit;RECV 1 SR</send>
</command>
</commands>
</protocol>
</protocols>
<extern xmlns:xi="http://www.w3.org/2003/XInclude">
<xi:include href="vito.xml" parse="xml"/>
</extern>
</V-Control>
<?xml version="1.0"?>
<vito>
<devices>
<device ID="2098" name="V200KW2" protocol="KW2"/>
<device ID="2053" name="GWG_VBEM" protocol="GWG"/>
<device ID="20CB" name="VScotHO1" protocol="P300"/>
<device ID="2094" name="V200KW1" protocol="KW2"/>
</devices>
<commands>
<!-- Gerätedaten -->
<!-- AUSSENTEMPERATUR -->
<command name="getTempA" protocmd="getaddr">
<addr>0800</addr>
<len>2</len>
<unit>UT</unit>
<description>Ermittle die Aussentemperatur in Grad C</description>
<device ID="2053">
<addr>6F</addr>
<unit>UT1</unit>
<len>1</len>
</device>
</command>
<command name="getTempAtp" protocmd="getaddr">
<addr>5525</addr>
<len>2</len>
<unit>UT</unit>
<description>Ermittle die Aussentemperatur in Grad C (Tiefpass)</description>
<device ID="2053"/>
</command>
<command name="getTempAged" protocmd="getaddr">
<addr>5527</addr>
<len>2</len>
<unit>UT</unit>
<description>Ermittle die Aussentemperatur in Grad C (Gedaempft)</description>
<device ID="2053"/>
</command>
<!-- WARMWASSER -->
<command name="getTempWWist" protocmd="getaddr">
<addr>0804</addr>
<len>2</len>
<unit>UT</unit>
<description>Ermittle die Warmwassertemperatur in Grad C</description>
</command>
<command name="getTempWWsoll" protocmd="getaddr">
<addr>6300</addr>
<len>1</len>
<unit>UTI</unit>
<description>Ermittle die Warmwassersolltemperatur in Grad C</description>
</command>
<command name="setTempWWsoll" protocmd="setaddr">
<addr>6300</addr>
<len>2</len>
<unit>UTI</unit>
<description>Setze die Warmwassersolltemperatur in Grad C</description>
</command>
<command name="getTempStp2" protocmd="getaddr">
<addr>0814</addr>
<len>2</len>
<unit>UT</unit>
<description>Ermittle die WW Auslauftemperatur in Grad C (Tiefpass)</description>
<device ID="2053"/>
<device ID="2098"/>
</command>
<command name="getWWUWPNachlauf" protocmd="getaddr">
<addr>6762</addr>
<len>2</len>
<unit>CO</unit>
<description>Ermittle Warmwasserpumpennachlauf </description>
</command>
<command name="setWWUWPNachlauf" protocmd="setaddr">
<addr>6762</addr>
<len>2</len>
<unit>CO</unit>
<description>Setze Warmwasserpumpennachlauf</description>
</command>
<command name="getSpeichervorrang" protocmd="getaddr">
<addr>27A2</addr>
<len>1</len>
<unit>ST</unit>
<description>Ermittle den Status Speichervorrang Heizkreis ohne Mischer A1 bzw. mit Mischer M1</description>
</command>
<command name="setSpeichervorrang" protocmd="setaddr">
<addr>27A2</addr>
<len>1</len>
<unit>ST</unit>
<description>Setze den Status Speichervorrang Heizkreis ohne Mischer A1 bzw. mit Mischer M1</description>
</command>
<command name="getSpeichervorrangM2" protocmd="getaddr">
<addr>37A2</addr>
<len>1</len>
<unit>ST</unit>
<description>Ermittle den Status Speichervorrang Heizkreis mit Mischer M2</description>
</command>
<command name="setSpeichervorrangM2" protocmd="setaddr">
<addr>37A2</addr>
<len>1</len>
<unit>ST</unit>
<description>Setze den Status Speichervorrang Heizkreis mit Mischer M2</description>
</command>
<command name="getSpeichervorrangM3" protocmd="getaddr">
<addr>47A2</addr>
<len>1</len>
<unit>ST</unit>
<description>Ermittle den Status Speichervorrang Heizkreis mit Mischer M3</description>
</command>
<command name="setSpeichervorrangM3" protocmd="setaddr">
<addr>47A2</addr>
<len>1</len>
<unit>ST</unit>
<description>Setze den Status Speichervorrang Heizkreis mit Mischer M3</description>
</command>
<!-- KESSEL -->
<!-- Differenztemperatur Kesselkreis zu HKM(2) -->
<command name="getTempKOffset" protocmd="getaddr">
<addr>6760</addr>
<len>1</len>
<unit>UTI</unit>
<description>Ermittle Kesseloffset KT ueber WWsoll in Grad C</description>
</command>
<!-- Differenztemperatur Kesselkreis zu HKM(2) -->
<command name="setTempKOffset" protocmd="setaddr">
<addr>6760</addr>
<len>1</len>
<unit>UTI</unit>
<description>Setze Kesseloffset KT ueber WWsoll in Grad C</description>
</command>
<command name="getTempKist" protocmd="getaddr">
<addr>0802</addr>
<len>2</len>
<unit>UT</unit>
<description>Ermittle die Kesseltemperatur in Grad C</description>
<device ID="2053">
<addr>70</addr>
<unit>UT1</unit>
<len>1</len>
</device>
</command>
<command name="getTempAbgas" protocmd="getaddr">
<addr>0808</addr>
<len>2</len>
<unit>UT</unit>
<description>Ermittle die Abgastemperatur in Grad C</description>
<device ID="20CB">
<addr>0808</addr>
<unit>UT</unit>
<len>2</len>
</device>
</command>
<command name="getTempKtp" protocmd="getaddr">
<addr>0810</addr>
<len>2</len>
<unit>UT</unit>
<description>Ermittle die Kesseltemperatur in Grad C (Tiefpass)</description>
<device ID="2053"/>
</command>
<command name="getTempKsoll" protocmd="getaddr">
<addr>5502</addr>
<len>2</len>
<unit>UT</unit>
<description>Ermittle die Kesselsolltemperatur in Grad C</description>
<device ID="2053">
<addr>71</addr>
<unit>UT1</unit>
<len>1</len>
</device>
<device ID="20CB">
<addr>555A</addr>
<unit>UT</unit>
<len>2</len>
</device>
</command>
<command name="getVolStrom" protocmd="getaddr">
<addr>0C24</addr>
<len>2</len>
<unit>VS</unit>
<description>Ermittle den Volumenstrom l/h des Heizkreises</description>
</command>
<command name="getBetriebszeitStandby" protocmd="getaddr">
<addr>08B8</addr>
<len>4</len>
<unit>CS</unit>
<description>Ermittle die NRF_BetriebszeitStandby</description>
<device ID="2053" protocmd="geteaddr">
<addr>17</addr>
<len>2</len>
<unit>BH</unit>
</device>
</command>
<!-- BRENNER -->
<command name="getBrennerStatus" protocmd="getaddr">
<addr>55D3</addr>
<len>1</len>
<unit>RT</unit>
<description>Ermittle den Brennerstatus</description>
<device ID="2053">
<addr>22</addr>
<len>1</len>
<bit>1</bit>
<unit>BST</unit>
</device>
<device ID="2094">
<addr>0842</addr>
<len>1</len>
<unit>ST</unit>
</device>
<device ID="20CB">
<addr>55D3</addr>
<len>1</len>
<unit>PR1</unit>
</device>
</command>
<command name="getBrennerStatus2" protocmd="getaddr">
<addr>0849</addr>
<len>1</len>
<unit>ST</unit>
<description>Ermittle den Brennerstatus Stufe 2</description>
<device ID="2094">
<addr>0849</addr>
<len>1</len>
<unit>ST</unit>
</device>
</command>
<command name="getBrennerStufe" protocmd="getaddr">
<addr>551E</addr>
<len>1</len>
<unit>RT</unit>
<description>Ermittle den Brennerstatus aktuelle Stufe</description>
<device ID="2053">
<addr>22</addr>
<len>1</len>
<bit>1</bit>
<unit>BST</unit>
</device>
</command>
<command name="getBrennerStarts" protocmd="getaddr">
<addr>088A</addr>
<len>4</len>
<unit>CO</unit>
<description>Ermittle die Brennerstarts</description>
<device ID="2053"/>
</command>
<command name="setBrennerStarts" protocmd="setaddr">
<addr>088A</addr>
<len>2</len>
<unit>CO</unit>
<description>Setze die Brennerstarts</description>
<device ID="2053"/>
</command>
<command name="getBrennerStunden1" protocmd="getaddr">
<addr>08A7</addr>
<len>4</len>
<unit>CS</unit>
<description>Ermittle die Brennerstunden Stufe 1</description>
<device ID="2053" protocmd="geteaddr">
<addr>17</addr>
<len>2</len>
<unit>BH</unit>
</device>
</command>
<command name="setBrennerStunden1" protocmd="setaddr">
<addr>08A7</addr>
<len>4</len>
<unit>CO</unit>
<description>Setze die Brennerstunden Stufe 1</description>
<device ID="2053" protocmd="setaddr">
<addr>17</addr>
<len>2</len>
<unit>BH</unit>
</device>
</command>
<command name="getBrennerStunden2" protocmd="getaddr">
<addr>08AB</addr>
<len>4</len>
<unit>CS</unit>
<description>Ermittle die Brennerstunden Stufe 2</description>
<device ID="2053"/>
</command>
<command name="getLeistungIst" protocmd="getaddr">
<addr>A38F</addr>
<len>2</len>
<unit>PR3</unit>
<description>Ermittle Anlagen Ist-Leistung</description>
<device ID="2053"/>
</command>
<command name="getOeldurchsatz" protocmd="getaddr">
<addr>5726</addr>
<len>4</len>
<unit>CO</unit>
<description>Eingestellter Oeldurchsatz Brenner in Dezi-Liter pro Stunde</description>
</command>
<command name="setOeldurchsatz" protocmd="setaddr">
<addr>5726</addr>
<len>4</len>
<unit>CO</unit>
<description>Oeldurchsatz Brenner in Dezi-Liter pro Stunde einstellen</description>
</command>
<command name="getOelverbrauch" protocmd="getaddr">
<addr>7574</addr>
<len>4</len>
<unit>COL</unit>
<description>Ermittle den Oelverbrauch kumuliert</description>
<device ID="2053"/>
</command>
<!-- HEIZKURVEN -->
<command name="getNeigungM1" protocmd="getaddr">
<addr>2305</addr>
<len>1</len>
<unit>UN</unit>
<description>Ermittle Neigung Heizkennlinie M1</description>
<device ID="2053">
<addr>65</addr>
<unit>UN</unit>
<len>1</len>
</device>
<device ID="20CB">
<addr>27D3</addr>
<unit>UN</unit>
<len>1</len>
</device>
</command>
<command name="getNeigungM2" protocmd="getaddr">
<addr>3305</addr>
<len>1</len>
<unit>UN</unit>
<description>Ermittle Neigung Heizkennlinie M2</description>
<device ID="2053">
<addr>C4</addr>
<unit>UN</unit>
<len>1</len>
</device>
<device ID="20CB">
<addr>37D3</addr>
<unit>UN</unit>
<len>1</len>
</device>
</command>
<command name="getNiveauM1" protocmd="getaddr">
<addr>2304</addr>
<len>1</len>
<unit>ST</unit>
<description>Ermittle Niveau Heizkennlinie M1</description>
<device ID="2053">
<addr>64</addr>
<unit>ST</unit>
<len>1</len>
</device>
<device ID="20CB">
<addr>27D4</addr>
<unit>ST</unit>
<len>1</len>
</device>
</command>
<command name="getNiveauM2" protocmd="getaddr">
<addr>3304</addr>
<len>1</len>
<unit>ST</unit>
<description>Ermittle Niveau Heizkennlinie M2</description>
<device ID="2053">
<addr>C5</addr>
<unit>ST</unit>
<len>1</len>
</device>
<device ID="20CB">
<addr>37D4</addr>
<unit>ST</unit>
<len>1</len>
</device>
</command>
<command name="setNeigungM1" protocmd="setaddr">
<!-- min zul.0.2 0.1 und 0.0 nicht erlaubt -->
<addr>2305</addr>
<len>1</len>
<unit>UN</unit>
<description>Setze Neigung Heizkennlinie M1</description>
<device ID="2053"/>
<device ID="20CB">
<addr>27D3</addr>
<unit>UN</unit>
<len>1</len>
</device>
</command>
<command name="setNeigungM2" protocmd="setaddr">
<!-- min zul.0.2 0.1 und 0.0 nicht erlaubt -->
<addr>3305</addr>
<len>1</len>
<unit>UN</unit>
<description>Setze Neigung Heizkennlinie M2</description>
<device ID="2053"/>
<device ID="20CB">
<addr>37D3</addr>
<unit>UN</unit>
<len>1</len>
</device>
</command>
<command name="setNiveauM1" protocmd="setaddr">
<addr>2304</addr>
<len>1</len>
<unit>ST</unit>
<description>Setze Niveau Heizkennlinie M1</description>
<device ID="2053"/>
<device ID="20CB">
<addr>27D4</addr>
<unit>ST</unit>
<len>1</len>
</device>
</command>
<command name="setNiveauM2" protocmd="setaddr">
<addr>3304</addr>
<len>1</len>
<unit>ST</unit>
<description>Setze Niveau Heizkennlinie M2</description>
<device ID="2053"/>
<device ID="20CB">
<addr>37D4</addr>
<unit>ST</unit>
<len>1</len>
</device>
</command>
<!-- HEIZKREISE -->
<command name="getTempVListM1" protocmd="getaddr">
<len>2</len>
<unit>UT</unit>
<description>Ermittle die Vorlauftemperatur M1 in Grad C</description>
<device ID="2053"/>
<device ID="20CB">
<addr>2900</addr>
<unit>UT</unit>
<len>2</len>
</device>
</command>
<command name="getTempVListM2" protocmd="getaddr">
<addr>080C</addr>
<len>2</len>
<unit>UT</unit>
<description>Ermittle die Vorlauftemperatur M2 in Grad C</description>
<device ID="2053">
<addr>41</addr>
<unit>UT1</unit>
<len>1</len>
</device>
<device ID="20CB">
<addr>3900</addr>
<unit>UT</unit>
<len>2</len>
</device>
</command>
<command name="getTempVLsollM1" protocmd="getaddr">
<addr>2544</addr>
<len>2</len>
<unit>UT</unit>
<description>Ermittle die Vorlaufsolltemperatur M1 in Grad C</description>
<device ID="2053">
<addr>69</addr>
<unit>UT1</unit>
<len>1</len>
</device>
</command>
<command name="getTempVLsollM2" protocmd="getaddr">
<addr>3544</addr>
<len>2</len>
<unit>UT</unit>
<description>Ermittle die Vorlaufsolltemperatur M2 in Grad C</description>
<device ID="2053">
<addr>63</addr>
<unit>UT1</unit>
<len>1</len>
</device>
</command>
<command name="getTempVLsollM3" protocmd="getaddr">
<addr>4544</addr>
<len>2</len>
<unit>UT</unit>
<description>Ermittle die Vorlaufsolltemperatur M3 in Grad C</description>
<device ID="2053"/>
</command>
<command name="getTempRL17A" protocmd="getaddr">
<addr>080A</addr>
<len>2</len>
<unit>UT</unit>
<description>Ermittle die Ruecklauftemperatur 17A in Grad C</description>
<device ID="2053"/>
<device ID="20CB">
<addr>0808</addr>
<len>2</len>
<unit>UT</unit>
</device>
</command>
<!-- SOLAR -->
<command name="getTempKol" protocmd="getaddr">
<addr>6564</addr>
<len>2</len>
<unit>UT</unit>
<description>Ermittle die Kollektortemperatur in Grad C</description>
<device ID="2053"/>
</command>
<command name="getSolarStatusWW" protocmd="getaddr">
<addr>6551</addr>
<len>1</len>
<unit>RT</unit>
<description>Ermittle den Status der Nachladeunterdrueckung</description>
<device ID="2053"/>
</command>
<command name="getSolarStunden" protocmd="getaddr">
<addr>6568</addr>
<len>2</len>
<unit>CO</unit>
<description>Solar Betriebsstunden</description>
<device ID="2053"/>
</command>
<command name="getSolarLeistung" protocmd="getaddr">
<addr>6560</addr>
<len>4</len>
<unit>CO</unit>
<description>Solar Leistung Gesamt</description>
<device ID="2053"/>
</command>
<command name="getTempS4" protocmd="getaddr">
<addr>0124</addr>
<len>1</len>
<unit>UT1</unit>
<description>Ermittle die Temperatur S4 in Grad C</description>
<device ID="2053"/>
</command>
<!-- SPEICHER1 -->
<command name="getTempSpu" protocmd="getaddr">
<addr>6566</addr>
<len>2</len>
<unit>UT</unit>
<description>Ermittle die Speichertemperatur unten in Grad C</description>
<device ID="2053"/>
</command>
<command name="getTempStp" protocmd="getaddr">
<addr>0812</addr>
<len>2</len>
<unit>UT</unit>
<description>Ermittle die Speichertemperatur in Grad C (Tiefpass)</description>
<device ID="2053"/>
<device ID="2098"/>
</command>
<!-- SOLLTEMPERATUREN -->
<command name="getTempRaumNorSollM1" protocmd="getaddr">
<addr>2306</addr>
<len>1</len>
<unit>UTI</unit>
<description>Ermittle die Raumsolltemperatur normal M1 in Grad C</description>
<device ID="2053">
<addr>53</addr>
<len>1</len>
<unit>UTI</unit>
</device>
</command>
<!-- Aufruf in vclient ganzzahlig 'setTempRaumNorSollM1 21' -->
<command name="setTempRaumNorSollM1" protocmd="setaddr">
<addr>2306</addr>
<len>1</len>
<unit>UTI</unit>
<description>Setze die Raumsolltemperatur normal M1 in Grad C</description>
<device ID="2053">
<addr>53</addr>
<len>1</len>
<unit>UTI</unit>
</device>
</command>
<command name="getTempRaumNorSollM2" protocmd="getaddr">
<addr>3306</addr>
<len>1</len>
<unit>UTI</unit>
<description>Ermittle die Raumsolltemperatur normal M2 in Grad C</description>
<device ID="2053"/>
</command>
<!-- Aufruf in vclient ganzzahlig 'setTempRaumNorSollM2 21' -->
<command name="setTempRaumNorSollM2" protocmd="setaddr">
<addr>3306</addr>
<len>1</len>
<unit>UTI</unit>
<description>Setze die Raumsolltemperatur normal M2 in Grad C</description>
<device ID="2053"/>
</command>
<command name="getTempRaumRedSollM1" protocmd="getaddr">
<addr>2307</addr>
<len>1</len>
<unit>UTI</unit>
<description>Ermittle die Raumsolltemperatur reduziert M1 in Grad C</description>
<device ID="2053">
<addr>54</addr>
<len>1</len>
<unit>UTI</unit>
</device>
</command>
<command name="setTempRaumRedSollM1" protocmd="setaddr">
<addr>2307</addr>
<len>1</len>
<unit>UTI</unit>
<description>Setze die Raumsolltemperatur reduziert M1 in Grad C</description>
<device ID="2053">
<addr>54</addr>
<len>1</len>
<unit>UTI</unit>
</device>
</command>
<command name="getTempRaumRedSollM2" protocmd="getaddr">
<addr>3307</addr>
<len>1</len>
<unit>UTI</unit>
<description>Ermittle die Raumsolltemperatur reduziert M2 in Grad C</description>
<device ID="2053"/>
</command>
<command name="setTempRaumRedSollM2" protocmd="setaddr">
<addr>3307</addr>
<len>1</len>
<unit>UTI</unit>
<description>Setze die Raumsolltemperatur reduziert M2 in Grad C</description>
<device ID="2053"/>
</command>
<!-- PUMPEN -->
<command name="getPumpeStatusM1" protocmd="getaddr">
<addr>2906</addr>
<len>1</len>
<unit>RT</unit>
<description>Ermittle den Status der Pumpe M1</description>
<device ID="2053" protocmd="getpaddr">
<addr>01</addr>
<len>1</len>
<bit>0</bit>
<unit>BST</unit>
</device>
<device ID="20CB">
<addr>7663</addr>
<len>2</len>
<unit>PR2</unit>
</device>
</command>
<command name="getPumpeStatusM2" protocmd="getaddr">
<addr>3906</addr>
<len>1</len>
<unit>RT</unit>
<description>Ermittle den Status der Pumpe M2</description>
<device ID="2053"/>
<device ID="20CB">
<addr>7665</addr>
<len>1</len>
<unit>RT</unit>
</device>
</command>
<command name="getPumpeDrehzahlM2" protocmd="getaddr">
<addr>3906</addr>
<len>1</len>
<unit>RT</unit>
<description>Ermittle die Drehzahl der Pumpe M2</description>
<device ID="2053"/>
<device ID="20CB">
<addr>7665</addr>
<len>2</len>
<unit>PR2</unit>
</device>
</command>
<command name="getPumpeStatusIntern" protocmd="getaddr">
<description>Ermittle den Status der Internen Pumpe</description>
<device ID="20CB">
<addr>7660</addr>
<len>1</len>
<unit>RT</unit>
</device>
</command>
<command name="getPumpeDrehzahlIntern" protocmd="getaddr">
<addr>3906</addr>
<len>1</len>
<unit>RT</unit>
<description>Ermittle die Drehzahl der Internen Pumpe</description>
<device ID="2053"/>
<device ID="20CB">
<addr>7660</addr>
<len>2</len>
<unit>PR2</unit>
</device>
</command>
<command name="getPumpeStatusSp" protocmd="getaddr">
<addr>0845</addr>
<len>1</len>
<unit>RT</unit>
<description>Ermittle den Status der Speicherladepumpe</description>
<device ID="2053"/>
<device ID="20CB">
<addr>6513</addr>
<len>1</len>
<unit>RT</unit>
</device>
</command>
<command name="getPumpeStatusZirku" protocmd="getaddr">
<addr>0846</addr>
<len>1</len>
<unit>RT</unit>
<description>Ermittle den Status der Zirkulationspumpe</description>
<device ID="2053" protocmd="getpaddr">
<addr>01</addr>
<len>1</len>
<bit>2</bit>
<unit>BST</unit>
</device>
<device ID="20CB">
<addr>6515</addr>
<len>1</len>
<unit>RT</unit>
</device>
</command>
<command name="getPumpeStatusSolar" protocmd="getaddr">
<addr>6552</addr>
<len>1</len>
<unit>RT</unit>
<description>Ermittle den Status der Umwaelzpumpe Solar</description>
<device ID="2053"/>
</command>
<command name="getPumpeDrehzahlSolar" protocmd="getaddr">
<addr>6552</addr>
<len>1</len>
<unit>RT</unit>
<description>Ermittle die Drehzahl der Internen Pumpe</description>
<device ID="2053"/>
<device ID="20CB">
<addr>6552</addr>
<len>2</len>
<unit>PR2</unit>
</device>
</command>
<command name="getPumpeStatusSolar2" protocmd="getaddr">
<addr>6553</addr>
<len>1</len>
<unit>RT</unit>
<description>Ermittle den Status der Pumpe 2 Solar </description>
<device ID="2053"/>
</command>
<command name="getPumpeStatusSolar3" protocmd="getaddr">
<addr>6554</addr>
<len>1</len>
<unit>RT</unit>
<description>Ermittle den Status der Pumpe 3 Solar </description>
<device ID="2053"/>
</command>
<command name="getPumpeStatusSolar4" protocmd="getaddr">
<addr>6555</addr>
<len>1</len>
<unit>RT</unit>
<description>Ermittle den Status der Pumpe 4 Solar </description>
<device ID="2053"/>
</command>
<command name="getTempSTSSOL" protocmd="getaddr">
<addr>081A</addr>
<len>2</len>
<unit>UT</unit>
<description>Ermittle die Speichertemperatur in Grad C (NRF_TiefpassTemperaturwert_STSSOL)</description>
<device ID="2053"/>
<device ID="2098"/>
</command>
<!-- MISCHER -->
<command name="getMischerM1" protocmd="getaddr">
<addr>254C</addr>
<len>1</len>
<unit>PR</unit>
<description>Ermittle Mischerposition M1</description>
<device ID="2053"/>
</command>
<command name="getMischerM2" protocmd="getaddr">
<addr>354C</addr>
<len>1</len>
<unit>PR</unit>
<description>Ermittle Mischerposition M2</description>
<device ID="2053"/>
<device ID="20CB">
<addr>354C</addr>
<len>1</len>
<unit>PR</unit>
</device>
</command>
<command name="getMischerM3" protocmd="getaddr">
<addr>454C</addr>
<len>1</len>
<unit>PR</unit>
<description>Ermittle Mischerposition M3</description>
<device ID="2053"/>
</command>
<!-- HEIZZEITEN -->
<command name="getTimerM1Mo" protocmd="getaddr">
<addr>2000</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Montag M1</description>
<device ID="2053"/>
</command>
<command name="getTimerM1Di" protocmd="getaddr">
<addr>2008</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Dienstag M1</description>
<device ID="2053"/>
</command>
<command name="getTimerM1Mi" protocmd="getaddr">
<addr>2010</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit MIttwoch M1</description>
<device ID="2053"/>
</command>
<command name="getTimerM1Do" protocmd="getaddr">
<addr>2018</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Donnerstag M1</description>
<device ID="2053"/>
</command>
<command name="getTimerM1Fr" protocmd="getaddr">
<addr>2020</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Freitag M1</description>
<device ID="2053"/>
</command>
<command name="getTimerM1Sa" protocmd="getaddr">
<addr>2028</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Samstag M1</description>
<device ID="2053"/>
</command>
<command name="getTimerM1So" protocmd="getaddr">
<addr>2030</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Sonntag M1</description>
<device ID="2053"/>
</command>
<command name="getTimerM2Mo" protocmd="getaddr">
<addr>3000</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Montag M2</description>
<device ID="2053"/>
</command>
<command name="getTimerM2Di" protocmd="getaddr">
<addr>3008</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Dienstag M2</description>
<device ID="2053"/>
</command>
<command name="getTimerM2Mi" protocmd="getaddr">
<addr>3010</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Mittwoch M2</description>
<device ID="2053"/>
</command>
<command name="getTimerM2Do" protocmd="getaddr">
<addr>3018</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Donnerstag M2</description>
<device ID="2053"/>
</command>
<command name="getTimerM2Fr" protocmd="getaddr">
<addr>3020</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Freitag M2</description>
<device ID="2053"/>
</command>
<command name="getTimerM2Sa" protocmd="getaddr">
<addr>3028</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Samstag M2</description>
<device ID="2053"/>
</command>
<command name="getTimerM2So" protocmd="getaddr">
<addr>3030</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Sonntag M2</description>
<device ID="2053"/>
</command>
<!-- WARMWASSERZEITEN -->
<command name="getTimerWWMo" protocmd="getaddr">
<addr>2100</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Montag Warmwasser</description>
<device ID="2053"/>
</command>
<command name="getTimerWWDi" protocmd="getaddr">
<addr>2108</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Dienstag Warmwasser</description>
<device ID="2053"/>
</command>
<command name="getTimerWWMi" protocmd="getaddr">
<addr>2110</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Mittwoch Warmwasser</description>
<device ID="2053"/>
</command>
<command name="getTimerWWDo" protocmd="getaddr">
<addr>2118</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Donnerstag Warmwasser</description>
<device ID="2053"/>
</command>
<command name="getTimerWWFr" protocmd="getaddr">
<addr>2120</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Freitag Warmwasser</description>
<device ID="2053"/>
</command>
<command name="getTimerWWSa" protocmd="getaddr">
<addr>2128</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Samstag Warmwasser</description>
<device ID="2053"/>
</command>
<command name="getTimerWWSo" protocmd="getaddr">
<addr>2130</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Sonntag Warmwasser</description>
<device ID="2053"/>
</command>
<!-- ZIRKULATIONSZEITEN -->
<command name="getTimerZirkuMo" protocmd="getaddr">
<addr>2200</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Montag Zirku</description>
<device ID="2053"/>
</command>
<command name="getTimerZirkuDi" protocmd="getaddr">
<addr>2208</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Dienstag Zirku</description>
<device ID="2053"/>
</command>
<command name="getTimerZirkuMi" protocmd="getaddr">
<addr>2210</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Mittwoch Zirku</description>
<device ID="2053"/>
</command>
<command name="getTimerZirkuDo" protocmd="getaddr">
<addr>2218</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Donnerstag Zirku</description>
<device ID="2053"/>
</command>
<command name="getTimerZirkuFr" protocmd="getaddr">
<addr>2220</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Freitag Zirku</description>
<device ID="2053"/>
</command>
<command name="getTimerZirkuSa" protocmd="getaddr">
<addr>2228</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Samstag Zirku</description>
<device ID="2053"/>
</command>
<command name="getTimerZirkuSo" protocmd="getaddr">
<addr>2230</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Sonntag Zirku</description>
<device ID="2053"/>
</command>
<!-- BETRIEBSARTEN -->
<command name="getBetriebArtM1" protocmd="getaddr">
<addr>2301</addr>
<len>1</len>
<unit>BA</unit>
<description>Betriebsart M1</description>
<device ID="2053">
<addr>51</addr>
<len>1</len>
<unit>BA</unit>
</device>
</command>
<command name="getBetriebArt" protocmd="getaddr">
<addr>2301</addr>
<len>1</len>
<unit>BA</unit>
<description>Betriebsart</description>
<device ID="2053"/>
</command>
<command name="getBetriebArtM2" protocmd="getaddr">
<addr>3301</addr>
<len>1</len>
<unit>BA</unit>
<description>Betriebsart M2</description>
<device ID="2053"/>
</command>
<!-- SPARBETRIEB (SPARSCHWEIN) -->
<command name="getBetriebSparM1" protocmd="getaddr">
<addr>2302</addr>
<len>1</len>
<unit>RT</unit>
<description>Betriebsart Spar M1</description>
<device ID="2053"/>
</command>
<command name="getBetriebSparM2" protocmd="getaddr">
<addr>3302</addr>
<len>1</len>
<unit>RT</unit>
<description>Betriebsart Spar M2</description>
<device ID="2053"/>
</command>
<!-- PARTYBETRIEB -->
<command name="getBetriebPartyM1" protocmd="getaddr">
<addr>2303</addr>
<len>1</len>
<unit>RT</unit>
<description>Betriebsart Party M1</description>
<device ID="2053"/>
</command>
<command name="getBetriebPartyM2" protocmd="getaddr">
<addr>3303</addr>
<len>1</len>
<unit>RT</unit>
<description>Betriebsart Party M2</description>
<device ID="2053"/>
</command>
<command name="getTempPartyM1" protocmd="getaddr">
<addr>2308</addr>
<len>1</len>
<unit>ST</unit>
<description>Solltemperatur Partybetrieb M1</description>
<device ID="2053"/>
</command>
<command name="setTempPartyM1" protocmd="setaddr">
<addr>2308</addr>
<len>1</len>
<unit>ST</unit>
<description>Setze die Warmwassersolltemperatur Party M1 in Grad C</description>
<device ID="2053"/>
</command>
<command name="getTempPartyM2" protocmd="getaddr">
<addr>3308</addr>
<len>1</len>
<unit>ST</unit>
<description>Solltemperatur Partybetrieb M2</description>
<device ID="2053"/>
</command>
<command name="setTempPartyM2" protocmd="setaddr">
<addr>3308</addr>
<len>1</len>
<unit>ST</unit>
<description>Setze die Warmwassersolltemperatur Party M2 in Grad C</description>
<device ID="2053"/>
</command>
<command name="setBetriebPartyM1" protocmd="setaddr">
<addr>2303</addr>
<len>1</len>
<unit>RT</unit>
<description>Setze Betriebsart Party M1</description>
<device ID="2053"/>
</command>
<command name="setBetriebPartyM2" protocmd="setaddr">
<addr>3303</addr>
<len>1</len>
<unit>RT</unit>
<description>Setze Betriebsart Party M2</description>
<device ID="2053"/>
</command>
<!-- EXTERNES SPERREN und ANFORDERN -->
<command name="getEinflussExtSperren" protocmd="getaddr">
<addr>5732</addr>
<len>1</len>
<unit>ST</unit>
<description>Einfluss Extern Sperren auf Pumpen</description>
</command>
<command name="getEinflussExtAnforderung" protocmd="getaddr">
<addr>5734</addr>
<len>1</len>
<unit>ST</unit>
<description>Einfluss Externe Anforderung auf Pumpen</description>
</command>
<command name="getExtSperren" protocmd="getaddr">
<addr>0A81</addr>
<len>1</len>
<unit>RT</unit>
<description>Ist Extern Sperren aktiv</description>
</command>
<command name="getExtAnforderung" protocmd="getaddr">
<addr>0A80</addr>
<len>1</len>
<unit>RT</unit>
<description>Ist Externe Anforderung aktiv</description>
</command>
<!-- FROSTSCHUTZ -->
<command name="getStatusFrostM1" protocmd="getaddr">
<addr>2500</addr>
<len>1</len>
<unit>ST</unit>
<description>Status Frostwarnung M1</description>
<device ID="2053"/>
</command>
<command name="getStatusFrostM2" protocmd="getaddr">
<addr>3500</addr>
<len>1</len>
<unit>ST</unit>
<description>Status Frostwarnung M2</description>
<device ID="2053"/>
</command>
<!-- STOERUNG -->
<command name="getStatusStoerung" protocmd="getaddr">
<addr>7579</addr>
<len>1</len>
<unit>RT</unit>
<description>Status Sammelstoerung</description>
<device ID="2053"/>
<device ID="20CB">
<addr>0A82</addr>
<len>1</len>
<unit>RT</unit>
</device>
</command>
<command name="getError0" protocmd="getaddr">
<addr>7507</addr>
<len>9</len>
<unit>ES</unit>
<description>Ermittle Fehlerhistory Eintrag 1</description>
<device ID="2053">
<addr>3F</addr>
<len>1</len>
<unit>ESG</unit>
</device>
</command>
<command name="getError1" protocmd="getaddr">
<addr>7510</addr>
<len>9</len>
<unit>ES</unit>
<description>Ermittle Fehlerhistory Eintrag 2</description>
<device ID="2053"/>
</command>
<command name="getError2" protocmd="getaddr">
<addr>7519</addr>
<len>9</len>
<unit>ES</unit>
<description>Ermittle Fehlerhistory Eintrag 3</description>
<device ID="2053"/>
</command>
<command name="getError3" protocmd="getaddr">
<addr>7522</addr>
<len>9</len>
<unit>ES</unit>
<description>Ermittle Fehlerhistory Eintrag 4</description>
<device ID="2053"/>
</command>
<command name="getError4" protocmd="getaddr">
<addr>752B</addr>
<len>9</len>
<unit>ES</unit>
<description>Ermittle Fehlerhistory Eintrag 5</description>
<device ID="2053"/>
</command>
<command name="getError5" protocmd="getaddr">
<addr>7534</addr>
<len>9</len>
<unit>ES</unit>
<description>Ermittle Fehlerhistory Eintrag 6</description>
<device ID="2053"/>
</command>
<command name="getError6" protocmd="getaddr">
<addr>753D</addr>
<len>9</len>
<unit>ES</unit>
<description>Ermittle Fehlerhistory Eintrag 7</description>
<device ID="2053"/>
</command>
<command name="getError7" protocmd="getaddr">
<addr>7546</addr>
<len>9</len>
<unit>ES</unit>
<description>Ermittle Fehlerhistory Eintrag 8</description>
<device ID="2053"/>
</command>
<command name="getError8" protocmd="getaddr">
<addr>754F</addr>
<len>9</len>
<unit>ES</unit>
<description>Ermittle Fehlerhistory Eintrag 9</description>
<device ID="2053"/>
</command>
<command name="getError9" protocmd="getaddr">
<addr>7558</addr>
<len>9</len>
<unit>ES</unit>
<description>Ermittle Fehlerhistory Eintrag 10</description>
<device ID="2053"/>
</command>
<!-- SYSTEMZEIT -->
<command name="getSystemTime" protocmd="getaddr">
<addr>088E</addr>
<len>8</len>
<unit>TI</unit>
<description>Ermittle Systemzeit</description>
<device ID="2053"/>
</command>
<command name="setSystemTime" protocmd="setaddr">
<addr>088E</addr>
<len>8</len>
<unit>TI</unit>
<description>Setze Systemzeit</description>
<device ID="2053"/>
</command>
<!-- KONFIGURATION UND SETZEN -->
<!-- xxx Heizkreispumpenlogik-Funktion xxx -->
<!-- A5:0 Ohne Heizkreispumpenlogik-Funktion Mit Heizkreispumpenlogik−Funktion:
Heizkreispumpe aus, wenn A5:1 AT > RTSoll + 5 K A5:2 AT > RTSoll + 4 K A5:3
AT > RTSoll + 3 K A5:4 AT > RTSoll + 2 K A5:5 AT > RTSoll + 1 K A5:6 AT =
RTSoll A5:7 AT > RTSoll -1 K bis A5:15 AT > RTSoll -9 K -->
<command name="getKA5" protocmd="getaddr">
<addr>27A5</addr>
<len>1</len>
<unit>UTI</unit>
<description>Ermittle die Heizkreispumpenlogik&#x2212;Funktion</description>
<!-- KA5_KonfSommersparSchaltschwelle A5 0x27a5 -->
</command>
<command name="setKA5" protocmd="setaddr">
<addr>27A5</addr>
<len>1</len>
<unit>UTI</unit>
<description>Setze die Heizkreispumpenlogik&#x2212;Funktion</description>
<!-- KA5_KonfSommersparSchaltschwelle A5 0x27a5 1Byte -->
</command>
<command name="getKA5M2" protocmd="getaddr">
<addr>37A5</addr>
<len>1</len>
<unit>UTI</unit>
<description>Ermittle die Heizkreispumpenlogik&#x2212;Funktion M2</description>
<!-- KA5_KonfSommersparSchaltschwelleM2 A5 0x37a5 -->
</command>
<command name="setKA5M2" protocmd="setaddr">
<addr>37A5</addr>
<len>1</len>
<unit>UTI</unit>
<description>Setze die Heizkreispumpenlogik&#x2212;Funktion M2</description>
<!-- KA5_KonfSommersparSchaltschwelleM2 A5 0x37a5 1Byte -->
</command>
<command name="getKA5M3" protocmd="getaddr">
<addr>47A5</addr>
<len>1</len>
<unit>UTI</unit>
<description>Ermittle die Heizkreispumpenlogik&#x2212;Funktion M3</description>
<!-- KA5_KonfSommersparSchaltschwelleM2 A5 0x47a5 -->
</command>
<command name="setKA5M3" protocmd="setaddr">
<addr>47A5</addr>
<len>1</len>
<unit>UTI</unit>
<description>Setze die Heizkreispumpenlogik&#x2212;Funktion M3</description>
<!-- KA5_KonfSommersparSchaltschwelleM2 A5 0x47a5 1Byte -->
</command>
<!-- xxx Konfiguration A6 Erweiterte Sparschaltung xxx -->
<!-- KA6_KonfiAbsolutSommersparM2 A6 0x37a6 -->
<!-- A6:36 Erweiterte Sparschaltung nicht aktiv A6:5 bis A6:35 Erweiterte
Sparschaltung aktiv, d.h. bei einem variabel einstellbaren Wert von 5 bis
35 °C zuzüglich 1°C werden Brenner und Heizkreispumpe ausgeschaltet. Grundlage
ist die gedämpfte Außentemperatur, die sich aus tatsächlicher Außentemperatur
und einer Zeitkonstanten, die das Auskühlen eines durchschnittlichen Gebäudes
berücksichtigt, zusammensetzt. -->
<command name="getKA6" protocmd="getaddr">
<addr>27A6</addr>
<len>1</len>
<unit>UTI</unit>
<description>Ermittle die AbsolutSommersparschaltung </description>
<!-- KA6_KonfiAbsolutSommerspar A6 0x27a6 -->
</command>
<command name="setKA6" protocmd="setaddr">
<addr>27A6</addr>
<len>1</len>
<unit>UTI</unit>
<description>Setze die AbsolutSommersparschaltung</description>
<!-- KA6_KonfiAbsolutSommerspar A6 0x27a6 -->
</command>
<command name="getKA6M2" protocmd="getaddr">
<addr>37A6</addr>
<len>1</len>
<unit>UTI</unit>
<description>Ermittle die AbsolutSommersparschaltung M2</description>
<!-- KA6_KonfiAbsolutSommersparM2 A6 0x37a6 -->
</command>
<command name="setKA6M2" protocmd="setaddr">
<addr>37A6</addr>
<len>1</len>
<unit>UTI</unit>
<description>Setze die AbsolutSommersparschaltung M2</description>
<!-- KA6_KonfiAbsolutSommersparM2 A6 0x37a6 1Byte -->
</command>
<command name="getKA6M3" protocmd="getaddr">
<addr>47A6</addr>
<len>1</len>
<unit>UTI</unit>
<description>Ermittle die AbsolutSommersparschaltung M3</description>
<!-- KA6_KonfiAbsolutSommersparM3 A6 0x47a6 -->
</command>
<command name="setKA6M3" protocmd="setaddr">
<addr>47A6</addr>
<len>1</len>
<unit>UTI</unit>
<description>Setze die AbsolutSommersparschaltung M3</description>
<!-- KA6_KonfiAbsolutSommersparM3 A6 0x47a6 1Byte -->
</command>
<!-- Auswirkung Mischer auf interne Pumpe -->
<command name="getKonfiWirkung_aufPumpe" protocmd="getaddr">
<addr>37A8</addr>
<len>1</len>
<unit>ST</unit>
<description>Ermittle Einfluss Mischer auf int UWP</description>
<!-- 0 ohne 1 M2 setzt Anforderung an Int.Pumpe - nur sinnvoll bei Mischerkreis -->
<!-- wenn nicht vorhanden Rückgabewert -1.0 -->
</command>
<command name="setKonfiWirkung_aufPumpe" protocmd="setaddr">
<addr>37A8</addr>
<len>1</len>
<unit>ST</unit>
<description>Setze Einfluss Mischer auf int UWP</description>
<!-- 0 ohne 1 M2 setzt Anforderung an Int.Pumpe - nur sinnvoll bei Mischerkreis -->
<!-- wenn nicht vorhanden Rückgabewert -1.0 -->
</command>
<command name="getKA3_KonfiFrostgrenzeM1_GWG" protocmd="getaddr">
<addr>27A3</addr>
<len>1</len>
<unit>UTI</unit>
<description>Ermittle die eingestellte Frostgrenze A1M1</description>
<!-- Range GradCelsius SByte 1 -9 15 -->
</command>
<command name="setKA3_KonfiFrostgrenzeM1_GWG" protocmd="setaddr">
<addr>27A3</addr>
<len>1</len>
<unit>UTI</unit>
<description>Setze die Frostgrenze A1M1</description>
<!-- Range GradCelsius SByte 1 -9 15 -->
</command>
<command name="getKA3_KonfiFrostgrenzeM2_GWG" protocmd="getaddr">
<addr>37A3</addr>
<len>1</len>
<unit>UTI</unit>
<description>Ermittle die eingestellte Frostgrenze</description>
<!-- Range GradCelsius SByte 1 -9 15 -->
</command>
<command name="setKA3_KonfiFrostgrenzeM2_GWG" protocmd="setaddr">
<addr>37A3</addr>
<len>1</len>
<unit>UTI</unit>
<description>Setze die Frostgrenze</description>
<!-- Range GradCelsius SByte 1 -9 15 -->
</command>
<command name="setPumpeStatusZirku" protocmd="setaddr">
<addr>0846</addr>
<len>1</len>
<unit>RT</unit>
<description>Setze den Status der Zirkulationspumpe</description>
<device ID="2053">
<addr>01</addr>
<len>1</len>
<bit>2</bit>
<precommand>getPumpeStatusZirku</precommand>
<unit>BA</unit>
</device>
</command>
<command name="setTimerM1Mo" protocmd="setaddr">
<addr>2000</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Montag M1</description>
<device ID="2053"/>
</command>
<command name="setTimerM1Di" protocmd="setaddr">
<addr>2008</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Dienstag M1</description>
<device ID="2053"/>
</command>
<command name="setTimerM1Mi" protocmd="setaddr">
<addr>2010</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Mittwoch M1</description>
<device ID="2053"/>
</command>
<command name="setTimerM1Do" protocmd="setaddr">
<addr>2018</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Donnerstag M1</description>
<device ID="2053"/>
</command>
<command name="setTimerM1Fr" protocmd="setaddr">
<addr>2020</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Freitag M1</description>
<device ID="2053"/>
</command>
<command name="setTimerM1Sa" protocmd="setaddr">
<addr>2028</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Samstag M1</description>
<device ID="2053"/>
</command>
<command name="setTimerM1So" protocmd="setaddr">
<addr>2030</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Sonntag M1</description>
<device ID="2053"/>
</command>
<command name="setTimerM2Mo" protocmd="setaddr">
<addr>3000</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Montag M2</description>
<device ID="2053"/>
</command>
<command name="setTimerM2Di" protocmd="setaddr">
<addr>3008</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Dienstag M2</description>
<device ID="2053"/>
</command>
<command name="setTimerM2Mi" protocmd="setaddr">
<addr>3010</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Mittwoch M2</description>
<device ID="2053"/>
</command>
<command name="setTimerM2Do" protocmd="setaddr">
<addr>3018</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Donnerstag M2</description>
<device ID="2053"/>
</command>
<command name="setTimerM2Fr" protocmd="setaddr">
<addr>3020</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Freitag M2</description>
<device ID="2053"/>
</command>
<command name="setTimerM2Sa" protocmd="setaddr">
<addr>3028</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Samstag M2</description>
<device ID="2053"/>
</command>
<command name="setTimerM2So" protocmd="setaddr">
<addr>3030</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Sonntag M2</description>
<device ID="2053"/>
</command>
<command name="setTimerWWMo" protocmd="setaddr">
<addr>2100</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Montag Warmwasser</description>
<device ID="2053"/>
</command>
<command name="setTimerWWDi" protocmd="setaddr">
<addr>2108</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Dienstag Warmwasser</description>
<device ID="2053"/>
</command>
<command name="setTimerWWMi" protocmd="setaddr">
<addr>2110</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Mittwoch Warmwasser</description>
<device ID="2053"/>
</command>
<command name="setTimerWWDo" protocmd="setaddr">
<addr>2118</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Donnerstag Warmwasser</description>
<device ID="2053"/>
</command>
<command name="setTimerWWFr" protocmd="setaddr">
<addr>2120</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Freitag Warmwasser</description>
<device ID="2053"/>
</command>
<command name="setTimerWWSa" protocmd="setaddr">
<addr>2128</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Samstag Warmwasser</description>
<device ID="2053"/>
</command>
<command name="setTimerWWSo" protocmd="setaddr">
<addr>2130</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Sonntag Warmwasser</description>
<device ID="2053"/>
</command>
<command name="setTimerZirkuMo" protocmd="setaddr">
<addr>2200</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Montag Zirku</description>
<device ID="2053"/>
</command>
<command name="setTimerZirkuDi" protocmd="setaddr">
<addr>2208</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Dienstag Zirku</description>
<device ID="2053"/>
</command>
<command name="setTimerZirkuMi" protocmd="setaddr">
<addr>2210</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Mittwoch Zirku</description>
<device ID="2053"/>
</command>
<command name="setTimerZirkuDo" protocmd="setaddr">
<addr>2218</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Donnerstag Zirku</description>
<device ID="2053"/>
</command>
<command name="setTimerZirkuFr" protocmd="setaddr">
<addr>2220</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Freitag Zirku</description>
<device ID="2053"/>
</command>
<command name="setTimerZirkuSa" protocmd="setaddr">
<addr>2228</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Samstag Zirku</description>
<device ID="2053"/>
</command>
<command name="setTimerZirkuSo" protocmd="setaddr">
<addr>2230</addr>
<len>8</len>
<unit>CT</unit>
<description>Schaltzeit Sonntag Zirku</description>
<device ID="2053"/>
</command>
<!-- Gerätedaten -->
<command name="getDevType" protocmd="getaddr">
<addr>00F8</addr>
<len>8</len>
<unit>DT</unit>
<description>Ermittle Device Typ der Anlage / SystemIdent_SX</description>
</command>
<command name="getCtrlId" protocmd="getaddr">
<addr>00F9</addr>
<len>7</len>
<unit>DT</unit>
<description>Reglerkennung</description>
</command>
<command name="getInventory" protocmd="getaddr">
<addr>08E0</addr>
<len>7</len>
<unit>SN</unit>
<description>Sachnummer</description>
</command>
<command name="getInvCodePlug" protocmd="getaddr">
<addr>1010</addr>
<len>7</len>
<unit>SN</unit>
<description>Sachnummer Codierstecker</description>
</command>
<command name="getPanelSWIndex" protocmd="getaddr">
<addr>7330</addr>
<len>8</len>
<unit>DT</unit>
<description>Bedienteil SW Index</description>
</command>
<command name="getKsCardType" protocmd="getaddr">
<addr>7656</addr>
<len>4</len>
<unit>DT</unit>
<description>KS Karte Typ</description>
</command>
<command name="getAnlagenschema" protocmd="getaddr">
<addr>7700</addr>
<len>2</len>
<unit>ST</unit>
<description>Ermittle das Anlagenschema</description>
<!-- K00_KonfiAnlagenschemaGWG_W (00) Heizkreis-Warmwasserschema Adresse
7700 1 A1 | 1 2 A1 + WW | 2 3 M2 | 3 4 M2 + WW | 4 5 A1 + M2 | 5 6 A1 + M2
+ WW | 6 -->
</command>
<command name="init" protocmd="getaddr">
<description>Inintialisierung</description>
<device ID="2053" protocmd="init">
<addr>dummy</addr>
</device>
</command>
<command name="get" protocmd="gettestaddr">
<description>Testabfrage, Adresse eingeben</description>
<device ID="20CB">
<addr>dummy</addr>
<len>2</len>
</device>
<device ID="2053">
<addr>dummy</addr>
<len>1</len>
</device>
<device ID="2094">
<addr>dummy</addr>
<len>2</len>
</device>
</command>
<command name="vget" protocmd="getvtestaddr">
<description>Testabfrage, Virtuelle Adresse eingeben</description>
<device ID="2053">
<addr>dummy</addr>
<len>1</len>
</device>
</command>
<command name="bget" protocmd="getbtestaddr">
<description>Testabfrage, Bedienteil Adresse eingeben</description>
<device ID="2053">
<addr>dummy</addr>
<len>1</len>
</device>
</command>
<command name="pget" protocmd="getptestaddr">
<description>Testabfrage, Port Adresse eingeben</description>
<device ID="2053">
<addr>dummy</addr>
<len>1</len>
</device>
</command>
<command name="eget" protocmd="getetestaddr">
<description>Testabfrage, EEProm Adresse eingeben</description>
<device ID="2053">
<addr>dummy</addr>
<len>1</len>
</device>
</command>
<command name="xget" protocmd="getxtestaddr">
<description>Testabfrage, XRAM Adresse eingeben</description>
<device ID="2053">
<addr>dummy</addr>
<len>1</len>
</device>
</command>
<command name="kmget" protocmd="getkmtestaddr">
<description>Testabfrage, KM-Bus EEProm Adresse eingeben</description>
<device ID="2053">
<addr>dummy</addr>
<len>1</len>
</device>
</command>
<command name="getExtBA" protocmd="getxaddr">
<description>Ermittle Zustand der externen Betriebsartenumschaltung</description>
<device ID="2053">
<addr>00</addr>
<len>1</len>
<bit>0</bit>
<unit>BST</unit>
</device>
</command>
<command name="getPumpeSollM1" protocmd="getaddr">
<description>Ermittle Solldrehzahl Pumpe M1</description>
<device ID="2053">
<addr>B0</addr>
<len>1</len>
<unit>PR1</unit>
</device>
</command>
<command name="getVentilStatus" protocmd="getpaddr">
<description>Ermittle Zustand Umschaltventil WW/Heizen</description>
<device ID="2053">
<addr>01</addr>
<len>1</len>
<bit>1</bit>
<unit>BST</unit>
</device>
</command>
<command name="getUmschaltventil" protocmd="getaddr">
<addr>0A10</addr>
<len>1</len>
<unit>USV</unit>
<description>Ermittle den Status des Umschaltventils WW/Heizen</description>
<device ID="2098"/>
<device ID="2053">
<addr>01</addr>
<len>1</len>
<bit>1</bit>
<unit>BST</unit>
</device>
</command>
<command name="setUmschaltventil" protocmd="setaddr">
<addr>0A10</addr>
<len>1</len>
<unit>USV</unit>
<description>Setze den Status des Umschaltventils WW/Heizen</description>
<device ID="2098"/>
<device ID="2053">
<addr>01</addr>
<len>1</len>
<bit>1</bit>
<unit>BST</unit>
</device>
</command>
<command name="getHKPTyp" protocmd="geteaddr">
<description>Ermittle Typ der Heizkreispumpe</description>
<device ID="2053">
<addr>05</addr>
<len>1</len>
<bit>5</bit>
<unit>HKT</unit>
</device>
</command>
<command name="getTempRueck" protocmd="getaddr">
<description>Ermittle die Rueckauftemepratur</description>
<device ID="2053">
<addr>44</addr>
<len>1</len>
<bit>5</bit>
<unit>UT1</unit>
</device>
</command>
</commands>
</vito>
getTempA;Vitodens_Outside_Temp
getTempWWist;Vitodens_WW_Temp
getTempWWsoll;Vitodens_WW_Temp_Set
getBrennerStatus;Vitodens_Brenner_Status
getBrennerStarts;Vitodens_Brenner_Starts
getBrennerStunden1;Vitodens_Brenner_Stunden
getTempAbgas;Vitodens_Brenner_Abgas_Temp
getTempVListM1;Vitodens_Heizung_Vorlauf_Temp
getTempRL17A;Vitodens_Heizung_Ruecklauf_Temp
# m h dom mon dow command
# vclient reading values every 5 minutes
*/5 * * * * /home/openhabian/vclient/getItems.sh >/dev/null 2>&1
#!/usr/bin/env bash
VC_COMMAND_MAP="/home/openhabian/vclient/command_item_map.txt"
SED_LINE=""
declare -A itemMap
for i in $(cat ${VC_COMMAND_MAP}); do
mapFrom="$(echo $i | cut -d ';' -f1 | xargs)"
mapTo="$(echo $i | cut -d ';' -f2 | xargs)"
SED_LINE+="s/\<$mapFrom\>/$mapTo/g;"
itemMap+=[$mapFrom]=$mapTo
done
VC_COMMANDS=$(cat ${VC_COMMAND_MAP} | cut -d ';' -f1 | tr '\n' ',')
VC_RESULT=($(vclient --host localhost:3002 --command $VC_COMMANDS --munin | tr ' ' ':'))
for i in "${VC_RESULT[@]}"; do
key="$(echo $i | cut -d ':' -f1 | sed 's/.value//g' | xargs)"
mappedKey=$(echo $key | sed $SED_LINE)
value="$(echo $i | cut -d ':' -f2 | xargs)"
# regex-check whether we have a number or not
re='^[+-]?[0-9]+([.][0-9]+)?$'
if ! [[ $value =~ $re ]] ; then
echo "$key: '$value' is not a number - skipping!" >&2;
else
curl -X POST --header "Content-Type: text/plain" --header "Accept: application/json" -d "${value}" "http://openhabianpi:8080/rest/items/${mappedKey}"
fi
done

vclient (vcontrold) setup and configs for OpenHAB

  • vclient included in vcontrold (deb-package)
  • general setup:
    • IR-USB-Interafce to Viessmann Vitodens
    • vcontrold running (configurations and udev rules included)
    • cron-scheduled job:
      • read list with get-commands and command-OpenHAB-item-mapping
      • retrieve values using get-command-list
      • convert to numerical values and handle nulls/errors
      • write to OpenHAB items using OpenHAB REST API
    • further: OpenHAB persistence to InfluxDB
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment