Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VRC 720 configuration: understanding and managing Hot Water Circuit (HWC) basic parameters and time slots (plus circulation) #4

Open
wants to merge 28 commits into
base: master
Choose a base branch
from

Conversation

stadid
Copy link
Owner

@stadid stadid commented Mar 13, 2024

Goal of the PR

To check and confirm basic set of registers in the ebusd configuration associated with the Hot Water Circuit (HWC) and circulation (including corresponding time slots for hot water and circulation)

General information on basic Hot Water parameters

See important notes below on writing to the HwcEnabled register.

pic1

pic2

pic3

Basic set of regulator configuration registers linked with the hot water circuit modes and temperature parameters:

EBUSD regulator config (15.CTLV2.csv) implementation: see JonesPD repository

For managing or determining status of the hot water circuit please refer to the tables above and regulator manual.
Below is the list of the Ebusd registers mentioned above with the short comments on each register.

HwcEnabled - (RW) register configures hot water circuit availability on the system

IMPORTANT!
It was reported that changing state of HwcEnabled register could silently fail with no errors. (in the consequent read operation regulator will return the unchanged value). Preliminary it is considered as "normal" behavior since this parameter is set mainly only at regulator setup procedure which is performed by physical interaction with the regulator itself. No issues reported with reading state of the above register (it correctly reflects current regulator setting shown in the menu).

HwcSFMode - (RW) hot water circuit Special Function (SF) mode
HwcOpMode - (RW) hot water circuit operation mode
HwcStatus - (RO) hot water circuit Status

HwcTempDesired - (RW) desired domestic hot water temperature (valid range: 35-70C, in 1C steps)
HwcStorageTemp - (RO) actual domestic hot water temperature
HwcReheatingActive - (RO) indicates hot water run (is currently heat generator warming hot water)

Set of RW registers used by "away mode" - see corresponding PR

HwcHolidayStartDate
HwcHolidayEndDate
HwcHolidayStartTime
HwcHolidayEndTime

HwcLegionellaDay - (RW) Anti-legionella function day setting
HwcLegionellaTime - (RW) Anti-legionella function time setting

HwcCircPumpStatus - (RO) shows current status of the DHW circulation pump (shows "on" during Anti-legionella function is running).

Managing Hot water preparation timers

Number of configured timeslots for each day could be read from
hwcTimer.TimeSlotsPerWeekday

Hot water circuit time slots are set using the following registers (up to 3 slots for the weekday):

hwcTimer.Monday
hwcTimer.Tuesday
hwcTimer.Wednesday
hwcTimer.Thursday
hwcTimer.Friday
hwcTimer.Saturday
hwcTimer.Sunday  

Example of setting timeslot for the hot water preparation for Monday

ebusctl write -c ctlv2 hwcTimer.Monday "0;3;00:20;06:00;ff ff"

0 --> first slot
3 --> number of slots
00:20 --> start
06:00 --> end
ff ff --> mandatory

IMPORTANT!
ALL time slots of the day have to be written, even if only one slot is updated!
Failure to write ALL time slots will result in the new settings not applied to the regulator (even already written time slots parameters will not be applied).

Example of reading timeslot data:

ebusctl r -f -i 0 -c ctlv2 hwcTimer.Monday

where -i 0 is timeslot index (0 = 1st timeslot, 1 = 2nd timeslot, etc....)

Deleting hot water time slots

The recommended way of performing time slot deletion is to delete time slots for the whole day.
It could be achieved by using writing time slot command with the total number of time slots =0

Example of deleting hot water time slots for Monday
ebusctl write -c ctlv2 hwcTimer.Monday "0;0;00:00;00:00;ff ff"

Managing circulation timers

Number of configured timeslots for circulation for each day could be read from
ccTimer.TimeSlotsPerWeekday

Circulation time slots are set using the following registers (up to 3 slots for the weekday):

ccTimer.Monday
ccTimer.Tuesday
ccTimer.Wednesday
ccTimer.Thursday
ccTimer.Friday
ccTimer.Saturday
ccTimer.Sunday  

Example of setting timeslot for the circulation for Monday

