openv / vcontrold

:fire: vcontrold Daemon for control and logging of Viessmann® type heating devices
https://github.com/openv/openv/wiki
GNU General Public License v3.0
102 stars 55 forks source link

Looking for addresses for V200WO1A or V200WO1B ? #130

Closed ronniebach closed 1 year ago

ronniebach commented 1 year ago

I'm looking for a reference list of addresses for the commands for V200WO1A / V200WO1B

More specific I'm trying to figure out how to set it in Party mode

The normal mode of operation is controlled at address: B000 - which returns value: 02 at NORMAL operation. Trying to reverse engineer - and looks like this address returns 42 - when I manully put it in PARTY mode on the console.

But I would prefer to have a reference list to lookup the addresses at

Thanks.

philippoo66 commented 1 year ago

Hi Ronnie!

go to https://github.com/philippoo66/ViessData21/blob/master/DP_Listen_2.zip you will find the V200WO1A DP list there. I think there is no explicit list for V200WO1B. To make sure follow https://github.com/philippoo66/ViessData21/blob/master/DataPoints_ReadMe.txt

B000 is described as "_Bedienbetriebsart Heizkreis A1/HK1 (7373) [WPR_WO1H_HK1Betriebsart~0xB000 (Byte)]" Its value 2 corresponds to the enum to this parameter, but the enum does not contain value 42.

grafik

even there is also "_Partybetrieb Heizkreis A1/HK1 (8059) [WPR3_HK1Party~0xB000 (Byte)]" which enums are

grafik

Both DPs are marked as Type 3 - write-only.

There is a thirdy one 'Party...' in the DP list which is "_Partybetrieb HK1 (8132) [WPR3_Geraetestatus_PartyHK1~0x1410 (Byte)]"

This one is marked as Type 1 - read-only (ok, 'status'). Enum values also only 0, 1.

42 (dec) is 0010 1010 bin - I really can't identify any 'system'?!? sometimes there is a 'bit shift' or something, but I can't see in this case...

Does it work setting to party mode by wirting 42 to 0xB000?

greetings! Phil

ronniebach commented 1 year ago

Yes... I got it wokring... by adding 42 to the enum for 0xB000 PARTY MODE = COMFORT MODE

    <unit name='BetriebsArt'>
       <abbrev>OM</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 bytes='42' text='COMFORT'/>
       <enum text='UNKNOWN'/>
    </unit>
philippoo66 commented 1 year ago

is the enum bytes='..' dec or hex? I don't know...

if your reading was 42 hex then it would be 01000010 bin - this could make some sense like bit_6 = Comfort

ronniebach commented 1 year ago

Not really sure.... The point is that it works if you provide the function call with 42