ebusctl write -c ctlv2 ccTimer.Monday "0;3;00:20;06:00;ff ff"

0 --> first slot
3 --> number of slots
00:20 --> start
06:00 --> end
ff ff --> mandatory

IMPORTANT!
ALL time slots of the day have to be written, even if only one slot is updated!
Failure to write ALL time slots will result in the new settings not applied to the regulator (even already written time slots parameters will not be applied).

Example of reading timeslot data:
ebusctl r -f -i 0 -c ctlv2 ccTimer.Monday

where -i 0 is timeslot index (0 = 1st timeslot, 1 = 2nd timeslot, etc....)

Deleting circulation time slots

The recommended way of performing time slot deletion is to delete time slots for the whole day.
It could be achieved by using writing time slot command with the total number of time slots =0

Example of deleting circulation time slots for Monday
ebusctl write -c ctlv2 ccTimer.Monday "0;0;00:00;00:00;ff ff"

Extra information on hot water timeslot registers (not official, experimental use only!)

It was discovered that hot water timeslot actually contains desired hot water temperature.
In order to read this temperature you need to change timer read / write definition for all hwcTimer registers in 15.ctlv2.csv file from rTimeSlotWithoutTemp and wTimeSlotWithoutTemp to rTimeSlotWithTemp and wTimeSlotWithTemp correspondingly.

After doing this you'll be able to read and write desired hot water temperature for time slot.

IMPORTANT!
(actual behavior of VRC720/2)
Please note that temperature read for any timeslot is equal to HwcTempDesired and also writing new hot water temperature for any timeslot will result in setting this temperature to all timeslots for all weekdays and also HwcTempDesired. It is not recommended to set hot water temperature that way. This info provided only for educational purposes.

wlcrs and others added 28 commits January 28, 2022 19:47
Value EnergyIntegral added in 08.hmu.csv
Added value EnergyIntergal
Some special operating modes are missing for VRC 700, added them. Successfully tested with VRC700/4
Naming of mode 6 changed per English manual for VRC700
Some special operating modes are missing for VRC 700, added them. Successfully tested with VRC700/4. Naming of mode 6 changed per English manual for VRC700.
Not sure if English mode names fit for the German file. Please change to German if necessary.
Translated
```
scan.08  = Vaillant;BAI00;0105;7803
scan.08 id = 21;21;26;0010021875;0001;005296;N5
scan.15  = Vaillant;70000;0614;6903
scan.15 id = no data stored
```

```
address 03: master john30#11
address 08: slave john30#11, scanned "MF=Vaillant;ID=BAI00;SW=0105;HW=7803", loaded "vaillant/bai.0010015600.inc" ([PROD='0010021875']), "vaillant/08.bai.csv"
address 10: master #2
address 15: slave #2, scanned "MF=Vaillant;ID=70000;SW=0614;HW=6903", loaded "vaillant/15.700.csv"
address 31: master john30#8, ebusd
address 36: slave john30#8, ebusd
```
Updated special modes for VRC 700
Updated special modes for VRC 700
Add configuration files for Vaillant Calormatic 450 and 450f.
Symlink VRT350 for HW=7102
also closes john30#321 and john30#322
Added Zone3 timers for heating and cooling. Successfully tested on VRC700/4
@stadid stadid added the documentation Improvements or additions to documentation label Mar 13, 2024
@stadid stadid changed the title VRC 720 configuration: understanding and managing Hot Water Circuit (HWC) parameters and time slots (plus circulation) VRC 720 configuration: understanding and managing Hot Water Circuit (HWC) basic parameters and time slots (plus circulation) Mar 13, 2024
@stadid
Copy link
Owner Author

stadid commented May 19, 2024

@chrizzzp
Unfortunately none of the candidates fit.
Checked all, selected ones that shows 1 while circulation is on, and tested them by switching DHW off and none of them changed it's value to 0.
It seems that I am missing something.

Have you met registers with inverted logic?
Maybe it's woth trying all that shows 0 if they change to 1 when switching DHW off?

@jonesPD
Copy link

jonesPD commented May 20, 2024

Note: I added the onoff definitions to the repository.
@chrizzzp : if you have other types to share for the unknown registers so we all have the same info and together less maintenance with updates.

@chrizzzp
Copy link

@stadid

Have you met registers with inverted logic?

Never, so far.

Maybe it's woth trying all that shows 0 if they change to 1 when switching DHW off?

I think it's worth checking them.

In the hcmode.inc there is a 'update write' definition named StatusCirPump but it's a register from the heat generator (hmu), so it could be the circulation pump for the heating. Haven't ever monitored this one.:

hcmode.inc

*uw,,,,,,"B512",,,,,,,
uw,,StatusCirPump,Status circulation pump,,,,00,,,UCH,0=off;100=on,,

@chrizzzp
Copy link

@jonesPD

Note: I added the onoff definitions to the repository. @chrizzzp : if you have other types to share for the unknown registers so we all have the same info and together less maintenance with updates.

This is what I currently have from my data analysis (therefore preliminary). I do not remember at the moment why I chose SIN instead of UIN for some registers...

*r,,,,,,B524,02000000,,,IGN:4,,,
*w,,,,,,B524,02010000,,,,,,
r,,xUnknown04,(konstant 0),,,,0400,,,UIN,,,
r,,xUnknown0B,(konstant 0),,,,0B00,,,SIN,,,
r,,xUnknown13,(konstant 0),,,,1300,,,UIN,,,
r,,xUnknown1C,(konstant 80),,,,1C00,,,EXP,,,
r,,xUnknown25,(konstant 0),,,,2500,,,SIN,,,
r,,xUnknown31,(konstant 0),,,,3100,,,SIN,,,
r,,xUnknown48,(konstant 1 - 0 at standby),,,,4800,,,UIN,,,polled by VR921 every 60s from ctlv2
r,,xUnknown60,(konstant 12),,,,6000,,,SIN,,,
r,,xUnknown61,(konstant 0),,,,6100,,,SIN,,,
r,,xUnknown65,(konstant 0),,,,6500,,,SIN,,,
r;w,,xUnknown67,(VR70 konfig 1 konstant -),,,,6700,,,tempv,,,
r;w,,xUnknown68,(VR70 konfig 1 konstant -),,,,6800,,,tempv,,,
r,,xUnknown7E,(konstant 0),,,,7E00,,,EXP,,,
r,,xUnknown80,(konstant 0),,,,8000,,,EXP,,,
r,,xUnknown81,(konstant 10),,,,8100,,,EXP,,,
r,,xUnknown85,(konstant -),,,,8500,,,tempv,,,
r,,xUnknown86,(konstant 60),,,,8600,,,SIN,,,
r,,xUnknown89,(konstant 15),,,,8900,,,SIN,,,
r,,xUnknown8A,(konstant 1),,,,8A00,,,EXP,,,
r,,xUnknown8B,(konstant 55),,,,8B00,,,EXP,,,
r,,xUnknown8D,(konstant 0),,,,8D00,,,SIN,,,
r,,xUnknown8E,(konstant 0),,,,8E00,,,SIN,,,
r,,xUnknown8F,(konstant 0),,,,8F00,,,SIN,,,
r,,xUnknownA5,(konstant 0),,,,A500,,,EXP,,,
r,,xUnknownAF,(konstant 0),,,,AF00,,,EXP,,,
r,,xUnknownB0,(konstant 0),,,,B000,,,EXP,,,
r,,xUnknownB1,(konstant 0),,,,B100,,,EXP,,,
r,,xUnknownB2,(konstant 4543),,,,B200,,,HEX:*,,,
r,,xUnknownB9,(konstant 0),,,,B900,,,EXP,,,
r,,xUnknownBA,(konstant 0),,,,BA00,,,EXP,,,
r,,xUnknownBB,(konstant 0),,,,BB00,,,EXP,,,
r,,xUnknownBC,(konstant 0),,,,BC00,,,EXP,,,
r,,xUnknownBD,(konstant 0),,,,BD00,,,EXP,,,
r,,xUnknownBF,(konstant 0),,,,BF00,,,EXP,,,
r,,xUnknownDA00,(konstant 01.01.2019),,,,DA00,,,date,,,
r,,xUnknownDB00,(konstant 01.01.2019),,,,DB00,,,date,,,
r,,xUnknownEF00,(konstant 20),,,,EF00,,,EXP,,,
r,,xUnknownF200,,,,,F200,,,HEX:*,,,
r,,xUnknownF300,,,,,F300,,,HEX:*,,,
r,,xUnknownF600,(konstant 15),,,,F600,,,EXP,,,
r,,xUnknownFB00,(konstant 10),,,,FB00,,,EXP,,,
r,,xUnknownFC00,(konstant 62),,,,FC00,,,EXP,,,
r,,xUnknownFE00,(konstant 13),,,,FE00,,,EXP,,,
r,,xUnknownFF00,(konstant 25),,,,FF00,,,EXP,,,

*r,,,,,,B524,02000200,,,IGN:4,,,
*w,,,,,,B524,02010200,,,,,,
r,,Hc1Unknown13,(konstant 1),,,,1300,,,SIN,,,
r,,Hc1Unknown16,(konstant 0),,,,1600,,,SIN,,,
r,,Hc1Unknown17,(konstant 0),,,,1700,,,EXP,,
r,,Hc1Unknown1F,(konstant 4),,,,1F00,,,EXP,,,

@stadid
Copy link
Owner Author

stadid commented May 26, 2024

@chrizzzp

in the hcmode.inc there is a 'update write' definition named StatusCirPump but it's a register from the heat generator (hmu), so it could be the circulation pump for the heating. Haven't ever monitored this one.:

hcmode.inc

*uw,,,,,,"B512",,,,,,,
uw,,StatusCirPump,Status circulation pump,,,,00,,,UCH,0=off;100=on,,

Interesting - thank you. Unusual value of 100 for pump on. Usually it's 0 or 1.

As I have BAI heat generator its impossible to check, however I am successfully reading cir pump status from BAI as corresponding register is present in BAI config.

The problem here is that DHW cir. pump is either managed by the heat generator (through 220V output on main PCB or VR40 additional module "2 of 7"), but there are configurations where DHW circulation pump is connected to VR71 relay output.
It seems that based on it's settings, regulator determines which config is used and showing DHW pump status in the menu.
Important question is could this regulator register be read using ebus, or it's some kind of internal register not exposed to ebus?

For sure reading DHW cirpump status from regulator is the universal approach fitting all systems, but could this be accomplished?

@stadid
Copy link
Owner Author

stadid commented May 27, 2024

@jonesPD, @chrizzzp

I believe that I've found the DHW circulation pump status (on/off) register.
It's funny but it's already discovered register named HwcLegionellaRunActive

The process was the following: I've compared two complete dumps of known register values taken from regulator: one with DHW circulation pump running and another with DHW circulation pump turned off.

During the comparison of the dumps I've noticed that HwcLegionellaRunActive status changed. As I have anti-legionella function disabled, it make no sense for this setting to change and to return 1 (yes), so I've started to check this register value vs. physical state of DHW circulation pump and it appeared that this register correctly showing the current circulation pump status (checked using various scenarios including switching DHW off and putting it in Time-contr. mode with circulation schedule enabled/disabled the whole day.).

My guess is that this register was incorrectly linked only with Anti-legionella run as during this process DHW circulation is switched on (according to the manual). Strange that this register was not checked during normal DHW operation.

@jonesPD since you have hot water option in your system, could you please check this register value against DHW circulation pump state?

If confirmed I propose to change this register from:

r,,HwcLegionellaRunActive,,,,,0200,,,yesno,,,Indicates ongoing legionella run

to

r,,HwcCirPump,,,,,0200,,,onoff,,,DHW circulation pump ststus

@chrizzzp
Copy link

@stadid

The process was the following: I've compared two complete dumps of known register values taken from regulator: one with DHW circulation pump running and another with DHW circulation pump turned off.

That's also how I identified some registers. Did you use the 'readall.sh' script to dump the registers?

@jonesPD
Copy link

jonesPD commented May 28, 2024

I believe that I've found the DHW circulation pump status (on/off) register. It's funny but it's already discovered register named HwcLegionellaRunActive
My guess is that this register was incorrectly linked only with Anti-legionella run as during this process DHW circulation is switched on (according to the manual). Strange that this register was not checked during normal DHW operation.

That's odd indeed. I 'discovered' and added this register not that long ago, and still remember my relief finding something related to Legionella Runs and being able to stop that by disabling the Hwc circuit altogether (using HwcEnabled register).
There is also the HwcReheatingActive register which (in my system) indicates that the boiler is being reheated.
But just thinking outloud: perhaps this register has multiple functions? Or perhaps it is an indication of the system enabling the circulation pump indeed and it uses this by default during a legionella run? I don't recall setting/changing that behavior and don't have the manual ready to see how to do that.

@jonesPD since you have hot water option in your system, could you please check this register value against DHW circulation pump state?

I expect a regular hot water run later today end of the day, and will check what happens with this register at that time.

r,,HwcCirPump,,,,,0200,,,onoff,,,DHW circulation pump st**a**tus

When we settle on this: I corrected typo above.

@stadid
Copy link
Owner Author

stadid commented May 28, 2024

@jonesPD Thank you for the feedback.

Or perhaps it is an indication of the system enabling the circulation pump indeed and it uses this by default during a legionella run? I don't recall setting/changing that behavior and don't have the manual ready to see how to do that.

I believe that you are correct - if we consider that this register is used for showing DHW circulation pump status, it fits perfectly in the displaying of the anti - legionella run as during it DHW circulation is turned on (checked this in the 720 manual).

I expect a regular hot water run later today end of the day, and will check what happens with this register at that time.

Please kindly note that circulation pump on/off schedule is applied only if HWC is in Time-contr. mode (independent of HWC schedule).
If HWC is off - circulation pump is constantly off.
If DHW is in "manual" mode circulation pump is constantly on.

So if your HWC is in "time-contr" you should check circulation schedule to determine if DHW circulation pump is running. i.e.
if we are inside how water preparation window it does not automatically means that circulation pump will be switched on, as it depends on the current circulation time windows settings.

@stadid
Copy link
Owner Author

stadid commented May 28, 2024

@chrizzzp

That's also how I identified some registers. Did you use the 'readall.sh' script to dump the registers?

We are all thinking in the same direction))))
I've used some variation of the 'readall.sh' script written by myself in Perl for my program to implement option of saving all regulator settings into txt file (see sample below).

ctlv2_params_2024_05_27_0002_ek2kf0.txt

@jonesPD
Copy link

jonesPD commented May 28, 2024

I cheched the status of the registers once more during the regular hot water run today:
HwcLegionellaRunActive: remained off
HwcReheatingActive: turned on during the run and was before and after it

I have the circulation schedule turned off always. But as an experiment scheduled it to turn on for 10 minutes and in this timeslot the HwcLegionellaRunActive register behaved in the way described by @stadid and turned on (while HwcReheatingActive remained off).

So it seems that my identification for the legionella run was not entirely incorrect, but certainly incomplete as this is actually the circulation pump indicator. :-) I propose to change it to:

r,,HwcCircPumpStatus,,,,,0200,,,onoff,,,Hwc circulation pump status (also turns on during a legionella run)

I think this better fits with the name of other pump status registers (i.e. Hc1PumpStatus)

@stadid
Copy link
Owner Author

stadid commented May 28, 2024

@jonesPD

Thank you very much for your testing! With your help we've made one more little step to clarify the configuration and better understanding how regulator works.

I propose to change it to:

r,,HwcCircPumpStatus,,,,,0200,,,onoff,,,Hwc circulation pump status (also turns on during a legionella run)

Agree.

@chrizzzp
Copy link

chrizzzp commented Sep 7, 2024

@stadid @jonesPD
Just a quick observation while checking some HWC registers...

  1. This might require correction of table 4 in this PR: even if GlobalSystemOff is active (yes, so global system is switched off) the HwcStatus reads value 0 (auto), not 10 (off). HwcOpMode has value 0 (off) and HwcEnabled is off. Can anyone confirm?

  2. I recently added a temperature sensor for the HWC circuit to my hydraulic station (vwz00) as I plan to use the HWC circuit in future. I can read the temperature sensor through the vwz00:
    ebusctl r -f -c vwz00 HwcTemp
    24.5
    Interestingly, when I read the VRC720 register HwcStorageTemp this gives a different value:
    ebusctl r -f -c ctlv2 HwcStorageTemp
    22.4375
    Does anyone know to which sensor this VRC720 register is actually mapped? None of my other sensors (wired through the VR71/FM5) gives this value. (I know, HWC setups can be different, e.g. the temperature sensor also be connected to the hmu. In this case it can be read with ebusctl r -f -c hmu HwcTemp, this is probably for mono-block heatpumps).

@stadid
Copy link
Owner Author

stadid commented Sep 9, 2024

@chrizzzp

  1. This might require correction of table 4 in this PR: even if GlobalSystemOff is active (yes, so global system is switched off) the HwcStatus reads value 0 (auto), not 10 (off). HwcOpMode has value 0 (off) and HwcEnabled is off. Can anyone confirm?

I observe completely different behavior on my 720 (please check screenshot)
screenshot
When GlobalSystemOff=yes
HwcStatus = off
HwcEnabled = yes
HwcOpMode = current set operating mode (Time-contr. in my case)

Does anyone know to which sensor this VRC720 register is actually mapped? None of my other sensors (wired through the VR71/FM5) gives this value.

My guess is that there is no static mapping of HWC temp register in VRC720 with specific HWC temp sensor readings as it heavily depends on system config. I believe that 720 is somehow probing the readings based on the system schema and choosing the right sensor readings (if available).

If we talk about HWC cylinder temp sensor, in my understanding it could be connected to most of the heat generators no matter what type they are. Usually, there is connector in the harness/main pcb to connect sensor directly to the boiler. In the systems with additional modules (vr70/71/FM3/FM5) hwc cylinder temp sensor could be connected to the VR70/71 (FM3/FM5) input based on the input designation for specific system schema.

@chrizzzp
Copy link

chrizzzp commented Sep 9, 2024

@stadid

I observe completely different behavior on my 720 (please check screenshot)
When GlobalSystemOff=yes
HwcStatus = off
HwcEnabled = yes
HwcOpMode = current set operating mode (Time-contr. in my case)

OK, in my case I had HwcEnabled set to 'no' (so Hwc was off). Then HwcStatus will remain at 'auto' independent of the state of GlobalSystemOff. If I set HwcEnabled to 'yes' HwcStatus behaves like described in the table.

@stadid
Copy link
Owner Author

stadid commented Sep 10, 2024

@chrizzzp

OK, in my case I had HwcEnabled set to 'no' (so Hwc was off). Then HwcStatus will remain at 'auto' independent of the state of GlobalSystemOff. If I set HwcEnabled to 'yes' HwcStatus behaves like described in the table.

Now I see. You are reading HWC parameters while top level config register in 720 determining if DHW cylinder is present in your system set to "Inactive". From my point of view what you are observing is normal since it's not worth updating various DHW state registers while DHW cylinder is not present in the system, so DHW registers state remains unchanged during GlobalSystemOff enabled/disabled.

@chrizzzp
Copy link

chrizzzp commented Sep 10, 2024

@stadid

My guess is that there is no static mapping of HWC temp register in VRC720 with specific HWC temp sensor readings as it heavily depends on system config. I believe that 720 is somehow probing the readings based on the system schema and choosing the right sensor readings (if available).

Your guess is correct. I just tested the HWC and my system involves an VR71/FM5 module (config 2). With this config HwcStorageTemp maps to sensor S5 (SP1), as described in the VRC720 manual.

If we talk about HWC cylinder temp sensor, in my understanding it could be connected to most of the heat generators no matter what type they are. Usually, there is connector in the harness/main pcb to connect sensor directly to the boiler. In the systems with additional modules (vr70/71/FM3/FM5) hwc cylinder temp sensor could be connected to the VR70/71 (FM3/FM5) input based on the input designation for specific system schema.

Yes, the readings from the sensor connected to the heat generator directly (vwz00 in my case) is not used (and this sensor is probably not needed to be present when using an VR71/FM5).

I tracked also another HWC-related ctlv2 register: HwcFlowTemp. This register reads '0' when the HWC is inactive and in my oppinion shows a 'corrected' HwcTempDesired for the HWC. Possibly, it is the sum of HwcTempDesired and HwcChargeOffset (register from the general section). I propose renaming this register to something like HwcFlowTempDesired as the current name suggests it is an actual flow temp.

@stadid
Copy link
Owner Author

stadid commented Sep 10, 2024

I tracked also another HWC-related ctlv2 register: HwcFlowTemp. This register reads '0' when the HWC is inactive and in my oppinion shows a 'corrected' HwcTempDesired for the HWC. Possibly, it is the sum of HwcTempDesired and HwcChargeOffset (register from the general section).

I think that HwcFlowTempDesired is a good name for the register HwcFlowTemp. My guess is that value of HwcFlowTempDesired is the temperature in the DHW cylinder coil required to reach set DHW temp in the cylinder.

@jonesPD
Copy link

jonesPD commented Sep 15, 2024

@stadid @jonesPD Just a quick observation while checking some HWC registers...
2. I recently added a temperature sensor for the HWC circuit to my hydraulic station (vwz00) as I plan to use the HWC circuit in future. I can read the temperature sensor through the vwz00:
ebusctl r -f -c vwz00 HwcTemp
24.5
Interestingly, when I read the VRC720 register HwcStorageTemp this gives a different value:
ebusctl r -f -c ctlv2 HwcStorageTemp
22.4375
Does anyone know to which sensor this VRC720 register is actually mapped? None of my other sensors (wired through the VR71/FM5) gives this value. (I know, HWC setups can be different, e.g. the temperature sensor also be connected to the hmu. In this case it can be read with ebusctl r -f -c hmu HwcTemp, this is probably for mono-block heatpumps).

I also see a difference between the two registers, albeit smaller (42.7C and 42.5C resp. vwz and ctlv2 circuits). It almost seems like an offset, but one that cannot be adjusted. Odd. In my set up, there is just one temperature sensor from the Hwc boiler connected to the VWZ, and nothing else could have this temperature at this moment (because the last Hwc run was quite some time ago and Hc hasn't run for months and never gets this hot anyway). Since the CTLV2 circuit reads a lower temperature it also cannot be calculated from a long time average. So...I don't know.

@chrizzzp
Copy link

@jonesPD @stadid

I also see a difference between the two registers, albeit smaller (42.7C and 42.5C resp. vwz and ctlv2 circuits). It almost seems like an offset, but one that cannot be adjusted. Odd. In my set up, there is just one temperature sensor from the Hwc boiler connected to the VWZ, and nothing else could have this temperature at this moment (because the last Hwc run was quite some time ago and Hc hasn't run for months and never gets this hot anyway). Since the CTLV2 circuit reads a lower temperature it also cannot be calculated from a long time average. So...I don't know.

I think with your setup the ctlv2 readings should map to your hwc sensor connected to the vwz. Probably, the ctlv2 just does not update read the value from the vwz so often, so there could always be some delay.

BTW I just noticed when I physically disconnect the hwc temp sensor from the vwz00 and disable hwc/hwc cylinder in the regulator, the vwz00 still asks for a temp sensor (error M.201: sensor error temp cylinder). I checked HwcEnabled is set to off. Somehow, it seems once the hwc sensor was connected it will always check for it during startup. That's a bit strange...

@stadid
Copy link
Owner Author

stadid commented Sep 16, 2024

@stadid @jonesPD Just a quick observation while checking some HWC registers...
2. I recently added a temperature sensor for the HWC circuit to my hydraulic station (vwz00) as I plan to use the HWC circuit in future. I can read the temperature sensor through the vwz00:
ebusctl r -f -c vwz00 HwcTemp
24.5
Interestingly, when I read the VRC720 register HwcStorageTemp this gives a different value:
ebusctl r -f -c ctlv2 HwcStorageTemp
22.4375
Does anyone know to which sensor this VRC720 register is actually mapped? None of my other sensors (wired through the VR71/FM5) gives this value. (I know, HWC setups can be different, e.g. the temperature sensor also be connected to the hmu. In this case it can be read with ebusctl r -f -c hmu HwcTemp, this is probably for mono-block heatpumps).

I also see a difference between the two registers, albeit smaller (42.7C and 42.5C resp. vwz and ctlv2 circuits). It almost seems like an offset, but one that cannot be adjusted. Odd. In my set up, there is just one temperature sensor from the Hwc boiler connected to the VWZ, and nothing else could have this temperature at this moment (because the last Hwc run was quite some time ago and Hc hasn't run for months and never gets this hot anyway). Since the CTLV2 circuit reads a lower temperature it also cannot be calculated from a long time average. So...I don't know.

@chrizzzp @jonesPD
Just want to mention that readings ending with .5 could be programmably round to the nearest value in 0.5 steps by the firmware inside the device and that is one of the reasons why readings may differ.

@jonesPD
Copy link

jonesPD commented Sep 16, 2024

Good point that could indeed explain the difference I observed.

@stefanheijnen
Copy link

stefanheijnen commented Jan 2, 2025

Is this expected behavior (on a GeoTherm heatpump):

When I set HwcEnabled to no while HwcOpMode is time controlled will reset HwcEnabled to yes the next cycle it is read from the ctlv2.

I have to set them both to no / off for HwcEnabled to stay no.

2025-01-02 18:24:24.081 [update notice] sent write ctlv2 HwcEnabled QQ=31: no
2025-01-02 18:24:24.081 [mqtt notice] write ctlv2 HwcEnabled: 0
2025-01-02 18:25:20.839 [update notice] sent read ctlv2 HwcEnabled QQ=31: yes

I've confirmed on the VRC720 that the Hwc is still on after the single no command.

@stadid
Copy link
Owner Author

stadid commented Jan 3, 2025

@stefanheijnen

Is this expected behavior (on a GeoTherm heatpump):

When I set HwcEnabled to no while HwcOpMode is time controlled will reset HwcEnabled to yes the next cycle it is read from the ctlv2.

Theoretically - no. HwcEnabled setting should be independent from the HwcOpMode, no matter what equipment you are using.
However, it may happen the the write command do not affect regulator state and do not return any errors.

@chrizzzp @jonesPD
could you please check on your systems above behavior? (My VRC720 currently not connected)
Could it potentially be MQTT-EBUSD issue?

@stefanheijnen
What is the EBUSD version and config you are using?

Try the following: continuously (5-10 times) issue write command setting HwcEnabled to no and check the result.
I've observed similar behavior on VRC700 with another register which was successfully set randomly only after several writes of the same value.

@chrizzzp
Copy link

chrizzzp commented Jan 4, 2025

@stefanheijnen @stadid

I can confirm that when HwcEnabled is switched to on while HwcOpmode is set to time controlled, I was unable to switch HwcEnabled off again. I tried at least 5 writes within 2 minutes. However, when setting HwcOpmode to off I was able to do so, although not on the first write, but with about 30 seconds delay (second write). Maybe there is some hardwired delay between turning HwcEnabled on and being able to turn it off again...?

BTW: I have an Arotherm split system.

@stadid
Copy link
Owner Author

stadid commented Jan 5, 2025

@stefanheijnen @stadid

I can confirm that when HwcEnabled is switched to on while HwcOpmode is set to time controlled, I was unable to switch HwcEnabled off again. I tried at least 5 writes within 2 minutes. However, when setting HwcOpmode to off I was able to do so, although not on the first write, but with about 30 seconds delay (second write). Maybe there is some hardwired delay between turning HwcEnabled on and being able to turn it off again...?

BTW: I have an Arotherm split system.

@chrizzzp

Thank you very much!

@stefanheijnen
Frankly speaking HwcEnabled is considered as "your system hardware" setup register telling the regulator that your system has HW(HotWater) option.
It's set once and not intended to constantly turn on and off. You should use HwcOpmode instead.
I share @chrizzzp position that the control algorithm inside the regulator in some scenarios preventing us to change state of the HwcEnabled register using EBUSD.

Anyway thank you for valuable info, I'll add corresponding notes to this register in the top post.

@stefanheijnen
Copy link

Thank you for your feedback @chrizzzp @stadid. I will use HwcOpmode from now on.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants