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

Feature/support ctlv2 #266

Merged
merged 16 commits into from
Feb 11, 2024
Merged

Feature/support ctlv2 #266

merged 16 commits into from
Feb 11, 2024

Conversation

janphkre
Copy link
Contributor

@janphkre janphkre commented Aug 5, 2022

This feature provides most functionality for a vaillant VRC720/2 sensoComfort control panel. (https://www.vaillant.de/heizung/produkte/witterungsgefuhrter-regler-sensocomfort-179200.html)
The configuration is based on the previous "700" generation.
For the first parts the old generation continues to work and the time slot behaviour had to be altered, as mentioned in #241.
Currently I only have 3 Zones, HWC and CC configured, so I can not provide the commands for ventilation (Using System schema 2)
The installation manual mentions that all the provided commands support 3 timeframes, but ventilation supports 12.
There are two things to note:

  • The timeslot commands implemented here are the same that the sensoNet module calls. However, I was not able to find out what the commands mentioned at the top of the timeslots sections do, but they probably probe the actual configuration as to which zones/devices can be configured on a timeslot basis. Maybe some one else who has this module can run those commands and compair their configuration to mine.
  • As mentioned in the templates, the device seems to be using a new data type for temperatures. In the app and ui you are able to change the temperatures in 0.5°C steps, but in the ebus command it is using an UIN / 10 so that 22.5°C are the number 225 on the bus. Would this require a new base data type or can we define this conversion on the fly in the template somehow?

@janphkre janphkre force-pushed the feature/support-ctlv2 branch from 5521b60 to 066bb36 Compare August 5, 2022 17:16
@janphkre janphkre force-pushed the feature/support-ctlv2 branch from 066bb36 to c7b76b8 Compare August 5, 2022 17:17
@cyberthom42
Copy link

You removed (commented) SFMode. It dies not work on 720. Do you know the new address for SFMode?

@janphkre
Copy link
Contributor Author

It is not necessarily a different address, the 720 might be using a different datatype for it, as it is using different data types for the timeslots. Since i still do not know what SFMode is, I can not find out which value is there to be expected for it under which condition. However, every commented line that has the name "Unknown*", is a value that i was able to observe on the bus without actively probing for it. Maybe it is one of them.

Copy link

@LukasGrebe LukasGrebe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See janphkre@2a08b2e#commitcomment-91984115

the comment is in the Unit column. changing the ,at the end of the line to . changes the number of columns in this line.

@1achy
Copy link

1achy commented Dec 8, 2022

try for ctvl2 so vrt 380

2022-12-08 15:12:37.029 [main notice] ebusd 22.4.v3.16.2-200-ga8ca21f541 started with auto scan on device 192.168.0.54:3333
2022-12-08 15:12:37.097 [bus notice] bus started with own address 31/36
2022-12-08 15:12:37.097 [bus notice] signal acquired
2022-12-08 15:12:41.480 [bus notice] new master 10, master count 2
2022-12-08 15:12:41.543 [bus notice] new master 03, master count 3
2022-12-08 15:12:41.543 [update notice] received unknown MS cmd: 1008b5110101 / 091b1b0080ff190000ff
2022-12-08 15:12:41.809 [update notice] received unknown MS cmd: 1008b51009000000ffffff010000 / 0101
2022-12-08 15:12:43.147 [mqtt notice] connection established
2022-12-08 15:12:47.275 [bus notice] scan 08: ;Vaillant;BAI00;0404;9602
2022-12-08 15:12:47.275 [update notice] store 08 ident: done
2022-12-08 15:12:47.276 [update notice] sent scan-read scan.08 QQ=31: Vaillant;BAI00;0404;9602
2022-12-08 15:12:47.277 [bus notice] scan 08: ;Vaillant;BAI00;0404;9602
2022-12-08 15:12:47.310 [main notice] read common config file vaillant/general.csv
2022-12-08 15:12:47.312 [main notice] read common config file vaillant/scan.csv
2022-12-08 15:12:47.316 [main notice] read common config file vaillant/broadcast.csv
2022-12-08 15:12:47.323 [main notice] read scan config file vaillant/08.bai.csv for ID "bai00", SW0404, HW9602
2022-12-08 15:12:47.485 [update notice] sent scan-read scan.08 id QQ=31:
2022-12-08 15:12:47.649 [update notice] sent scan-read scan.08 id QQ=31:
2022-12-08 15:12:47.815 [update notice] sent scan-read scan.08 id QQ=31:
2022-12-08 15:12:47.968 [bus error] send to 08: ERR: read timeout, retry
2022-12-08 15:12:48.751 [update notice] sent scan-read scan.08 id QQ=31: 21;22;42;0010021995;0001;021739;N9
2022-12-08 15:12:48.831 [main notice] found messages: 202 (2 conditional on 27 conditions, 0 poll, 10 update)
2022-12-08 15:12:49.008 [update notice] sent scan-read scan.08 id QQ=31: 21;22;42;0010021995;0001;021739;N9
2022-12-08 15:12:49.171 [update notice] sent scan-read scan.08 id QQ=31: 21;22;42;0010021995;0001;021739;N9
2022-12-08 15:12:49.337 [update notice] sent scan-read scan.08 id QQ=31: 21;22;42;0010021995;0001;021739;N9
2022-12-08 15:12:49.504 [update notice] sent scan-read scan.08 id QQ=31: 21;22;42;0010021995;0001;021739;N9
2022-12-08 15:12:49.505 [bus notice] scan 08: ;21;22;42;0010021995;0001;021739;N9
2022-12-08 15:12:51.591 [update notice] received read bai Status01 QQ=10: 13.5;13.5;-;-;12.5;off
2022-12-08 15:12:51.699 [bus notice] scan 15: ;Vaillant;CTLV0;0313;9103
2022-12-08 15:12:51.699 [update notice] store 15 ident: done
2022-12-08 15:12:51.699 [update notice] sent scan-read scan.15 QQ=31: Vaillant;CTLV0;0313;9103
2022-12-08 15:12:51.700 [bus notice] scan 15: ;Vaillant;CTLV0;0313;9103
2022-12-08 15:12:51.856 [update notice] sent unknown MS cmd: 3115b5090124 / 09003231323231343030
2022-12-08 15:12:52.148 [update notice] sent scan-read scan.15 id QQ=31:
2022-12-08 15:12:52.305 [update notice] sent scan-read scan.15 id QQ=31:
2022-12-08 15:12:52.519 [update notice] sent scan-read scan.15 id QQ=31: 21;22;14;0020260943;0953;026614;N3
2022-12-08 15:12:52.519 [bus notice] scan 15: ;21;22;14;0020260943;0953;026614;N3
2022-12-08 15:12:52.696 [main notice] read scan config file vaillant/15.ctlv0.csv for ID "ctlv0", SW0313, HW9103
2022-12-08 15:12:52.699 [main notice] found messages: 621 (2 conditional on 27 conditions, 0 poll, 10 update)
2022-12-08 15:12:52.735 [update notice] received read bai Status02 QQ=10: on;60;75.0;70;65.0
2022-12-08 15:12:53.041 [bus notice] max. symbols per second: 114
2022-12-08 15:12:53.697 [update notice] sent poll-read bai CounterStartattempts1 QQ=31: 0
2022-12-08 15:12:59.149 [update notice] sent poll-read bai CounterStartattempts2 QQ=31: 0
2022-12-08 15:13:01.582 [update notice] received read bai Status01 QQ=10: 13.5;13.5;-;-;12.5;off
2022-12-08 15:13:01.849 [update notice] received update-write bai SetMode QQ=10: auto;0.0;-;-;1;0;0;0;0;0
2022-12-08 15:13:05.142 [update notice] sent poll-read bai CounterStartAttempts3 QQ=31: 0

@jhuybrechs
Copy link

Great enhancement, thanks for the contribution @janphkre I'm also using a SensoConfort 720 (wireless)
Here is the reply from the ...Time.Config commands from my setup
-ebusctl read z1Timer.Config =>00 0c 0a 05 01 0c 05 1e 00
-ebusctl read z2Timer.Config =>03 01 01 00 00 00 ff ff 00
-ebusctl read z3Timer.Config =>03 01 01 00 00 00 ff ff 00
-ebusctl read hwcTimer.Config =>00 03 0a 0a 01 01 23 46 00
-ebusctl read ccTimer.Config =>00 03 0a 00 00 00 ff ff 00
When using the write command I only managed to write in the first slot (i.e ebusctl write -c basv z1Timer.Monday "0;1;08:30;09:45;185") but didn't figure out how to write to a second slot (tryed with ebusctl write -c basv z1Timer.Monday "1;2;10:30;11:45;195")
Did you managed to write multiple slots, and if yes how?

@1achy
Copy link

1achy commented Dec 9, 2022

Tks for work :

now my file ctvl0:

all_ctvl0

Entity for thermostat is :

temp setpoint = hc1actualflowtempdeisider ? but only read mode
mode = hc1roomtempswitchon ?

@janphkre
Copy link
Contributor Author

janphkre commented Dec 10, 2022

@LukasGrebe

See janphkre@2a08b2e#commitcomment-91984115

the comment is in the Unit column. changing the ,at the end of the line to . changes the number of columns in this line.

I noticed some issue with the line below the one you commented and fixed those in both de and en. I hope it is the issue you mentioned, because i couldn't see an issue with the line you mentioned in a csv editor.

@janphkre
Copy link
Contributor Author

janphkre commented Dec 10, 2022

@jhuybrechs

When using the write command I only managed to write in the first slot (i.e ebusctl write -c basv z1Timer.Monday "0;1;08:30;09:45;185") but didn't figure out how to write to a second slot (tryed with ebusctl write -c basv z1Timer.Monday "1;2;10:30;11:45;195") Did you managed to write multiple slots, and if yes how?

In your example the first command has an issue: I was able to write to the second slot if this first command contains the total amount of slots that shall be set / active:

ebusctl write -c ctlv2 z1Timer.Monday "0;2;08:30;09:45;185"
ebusctl write -c ctlv2 z1Timer.Monday "1;2;10:30;11:45;195"

I don't know if this "array size" actually does something on the second and third slot, but it has to be specified for all commands.

However, I noticed a problem with the hwcTimer: In the message definition for wTimeSlotWithoutTemp I wrote IGN:2 which I thought would place there FFFF, but it places 0000 inside, which results in a return code of 06 insted of 00.
I currently am a bit clueless on how to fix this without having to define the value explicitly.

@janphkre
Copy link
Contributor Author

@jhuybrechs

I'm also using a SensoConfort 720 (wireless) Here is the reply from the ...Time.Config commands from my setup
-ebusctl read z1Timer.Config =>00 0c 0a 05 01 0c 05 1e 00
-ebusctl read z2Timer.Config =>03 01 01 00 00 00 ff ff 00
-ebusctl read z3Timer.Config =>03 01 01 00 00 00 ff ff 00
-ebusctl read hwcTimer.Config =>00 03 0a 0a 01 01 23 46 00
-ebusctl read ccTimer.Config =>00 03 0a 00 00 00 ff ff 00

My configuration is the same, execpt for z2Timer and z3Timer, so I'd guess that you only have one zone configured and that is where the difference is resulting from. But still it is a mistery to me what this command does, but i guess that is okay for the time being:

r z1Timer.Config => 00 0c 0a 05 01 0c 05 1e 00
r z2Timer.Config => 00 0c 0a 05 01 0c 05 1e 00
r z3Timer.Config => 00 0c 0a 05 01 0c 05 1e 00
r hwcTimer.Config => 00 03 0a 0a 01 01 23 46 00
r ccTimer.Config => 00 03 0a 00 00 00 ff ff 00

@janphkre
Copy link
Contributor Author

janphkre commented Dec 10, 2022

try for ctvl2 so vrt 380

2022-12-08 15:12:37.029 [main notice] ebusd 22.4.v3.16.2-200-ga8ca21f541 started with auto scan on device 192.168.0.54:3333 2022-12-08 15:12:37.097 [bus notice] bus started with own address 31/36 2022-12-08 15:12:37.097 [bus notice] signal acquired 2022-12-08 15:12:41.480 [bus notice] new master 10, master count 2 2022-12-08 15:12:41.543 [bus notice] new master 03, master count 3 2022-12-08 15:12:41.543 [update notice] received unknown MS cmd: 1008b5110101 / 091b1b0080ff190000ff 2022-12-08 15:12:41.809 [update notice] received unknown MS cmd: 1008b51009000000ffffff010000 / 0101 2022-12-08 15:12:43.147 [mqtt notice] connection established 2022-12-08 15:12:47.275 [bus notice] scan 08: ;Vaillant;BAI00;0404;9602 2022-12-08 15:12:47.275 [update notice] store 08 ident: done 2022-12-08 15:12:47.276 [update notice] sent scan-read scan.08 QQ=31: Vaillant;BAI00;0404;9602 2022-12-08 15:12:47.277 [bus notice] scan 08: ;Vaillant;BAI00;0404;9602 2022-12-08 15:12:47.310 [main notice] read common config file vaillant/general.csv 2022-12-08 15:12:47.312 [main notice] read common config file vaillant/scan.csv 2022-12-08 15:12:47.316 [main notice] read common config file vaillant/broadcast.csv 2022-12-08 15:12:47.323 [main notice] read scan config file vaillant/08.bai.csv for ID "bai00", SW0404, HW9602 2022-12-08 15:12:47.485 [update notice] sent scan-read scan.08 id QQ=31: 2022-12-08 15:12:47.649 [update notice] sent scan-read scan.08 id QQ=31: 2022-12-08 15:12:47.815 [update notice] sent scan-read scan.08 id QQ=31: 2022-12-08 15:12:47.968 [bus error] send to 08: ERR: read timeout, retry 2022-12-08 15:12:48.751 [update notice] sent scan-read scan.08 id QQ=31: 21;22;42;0010021995;0001;021739;N9 2022-12-08 15:12:48.831 [main notice] found messages: 202 (2 conditional on 27 conditions, 0 poll, 10 update) 2022-12-08 15:12:49.008 [update notice] sent scan-read scan.08 id QQ=31: 21;22;42;0010021995;0001;021739;N9 2022-12-08 15:12:49.171 [update notice] sent scan-read scan.08 id QQ=31: 21;22;42;0010021995;0001;021739;N9 2022-12-08 15:12:49.337 [update notice] sent scan-read scan.08 id QQ=31: 21;22;42;0010021995;0001;021739;N9 2022-12-08 15:12:49.504 [update notice] sent scan-read scan.08 id QQ=31: 21;22;42;0010021995;0001;021739;N9 2022-12-08 15:12:49.505 [bus notice] scan 08: ;21;22;42;0010021995;0001;021739;N9 2022-12-08 15:12:51.591 [update notice] received read bai Status01 QQ=10: 13.5;13.5;-;-;12.5;off 2022-12-08 15:12:51.699 [bus notice] scan 15: ;Vaillant;CTLV0;0313;9103 2022-12-08 15:12:51.699 [update notice] store 15 ident: done 2022-12-08 15:12:51.699 [update notice] sent scan-read scan.15 QQ=31: Vaillant;CTLV0;0313;9103 2022-12-08 15:12:51.700 [bus notice] scan 15: ;Vaillant;CTLV0;0313;9103 2022-12-08 15:12:51.856 [update notice] sent unknown MS cmd: 3115b5090124 / 09003231323231343030 2022-12-08 15:12:52.148 [update notice] sent scan-read scan.15 id QQ=31: 2022-12-08 15:12:52.305 [update notice] sent scan-read scan.15 id QQ=31: 2022-12-08 15:12:52.519 [update notice] sent scan-read scan.15 id QQ=31: 21;22;14;0020260943;0953;026614;N3 2022-12-08 15:12:52.519 [bus notice] scan 15: ;21;22;14;0020260943;0953;026614;N3 2022-12-08 15:12:52.696 [main notice] read scan config file vaillant/15.ctlv0.csv for ID "ctlv0", SW0313, HW9103 2022-12-08 15:12:52.699 [main notice] found messages: 621 (2 conditional on 27 conditions, 0 poll, 10 update) 2022-12-08 15:12:52.735 [update notice] received read bai Status02 QQ=10: on;60;75.0;70;65.0 2022-12-08 15:12:53.041 [bus notice] max. symbols per second: 114 2022-12-08 15:12:53.697 [update notice] sent poll-read bai CounterStartattempts1 QQ=31: 0 2022-12-08 15:12:59.149 [update notice] sent poll-read bai CounterStartattempts2 QQ=31: 0 2022-12-08 15:13:01.582 [update notice] received read bai Status01 QQ=10: 13.5;13.5;-;-;12.5;off 2022-12-08 15:13:01.849 [update notice] received update-write bai SetMode QQ=10: auto;0.0;-;-;1;0;0;0;0;0 2022-12-08 15:13:05.142 [update notice] sent poll-read bai CounterStartAttempts3 QQ=31: 0

For me the ctlv2 shows up as follows:
address 15: slave #2, scanned "MF=Vaillant;ID=CTLV2;SW=0514;HW=1104", loaded "vaillant/15.ctlv2.csv"
Since the VRT380 seems to be from a different line of products than the vrc720/2 I guess you will not be able to use most of the ctlv2 configuration ("sensoHome" vs "sensoComfort").

To answer your question:

temp setpoint = hc1actualflowtempdeisider ? but only read mode

The Hc1ActualFlowTempDesired holds the value the heating circuit should try to hold for itself, the bai usually can deliver a duplicate of this value on the ebus too.
So in a way, yes, it is the setpoint of the heating circuit, but it is not the temperature setpoint of the thermostat. In the case of the cltv2, the thermostat is defined as the zones(z1Timer, z2Timer, etc.).
However if you want to read out the current value of the thermostat, then you can use the field z1ActualRoomTempDesired for example.

mode = hc1roomtempswitchon ?

The mode of the thermostat can be read out through the fields z1OpMode. If you want to know if the heating ciruit itself is currently acutally turned on, you could also look at the pump status Hc1PumpStatus or the hc status Hc1Status.

@LukasGrebe
Copy link

@LukasGrebe

See janphkre@2a08b2e#commitcomment-91984115
the comment is in the Unit column. changing the ,at the end of the line to . changes the number of columns in this line.

I noticed some issue with the line below the one you commented and fixed those in both de and en. I hope it is the issue you mentioned, because i couldn't see an issue with the line you mentioned in a csv editor.

@janphkre fixed the comment issue in 40632c9

what do you see in the following lines?

@1achy
Copy link

1achy commented Dec 11, 2022

try for ctvl2 so vrt 380
2022-12-08 15:12:37.029 [main notice] ebusd 22.4.v3.16.2-200-ga8ca21f541 started with auto scan on device 192.168.0.54:3333 2022-12-08 15:12:37.097 [bus notice] bus started with own address 31/36 2022-12-08 15:12:37.097 [bus notice] signal acquired 2022-12-08 15:12:41.480 [bus notice] new master 10, master count 2 2022-12-08 15:12:41.543 [bus notice] new master 03, master count 3 2022-12-08 15:12:41.543 [update notice] received unknown MS cmd: 1008b5110101 / 091b1b0080ff190000ff 2022-12-08 15:12:41.809 [update notice] received unknown MS cmd: 1008b51009000000ffffff010000 / 0101 2022-12-08 15:12:43.147 [mqtt notice] connection established 2022-12-08 15:12:47.275 [bus notice] scan 08: ;Vaillant;BAI00;0404;9602 2022-12-08 15:12:47.275 [update notice] store 08 ident: done 2022-12-08 15:12:47.276 [update notice] sent scan-read scan.08 QQ=31: Vaillant;BAI00;0404;9602 2022-12-08 15:12:47.277 [bus notice] scan 08: ;Vaillant;BAI00;0404;9602 2022-12-08 15:12:47.310 [main notice] read common config file vaillant/general.csv 2022-12-08 15:12:47.312 [main notice] read common config file vaillant/scan.csv 2022-12-08 15:12:47.316 [main notice] read common config file vaillant/broadcast.csv 2022-12-08 15:12:47.323 [main notice] read scan config file vaillant/08.bai.csv for ID "bai00", SW0404, HW9602 2022-12-08 15:12:47.485 [update notice] sent scan-read scan.08 id QQ=31: 2022-12-08 15:12:47.649 [update notice] sent scan-read scan.08 id QQ=31: 2022-12-08 15:12:47.815 [update notice] sent scan-read scan.08 id QQ=31: 2022-12-08 15:12:47.968 [bus error] send to 08: ERR: read timeout, retry 2022-12-08 15:12:48.751 [update notice] sent scan-read scan.08 id QQ=31: 21;22;42;0010021995;0001;021739;N9 2022-12-08 15:12:48.831 [main notice] found messages: 202 (2 conditional on 27 conditions, 0 poll, 10 update) 2022-12-08 15:12:49.008 [update notice] sent scan-read scan.08 id QQ=31: 21;22;42;0010021995;0001;021739;N9 2022-12-08 15:12:49.171 [update notice] sent scan-read scan.08 id QQ=31: 21;22;42;0010021995;0001;021739;N9 2022-12-08 15:12:49.337 [update notice] sent scan-read scan.08 id QQ=31: 21;22;42;0010021995;0001;021739;N9 2022-12-08 15:12:49.504 [update notice] sent scan-read scan.08 id QQ=31: 21;22;42;0010021995;0001;021739;N9 2022-12-08 15:12:49.505 [bus notice] scan 08: ;21;22;42;0010021995;0001;021739;N9 2022-12-08 15:12:51.591 [update notice] received read bai Status01 QQ=10: 13.5;13.5;-;-;12.5;off 2022-12-08 15:12:51.699 [bus notice] scan 15: ;Vaillant;CTLV0;0313;9103 2022-12-08 15:12:51.699 [update notice] store 15 ident: done 2022-12-08 15:12:51.699 [update notice] sent scan-read scan.15 QQ=31: Vaillant;CTLV0;0313;9103 2022-12-08 15:12:51.700 [bus notice] scan 15: ;Vaillant;CTLV0;0313;9103 2022-12-08 15:12:51.856 [update notice] sent unknown MS cmd: 3115b5090124 / 09003231323231343030 2022-12-08 15:12:52.148 [update notice] sent scan-read scan.15 id QQ=31: 2022-12-08 15:12:52.305 [update notice] sent scan-read scan.15 id QQ=31: 2022-12-08 15:12:52.519 [update notice] sent scan-read scan.15 id QQ=31: 21;22;14;0020260943;0953;026614;N3 2022-12-08 15:12:52.519 [bus notice] scan 15: ;21;22;14;0020260943;0953;026614;N3 2022-12-08 15:12:52.696 [main notice] read scan config file vaillant/15.ctlv0.csv for ID "ctlv0", SW0313, HW9103 2022-12-08 15:12:52.699 [main notice] found messages: 621 (2 conditional on 27 conditions, 0 poll, 10 update) 2022-12-08 15:12:52.735 [update notice] received read bai Status02 QQ=10: on;60;75.0;70;65.0 2022-12-08 15:12:53.041 [bus notice] max. symbols per second: 114 2022-12-08 15:12:53.697 [update notice] sent poll-read bai CounterStartattempts1 QQ=31: 0 2022-12-08 15:12:59.149 [update notice] sent poll-read bai CounterStartattempts2 QQ=31: 0 2022-12-08 15:13:01.582 [update notice] received read bai Status01 QQ=10: 13.5;13.5;-;-;12.5;off 2022-12-08 15:13:01.849 [update notice] received update-write bai SetMode QQ=10: auto;0.0;-;-;1;0;0;0;0;0 2022-12-08 15:13:05.142 [update notice] sent poll-read bai CounterStartAttempts3 QQ=31: 0

For me the ctlv2 shows up as follows: address 15: slave #2, scanned "MF=Vaillant;ID=CTLV2;SW=0514;HW=1104", loaded "vaillant/15.ctlv2.csv" Since the VRT380 seems to be from a different line of products than the vrc720/2 I guess you will not be able to use most of the ctlv2 configuration ("sensoHome" vs "sensoComfort").

To answer your question:

temp setpoint = hc1actualflowtempdeisider ? but only read mode

The Hc1ActualFlowTempDesired holds the value the heating circuit should try to hold for itself, the bai usually can deliver a duplicate of this value on the ebus too. So in a way, yes, it is the setpoint of the heating circuit, but it is not the temperature setpoint of the thermostat. In the case of the cltv2, the thermostat is defined as the zones(z1Timer, z2Timer, etc.). However if you want to read out the current value of the thermostat, then you can use the field z1ActualRoomTempDesired for example.

mode = hc1roomtempswitchon ?

The mode of the thermostat can be read out through the fields z1OpMode. If you want to know if the heating ciruit itself is currently acutally turned on, you could also look at the pump status Hc1PumpStatus or the hc status Hc1Status.

i try your config 👍
my ebus scan :

read scan config file vaillant/15.ctlv0.csv for ID "ctlv0", SW0313, HW9103

in mqtt i found :

all_ctvl0

for study and improve what do u suggest me to start.

Itry with your modify z1ActualRoomTempDesired change to respect manual setting temp room on vrt 480

actual temperature room vrt480 i think
z1roomtemp

@1achy
Copy link

1achy commented Dec 11, 2022

Now i want try with mqqt havac code

`climate:

  • platform: mqtt
    name: Termostato 380 Valliant
    max_temp: 25
    min_temp: 15
    precision: 0.1
    temp_step: 0.5
    action_topic: "ebusd/bai/status01_pumpstate"
    action_template: "{{ (value_json['5'].value == 'on') | iif('heating', 'idle') }}"
    modes:
    • auto
    • heat
    • cool
    • "off"
      mode_state_template: >-
      {% set mode_values = { 'auto':'auto', 'on':'heat', 'night':'cool', 'summer':'off'} %}
      {{ mode_values[value_json['0'].value] | default('off') }}
      mode_state_topic: "ebusd/ctlv0/z1OPMode"
      mode_command_template: >-
      {% set values = { 'auto':'auto', 'heat':'on', 'cool':'night', 'off':'summer'} %}
      {{ values[value] | default('auto') }}
      mode_command_topic: "ebusd/ctlv0/z1OpMode/set"
      value_template: "{{ value_json.temp1.value }}"
      temperature_state_topic: "ebusd/ctlv0/status01_pumpstate"
      temperature_low_state_topic: "ebusd/ctlv0/z1NightTemp"
      temperature_high_state_topic: "ebusd/ctlv0/z1DayTemp"
      temperature_low_command_topic: "ebusd/ctlv0/z1NightTemp/set"
      temperature_high_command_topic: "ebusd/ctlv0/z1DayTemp/set"
      current_temperature_topic: "ebusd/ctlv0/z1roomtemp"
      current_temperature_template: "{{ value_json.temp.value }}" `

@janphkre
Copy link
Contributor Author

@janphkre fixed the comment issue in 40632c9

what do you see in the following lines?

@LukasGrebe
To me it looks like this with the tool https://edit-csv.net/:
grafik
Is there still something wrong here? To me it looks fine

@janphkre
Copy link
Contributor Author

try for ctvl2 so vrt 380
2022-12-08 15:12:37.029 [main notice] ebusd 22.4.v3.16.2-200-ga8ca21f541 started with auto scan on device 192.168.0.54:3333 2022-12-08 15:12:37.097 [bus notice] bus started with own address 31/36 2022-12-08 15:12:37.097 [bus notice] signal acquired 2022-12-08 15:12:41.480 [bus notice] new master 10, master count 2 2022-12-08 15:12:41.543 [bus notice] new master 03, master count 3 2022-12-08 15:12:41.543 [update notice] received unknown MS cmd: 1008b5110101 / 091b1b0080ff190000ff 2022-12-08 15:12:41.809 [update notice] received unknown MS cmd: 1008b51009000000ffffff010000 / 0101 2022-12-08 15:12:43.147 [mqtt notice] connection established 2022-12-08 15:12:47.275 [bus notice] scan 08: ;Vaillant;BAI00;0404;9602 2022-12-08 15:12:47.275 [update notice] store 08 ident: done 2022-12-08 15:12:47.276 [update notice] sent scan-read scan.08 QQ=31: Vaillant;BAI00;0404;9602 2022-12-08 15:12:47.277 [bus notice] scan 08: ;Vaillant;BAI00;0404;9602 2022-12-08 15:12:47.310 [main notice] read common config file vaillant/general.csv 2022-12-08 15:12:47.312 [main notice] read common config file vaillant/scan.csv 2022-12-08 15:12:47.316 [main notice] read common config file vaillant/broadcast.csv 2022-12-08 15:12:47.323 [main notice] read scan config file vaillant/08.bai.csv for ID "bai00", SW0404, HW9602 2022-12-08 15:12:47.485 [update notice] sent scan-read scan.08 id QQ=31: 2022-12-08 15:12:47.649 [update notice] sent scan-read scan.08 id QQ=31: 2022-12-08 15:12:47.815 [update notice] sent scan-read scan.08 id QQ=31: 2022-12-08 15:12:47.968 [bus error] send to 08: ERR: read timeout, retry 2022-12-08 15:12:48.751 [update notice] sent scan-read scan.08 id QQ=31: 21;22;42;0010021995;0001;021739;N9 2022-12-08 15:12:48.831 [main notice] found messages: 202 (2 conditional on 27 conditions, 0 poll, 10 update) 2022-12-08 15:12:49.008 [update notice] sent scan-read scan.08 id QQ=31: 21;22;42;0010021995;0001;021739;N9 2022-12-08 15:12:49.171 [update notice] sent scan-read scan.08 id QQ=31: 21;22;42;0010021995;0001;021739;N9 2022-12-08 15:12:49.337 [update notice] sent scan-read scan.08 id QQ=31: 21;22;42;0010021995;0001;021739;N9 2022-12-08 15:12:49.504 [update notice] sent scan-read scan.08 id QQ=31: 21;22;42;0010021995;0001;021739;N9 2022-12-08 15:12:49.505 [bus notice] scan 08: ;21;22;42;0010021995;0001;021739;N9 2022-12-08 15:12:51.591 [update notice] received read bai Status01 QQ=10: 13.5;13.5;-;-;12.5;off 2022-12-08 15:12:51.699 [bus notice] scan 15: ;Vaillant;CTLV0;0313;9103 2022-12-08 15:12:51.699 [update notice] store 15 ident: done 2022-12-08 15:12:51.699 [update notice] sent scan-read scan.15 QQ=31: Vaillant;CTLV0;0313;9103 2022-12-08 15:12:51.700 [bus notice] scan 15: ;Vaillant;CTLV0;0313;9103 2022-12-08 15:12:51.856 [update notice] sent unknown MS cmd: 3115b5090124 / 09003231323231343030 2022-12-08 15:12:52.148 [update notice] sent scan-read scan.15 id QQ=31: 2022-12-08 15:12:52.305 [update notice] sent scan-read scan.15 id QQ=31: 2022-12-08 15:12:52.519 [update notice] sent scan-read scan.15 id QQ=31: 21;22;14;0020260943;0953;026614;N3 2022-12-08 15:12:52.519 [bus notice] scan 15: ;21;22;14;0020260943;0953;026614;N3 2022-12-08 15:12:52.696 [main notice] read scan config file vaillant/15.ctlv0.csv for ID "ctlv0", SW0313, HW9103 2022-12-08 15:12:52.699 [main notice] found messages: 621 (2 conditional on 27 conditions, 0 poll, 10 update) 2022-12-08 15:12:52.735 [update notice] received read bai Status02 QQ=10: on;60;75.0;70;65.0 2022-12-08 15:12:53.041 [bus notice] max. symbols per second: 114 2022-12-08 15:12:53.697 [update notice] sent poll-read bai CounterStartattempts1 QQ=31: 0 2022-12-08 15:12:59.149 [update notice] sent poll-read bai CounterStartattempts2 QQ=31: 0 2022-12-08 15:13:01.582 [update notice] received read bai Status01 QQ=10: 13.5;13.5;-;-;12.5;off 2022-12-08 15:13:01.849 [update notice] received update-write bai SetMode QQ=10: auto;0.0;-;-;1;0;0;0;0;0 2022-12-08 15:13:05.142 [update notice] sent poll-read bai CounterStartAttempts3 QQ=31: 0

For me the ctlv2 shows up as follows: address 15: slave #2, scanned "MF=Vaillant;ID=CTLV2;SW=0514;HW=1104", loaded "vaillant/15.ctlv2.csv" Since the VRT380 seems to be from a different line of products than the vrc720/2 I guess you will not be able to use most of the ctlv2 configuration ("sensoHome" vs "sensoComfort").
To answer your question:

temp setpoint = hc1actualflowtempdeisider ? but only read mode

The Hc1ActualFlowTempDesired holds the value the heating circuit should try to hold for itself, the bai usually can deliver a duplicate of this value on the ebus too. So in a way, yes, it is the setpoint of the heating circuit, but it is not the temperature setpoint of the thermostat. In the case of the cltv2, the thermostat is defined as the zones(z1Timer, z2Timer, etc.). However if you want to read out the current value of the thermostat, then you can use the field z1ActualRoomTempDesired for example.

mode = hc1roomtempswitchon ?

The mode of the thermostat can be read out through the fields z1OpMode. If you want to know if the heating ciruit itself is currently acutally turned on, you could also look at the pump status Hc1PumpStatus or the hc status Hc1Status.

i try your config 👍 my ebus scan :

read scan config file vaillant/15.ctlv0.csv for ID "ctlv0", SW0313, HW9103

in mqtt i found :

all_ctvl0

for study and improve what do u suggest me to start.

Itry with your modify z1ActualRoomTempDesired change to respect manual setting temp room on vrt 480

actual temperature room vrt480 i think z1roomtemp

@1achy
I don't quite know what this ctlv0 has to do with this pull request, as this pull request just delivers some commands for the ctlv2. If the ctlv0 is similar to that, someone, who has a ctlv0 needs to investigate that. It is basically just guessing and try and error from the observed ebus commands that are sent from other components on the bus.

@RotorMotor42
Copy link

Thanks for this PR.

Most items work on my 720/2 but I had to change
r;w,,z1DayTemp,Solltemperatur Zone 1,,,,0700,,,tempv,,,day setpoint for zone 1
to
r;w,,z1DayTemp,Solltemperatur Zone 1,,,,2200,,,tempv,,,day setpoint for zone 1

and do you haven an idea on how to write the timeslots?

@Trapper12
Copy link

Trapper12 commented Feb 2, 2023

Hi,

I also have this senso comfort and it is found as 15.ctlv2. How can I force ebusd to load this 15.ctlv2.csv?
Also found by ebusd is "MF=Vaillant;ID=VWZIO;SW=0607;HW=5103". This seems to be the main controller for the heat pump.
Has anyone this device or heard from a csv? It is also called Hydraulikstation. (https://www.heizungsdiscount24.de/zubehoer/vaillant-arotherm-plus-vwz-meh-976-hydraulikstation-fuer-heizungswaermepumpe.html)

Just tried
EBUSD_OPTS="--scanconfig -d ens:/dev/ttyAMA0 --latency=50 --httpport=8889 --configpath=https://github.com/janphkre/ebusd-configuration/tree/feature/support-ctlv2/ebusd-2.1.x/de/vaillant"
Ebusd did not start, wrong configpath. How should the ebusd config file should be to take the csv´s from janphkre?

I downloaded the repository, took 08.hmu.csv, 15.ctlv2.csv and 26.vr_71.csv in etc/ebusd/vaillant. I took memory.csv, broadcast.csv and _templates.csv in /etc/ebusd.
Configfile:
EBUSD_OPTS="--scanconfig=full -d ens:/dev/ttyAMA0 --latency=50 --httpport=8889 --configpath=/etc/ebusd"
Ebusd Log says "cannot read config files from /etc/ebusd.
I put all above mentioned files in /etc/ebusd and also in /etc/ebusd/vaillant. Same result " cannot read config files ... .
With Ebusd Config EBUSD_OPTS="--scanconfig -d ens:/dev/ttyAMA0 --latency=50 --httpport=8889" only the 08.hmu.csv and the 26.vr_71,csv are loaded. Obviously from John30 repo.
Need your help
Thanks for your work
Okay, after a while of reading I cloned John30 Ebusd git, put the 15.ctlv2 into the Felder and adjusted the ebusd config file. Now I get some data. Only the 08.hmu00.csv does not work. Data error in field 1. But that I asked for in an other forum.
Klaus

@cyberthom42
Copy link

Hi,

I also have this senso comfort and it is found as 15.ctlv2. How can I force ebusd to load this 15.ctlv2.csv? Also found by ebusd is "MF=Vaillant;ID=VWZIO;SW=0607;HW=5103". This seems to be the main controller for the heat pump. Has anyone this device or heard from a csv? It is also called Hydraulikstation. (https://www.heizungsdiscount24.de/zubehoer/vaillant-arotherm-plus-vwz-meh-976-hydraulikstation-fuer-heizungswaermepumpe.html)

Just tried EBUSD_OPTS="--scanconfig -d ens:/dev/ttyAMA0 --latency=50 --httpport=8889 --configpath=https://github.com/janphkre/ebusd-configuration/tree/feature/support-ctlv2/ebusd-2.1.x/de/vaillant" Ebusd did not start, wrong configpath. How should the ebusd config file should be to take the csv´s from janphkre?

I downloaded the repository, took 08.hmu.csv, 15.ctlv2.csv and 26.vr_71.csv in etc/ebusd/vaillant. I took memory.csv, broadcast.csv and _templates.csv in /etc/ebusd. Configfile: EBUSD_OPTS="--scanconfig=full -d ens:/dev/ttyAMA0 --latency=50 --httpport=8889 --configpath=/etc/ebusd" Ebusd Log says "cannot read config files from /etc/ebusd. I put all above mentioned files in /etc/ebusd and also in /etc/ebusd/vaillant. Same result " cannot read config files ... . With Ebusd Config EBUSD_OPTS="--scanconfig -d ens:/dev/ttyAMA0 --latency=50 --httpport=8889" only the 08.hmu.csv and the 26.vr_71,csv are loaded. Obviously from John30 repo. Need your help Thanks for your work Okay, after a while of reading I cloned John30 Ebusd git, put the 15.ctlv2 into the Felder and adjusted the ebusd config file. Now I get some data. Only the 08.hmu00.csv does not work. Data error in field 1. But that I asked for in an other forum. Klaus

I create a csv for the Hydraulikstation, see my post or my github repository

@mklooss
Copy link

mklooss commented Feb 14, 2023

@john30 @janphkre
the config runs here since dec. 2022 without any issues
VR71 / VRC720/2 / VCS5

@nboeckmann
Copy link

@janphkre

However, I noticed a problem with the hwcTimer: In the message definition for wTimeSlotWithoutTemp I wrote IGN:2 which I thought would place there FFFF, but it places 0000 inside, which results in a return code of 06 insted of 00.
I currently am a bit clueless on how to fix this without having to define the value explicitly.

I've changed it to a HEX:2 - and then I'm able to set the schedule with the following (I think that' what you've meant with 'value explicitly'):
ebusctl -p 8888 w -c ctlv2 ccTimer.Monday "0;1;00:00;23:59;ff ff"

I'm aware that it's not elegant - but I don't know ebusd that well and this solves my issue - what do you think about that solution?

I've noticed another thing - when updating the configuration value - I have to do a forced read before I'm getting it back
ebusctl r -f cctimer.Monday0

@lkoniecki
Copy link

Have the same issue as @SzosszeNET

ebusctl find
bai AccessoriesOne = no data stored
bai AccessoriesTwo = no data stored
bai AntiCondensValue = no data stored
bai averageIgnitiontime = no data stored
bai BlockTimeHcMax = no data stored
bai BoilerType = no data stored
bai ChangesDSN = no data stored
bai CirPump = no data stored
bai CodingResistor = no data stored
bai CounterStartattempts1 = no data stored
bai CounterStartattempts2 = no data stored
bai CounterStartAttempts3 = no data stored
bai CounterStartAttempts4 = no data stored
bai currenterror = no data stored
bai DateTime = nosignal;-:-:-;-.-.-;14.750
bai dcfState = no data stored
bai DCFTimeDate = no data stored
bai DCRoomthermostat = no data stored
bai DeactivationsIFC = no data stored
bai DeactivationsTemplimiter = no data stored
bai DeltaFlowReturnMax = no data stored
bai DisplayMode = no data stored
bai DSN = no data stored
bai DSNOffset = no data stored
bai DSNStart = no data stored
bai EbusSourceOn = no data stored
bai EbusVoltage = no data stored
bai errorhistory = no data stored
bai ExternalFaultmessage = no data stored
bai externalHwcSwitch = no data stored
bai ExternGasvalve = no data stored
bai ExtFlowTempDesiredMin = no data stored
bai ExtStorageModulCon = no data stored
bai extWP = no data stored
bai FanHours = no data stored
bai FanMaxSpeedOperation = no data stored
bai FanMinSpeedOperation = no data stored
bai FanPWMSum = no data stored
bai FanPWMTest = no data stored
bai FanSpeed = no data stored
bai FanSpeedOffsetMax = no data stored
bai FanSpeedOffsetMin = no data stored
bai FanStarts = no data stored
bai Flame = no data stored
bai FlameSensingASIC = no data stored
bai FloorHeatingContact = no data stored
bai FlowsetHcMax = no data stored
bai FlowsetHwcMax = no data stored
bai FlowTemp = no data stored
bai FlowTempDesired = no data stored
bai FlowTempMax = no data stored
bai Fluegasvalve = no data stored
bai FluegasvalveOpen = no data stored
bai Gasvalve3UC = no data stored
bai GasvalveASICFeedback = no data stored
bai GasvalveUC = no data stored
bai GasvalveUCFeedback = no data stored
bai HcHours = no data stored
bai HcPumpMode = no data stored
bai HcPumpStarts = no data stored
bai HcStarts = no data stored
bai HcUnderHundredStarts = no data stored
bai HeatingSwitch = no data stored
bai HoursTillService = no data stored
bai HwcDemand = no data stored
bai HwcHours = no data stored
bai HwcImpellorSwitch = no data stored
bai HwcStarts = no data stored
bai HwcSwitch = no data stored
bai HwcTemp = no data stored
bai HwcTempMax = no data stored
bai HwcTypes = no data stored
bai HwcUnderHundredStarts = no data stored
bai HwcWaterflowMax = no data stored
bai Ignitor = no data stored
bai InitialisationEEPROM = no data stored
bai IonisationVoltageLevel = no data stored
bai maintenancedata_HwcTempMax = no data stored
bai maxIgnitiontime = no data stored
bai minIgnitiontime = no data stored
bai ModulationTempDesired = no data stored
bai OptionalRelais = no data stored
bai OutdoorstempSensor = no data stored
bai OverflowCounter = no data stored
bai ParamToken = no data stored
bai PartloadHcKW = no data stored
bai PartnumberBox = no data stored
bai PositionValveSet = no data stored
bai PowerValue = no data stored
bai PrAPSCounter = no data stored
bai PrAPSSum = no data stored
bai PrEnergyCountHc1 = no data stored
bai PrEnergyCountHc2 = no data stored
bai PrEnergyCountHc3 = no data stored
bai PrEnergyCountHwc1 = no data stored
bai PrEnergyCountHwc2 = no data stored
bai PrEnergyCountHwc3 = no data stored
bai PrEnergySumHc1 = no data stored
bai PrEnergySumHc2 = no data stored
bai PrEnergySumHc3 = no data stored
bai PrEnergySumHwc1 = no data stored
bai PrEnergySumHwc2 = no data stored
bai PrEnergySumHwc3 = no data stored
bai PrimaryCircuitFlowrate = no data stored
bai ProductionByte = no data stored
bai PrVortexFlowSensorValue = no data stored
bai PumpHours = no data stored
bai PumpHwcFlowNumber = no data stored
bai PumpHwcFlowSum = no data stored
bai PumpPower = no data stored
bai PumpPowerDesired = no data stored
bai RemainingBoilerblocktime = no data stored
bai ReturnRegulation = no data stored
bai ReturnTemp = no data stored
bai ReturnTempExternal = no data stored
bai ReturnTempMax = no data stored
bai SerialNumber = no data stored
bai SetFactoryValues = no data stored
bai SetMode = auto;26.0;-;-;0;0;0;0;0;0
bai SHEMaxDeltaHwcFlow = no data stored
bai SHEMaxFlowTemp = no data stored
bai Statenumber = no data stored
bai Status01 = 26.0;25.5;14.750;33.0;44.0;off
bai Status02 = auto;60;75.0;70;65.0
bai Status16 = no data stored
bai Status = no data stored
bai StatusCirPump = on
bai StorageDelay = no data stored
bai StorageExitTemp = no data stored
bai Storageloadpump = no data stored
bai StorageLoadPumpHours = no data stored
bai StorageloadPumpStarts = no data stored
bai StorageLoadTimeMax = no data stored
bai StorageTemp = no data stored
bai StorageTempDesired = no data stored
bai StorageTempMax = no data stored
bai TargetFanSpeed = no data stored
bai TargetFanSpeedOutput = no data stored
bai TempDiffBlock = no data stored
bai TempDiffFailure = no data stored
bai TempGradientFailure = no data stored
bai Templimiter = no data stored
bai TemplimiterWithNTC = no data stored
bai TempMaxDiffExtTFT = no data stored
bai Testbyte = no data stored
bai TimerInputHc = no data stored
bai ValveStarts = no data stored
bai VolatileLockout = no data stored
bai VolatileLockoutIFCGV = no data stored
bai WarmstartDemand = no data stored
bai WaterHcFlowMax = no data stored
bai WaterPressure = no data stored
bai WaterpressureBranchControlOff = no data stored
bai WaterpressureMeasureCounter = no data stored
bai WaterpressureVariantSum = no data stored
bai WP = no data stored
bai WPPostrunTime = no data stored
bai WPSecondStage = no data stored
broadcast datetime = no data stored
broadcast error = no data stored
broadcast hwcStatus = no data stored
broadcast id = no data stored
broadcast id = no data stored
broadcast load = no data stored
broadcast outsidetemp = 14.750
broadcast signoflife = no data stored
broadcast vdatetime = 14:12:00;21.04.2023
ctlv2 AdaptHeatCurve = no data stored
ctlv2 ccTimer.Config = no data stored
ctlv2 ccTimer.Friday0 = no data stored
ctlv2 ccTimer.Friday1 = no data stored
ctlv2 ccTimer.Friday2 = no data stored
ctlv2 ccTimer.Monday0 = no data stored
ctlv2 ccTimer.Monday1 = no data stored
ctlv2 ccTimer.Monday2 = no data stored
ctlv2 ccTimer.Saturday0 = no data stored
ctlv2 ccTimer.Saturday1 = no data stored
ctlv2 ccTimer.Saturday2 = no data stored
ctlv2 ccTimer.Sunday0 = no data stored
ctlv2 ccTimer.Sunday1 = no data stored
ctlv2 ccTimer.Sunday2 = no data stored
ctlv2 ccTimer.Thursday0 = no data stored
ctlv2 ccTimer.Thursday1 = no data stored
ctlv2 ccTimer.Thursday2 = no data stored
ctlv2 ccTimer.Timeframes = no data stored
ctlv2 ccTimer.Tuesday0 = no data stored
ctlv2 ccTimer.Tuesday1 = no data stored
ctlv2 ccTimer.Tuesday2 = no data stored
ctlv2 ccTimer.Wednesday0 = no data stored
ctlv2 ccTimer.Wednesday1 = no data stored
ctlv2 ccTimer.Wednesday2 = no data stored
ctlv2 ContinousHeating = no data stored
ctlv2 currenterror = no data stored
ctlv2 CylinderChargeHyst = no data stored
ctlv2 CylinderChargeOffset = no data stored
ctlv2 Date = no data stored
ctlv2 DisplayedOutsideTemp = no data stored
ctlv2 errorhistory = no data stored
ctlv2 FrostOverRideTime = no data stored
ctlv2 Hc1ActualFlowTempDesired = no data stored
ctlv2 Hc1AutoOffMode = no data stored
ctlv2 Hc1CircuitType = no data stored
ctlv2 Hc1ExcessTemp = no data stored
ctlv2 Hc1FlowTemp = no data stored
ctlv2 Hc1HeatCurve = no data stored
ctlv2 Hc1HeatCurveAdaption = no data stored
ctlv2 Hc1MaxFlowTempDesired = no data stored
ctlv2 Hc1MinFlowTempDesired = no data stored
ctlv2 Hc1MixerMovement = no data stored
ctlv2 Hc1PumpStatus = no data stored
ctlv2 Hc1RoomTempSwitchOn = no data stored
ctlv2 Hc1Status = no data stored
ctlv2 Hc1SummerTempLimit = no data stored
ctlv2 Hc2ActualFlowTempDesired = no data stored
ctlv2 Hc2AutoOffMode = no data stored
ctlv2 Hc2CircuitType = no data stored
ctlv2 Hc2ExcessTemp = no data stored
ctlv2 Hc2FlowTemp = no data stored
ctlv2 Hc2HeatCurve = no data stored
ctlv2 Hc2HeatCurveAdaption = no data stored
ctlv2 Hc2MaxFlowTempDesired = no data stored
ctlv2 Hc2MinFlowTempDesired = no data stored
ctlv2 Hc2MixerMovement = no data stored
ctlv2 Hc2PumpStatus = no data stored
ctlv2 Hc2RoomTempSwitchOn = no data stored
ctlv2 Hc2Status = no data stored
ctlv2 Hc2SummerTempLimit = no data stored
ctlv2 Hc3ActualFlowTempDesired = no data stored
ctlv2 Hc3AutoOffMode = no data stored
ctlv2 Hc3CircuitType = no data stored
ctlv2 Hc3ExcessTemp = no data stored
ctlv2 Hc3FlowTemp = no data stored
ctlv2 Hc3HeatCurve = no data stored
ctlv2 Hc3HeatCurveAdaption = no data stored
ctlv2 Hc3MaxFlowTempDesired = no data stored
ctlv2 Hc3MinFlowTempDesired = no data stored
ctlv2 Hc3MixerMovement = no data stored
ctlv2 Hc3PumpStatus = no data stored
ctlv2 Hc3RoomTempSwitchOn = no data stored
ctlv2 Hc3Status = no data stored
ctlv2 Hc3SummerTempLimit = no data stored
ctlv2 HcStorageTempBottom = no data stored
ctlv2 HcStorageTempTop = no data stored
ctlv2 HwcBankHolidayEndPeriod = no data stored
ctlv2 HwcBankHolidayStartPeriod = no data stored
ctlv2 HwcFlowTemp = no data stored
ctlv2 HwcHolidayEndPeriod = no data stored
ctlv2 HwcHolidayStartPeriod = no data stored
ctlv2 HwcLockTime = no data stored
ctlv2 HwcMaxFlowTempDesired = no data stored
ctlv2 HwcOpMode = no data stored
ctlv2 HwcParallelLoading = no data stored
ctlv2 HwcSFMode = no data stored
ctlv2 HwcStorageTemp = no data stored
ctlv2 HwcStorageTempBottom = no data stored
ctlv2 HwcStorageTempTop = no data stored
ctlv2 HwcTempDesired = no data stored
ctlv2 hwcTimer.Config = no data stored
ctlv2 hwcTimer.Friday0 = no data stored
ctlv2 hwcTimer.Friday1 = no data stored
ctlv2 hwcTimer.Friday2 = no data stored
ctlv2 hwcTimer.Monday0 = no data stored
ctlv2 hwcTimer.Monday1 = no data stored
ctlv2 hwcTimer.Monday2 = no data stored
ctlv2 hwcTimer.Saturday0 = no data stored
ctlv2 hwcTimer.Saturday1 = no data stored
ctlv2 hwcTimer.Saturday2 = no data stored
ctlv2 hwcTimer.Sunday0 = no data stored
ctlv2 hwcTimer.Sunday1 = no data stored
ctlv2 hwcTimer.Sunday2 = no data stored
ctlv2 hwcTimer.Thursday0 = no data stored
ctlv2 hwcTimer.Thursday1 = no data stored
ctlv2 hwcTimer.Thursday2 = no data stored
ctlv2 hwcTimer.Timeframes = no data stored
ctlv2 hwcTimer.Tuesday0 = no data stored
ctlv2 hwcTimer.Tuesday1 = no data stored
ctlv2 hwcTimer.Tuesday2 = no data stored
ctlv2 hwcTimer.Wednesday0 = no data stored
ctlv2 hwcTimer.Wednesday1 = no data stored
ctlv2 hwcTimer.Wednesday2 = no data stored
ctlv2 HydraulicScheme = no data stored
ctlv2 Installer1 = no data stored
ctlv2 Installer2 = no data stored
ctlv2 KeyCodeforConfigMenu = no data stored
ctlv2 MaintenanceDate = no data stored
ctlv2 MaintenanceDue = no data stored
ctlv2 MaxCylinderChargeTime = no data stored
ctlv2 MaxRoomHumidity = no data stored
ctlv2 MultiRelaySetting = no data stored
ctlv2 OutsideTempAvg = no data stored
ctlv2 PhoneNumber1 = no data stored
ctlv2 PhoneNumber2 = no data stored
ctlv2 PrEnergySum = no data stored
ctlv2 PrEnergySumHc = no data stored
ctlv2 PrEnergySumHcLastMonth = no data stored
ctlv2 PrEnergySumHcThisMonth = no data stored
ctlv2 PrEnergySumHwc = no data stored
ctlv2 PrEnergySumHwcLastMonth = no data stored
ctlv2 PrEnergySumHwcThisMonth = no data stored
ctlv2 PrFuelSum = no data stored
ctlv2 PrFuelSumHc = no data stored
ctlv2 PrFuelSumHcLastMonth = no data stored
ctlv2 PrFuelSumHcThisMonth = no data stored
ctlv2 PrFuelSumHwc = no data stored
ctlv2 PrFuelSumHwcLastMonth = no data stored
ctlv2 PrFuelSumHwcThisMonth = no data stored
ctlv2 PumpAdditionalTime = no data stored
ctlv2 SolarYieldTotal = no data stored
ctlv2 SystemFlowTemp = no data stored
ctlv2 Time = no data stored
ctlv2 unknownValue.a0 = no data stored
ctlv2 WaterPressure = no data stored
ctlv2 YieldTotal = no data stored
ctlv2 z1ActualRoomTempDesired = no data stored
ctlv2 z1BankHolidayEndPeriod = no data stored
ctlv2 z1BankHolidayStartPeriod = no data stored
ctlv2 z1CoolingTemp = no data stored
ctlv2 z1DayTemp = no data stored
ctlv2 z1HolidayEndPeriod = no data stored
ctlv2 z1HolidayStartPeriod = no data stored
ctlv2 z1HolidayTemp = no data stored
ctlv2 z1Name1 = no data stored
ctlv2 z1Name2 = no data stored
ctlv2 z1NightTemp = no data stored
ctlv2 z1OpMode = no data stored
ctlv2 z1QuickVetoTemp = no data stored
ctlv2 z1RoomTemp = no data stored
ctlv2 z1RoomZoneMapping = no data stored
ctlv2 z1SFMode = no data stored
ctlv2 z1Shortname = no data stored
ctlv2 z1Timer.Config = no data stored
ctlv2 z1Timer.Friday0 = no data stored
ctlv2 z1Timer.Friday1 = no data stored
ctlv2 z1Timer.Friday2 = no data stored
ctlv2 z1Timer.Monday0 = no data stored
ctlv2 z1Timer.Monday1 = no data stored
ctlv2 z1Timer.Monday2 = no data stored
ctlv2 z1Timer.Saturday0 = no data stored
ctlv2 z1Timer.Saturday1 = no data stored
ctlv2 z1Timer.Saturday2 = no data stored
ctlv2 z1Timer.Sunday0 = no data stored
ctlv2 z1Timer.Sunday1 = no data stored
ctlv2 z1Timer.Sunday2 = no data stored
ctlv2 z1Timer.Thursday0 = no data stored
ctlv2 z1Timer.Thursday1 = no data stored
ctlv2 z1Timer.Thursday2 = no data stored
ctlv2 z1Timer.Timeframes = no data stored
ctlv2 z1Timer.Tuesday0 = no data stored
ctlv2 z1Timer.Tuesday1 = no data stored
ctlv2 z1Timer.Tuesday2 = no data stored
ctlv2 z1Timer.Wednesday0 = no data stored
ctlv2 z1Timer.Wednesday1 = no data stored
ctlv2 z1Timer.Wednesday2 = no data stored
ctlv2 z1ValveStatus = no data stored
ctlv2 z2ActualRoomTempDesired = no data stored
ctlv2 z2BankHolidayEndPeriod = no data stored
ctlv2 z2BankHolidayStartPeriod = no data stored
ctlv2 z2CoolingTemp = no data stored
ctlv2 z2DayTemp = no data stored
ctlv2 z2HolidayEndPeriod = no data stored
ctlv2 z2HolidayStartPeriod = no data stored
ctlv2 z2HolidayTemp = no data stored
ctlv2 z2Name1 = no data stored
ctlv2 z2Name2 = no data stored
ctlv2 z2NightTemp = no data stored
ctlv2 z2OpMode = no data stored
ctlv2 z2QuickVetoTemp = no data stored
ctlv2 z2RoomTemp = no data stored
ctlv2 z2RoomZoneMapping = no data stored
ctlv2 z2SFMode = no data stored
ctlv2 z2Shortname = no data stored
ctlv2 z2Timer.Config = no data stored
ctlv2 z2Timer.Friday0 = no data stored
ctlv2 z2Timer.Friday1 = no data stored
ctlv2 z2Timer.Friday2 = no data stored
ctlv2 z2Timer.Monday0 = no data stored
ctlv2 z2Timer.Monday1 = no data stored
ctlv2 z2Timer.Monday2 = no data stored
ctlv2 z2Timer.Saturday0 = no data stored
ctlv2 z2Timer.Saturday1 = no data stored
ctlv2 z2Timer.Saturday2 = no data stored
ctlv2 z2Timer.Sunday0 = no data stored
ctlv2 z2Timer.Sunday1 = no data stored
ctlv2 z2Timer.Sunday2 = no data stored
ctlv2 z2Timer.Thursday0 = no data stored
ctlv2 z2Timer.Thursday1 = no data stored
ctlv2 z2Timer.Thursday2 = no data stored
ctlv2 z2Timer.Timeframes = no data stored
ctlv2 z2Timer.Tuesday0 = no data stored
ctlv2 z2Timer.Tuesday1 = no data stored
ctlv2 z2Timer.Tuesday2 = no data stored
ctlv2 z2Timer.Wednesday0 = no data stored
ctlv2 z2Timer.Wednesday1 = no data stored
ctlv2 z2Timer.Wednesday2 = no data stored
ctlv2 z2ValveStatus = no data stored
ctlv2 z3ActualRoomTempDesired = no data stored
ctlv2 z3BankHolidayEndPeriod = no data stored
ctlv2 z3BankHolidayStartPeriod = no data stored
ctlv2 z3DayTemp = no data stored
ctlv2 z3HolidayEndPeriod = no data stored
ctlv2 z3HolidayStartPeriod = no data stored
ctlv2 z3HolidayTemp = no data stored
ctlv2 z3Name1 = no data stored
ctlv2 z3Name2 = no data stored
ctlv2 z3NightTemp = no data stored
ctlv2 z3OpMode = no data stored
ctlv2 z3QuickVetoTemp = no data stored
ctlv2 z3RoomTemp = no data stored
ctlv2 z3RoomZoneMapping = no data stored
ctlv2 z3SFMode = no data stored
ctlv2 z3Shortname = no data stored
ctlv2 z3Timer.Config = no data stored
ctlv2 z3Timer.Friday0 = no data stored
ctlv2 z3Timer.Friday1 = no data stored
ctlv2 z3Timer.Friday2 = no data stored
ctlv2 z3Timer.Monday0 = no data stored
ctlv2 z3Timer.Monday1 = no data stored
ctlv2 z3Timer.Monday2 = no data stored
ctlv2 z3Timer.Saturday0 = no data stored
ctlv2 z3Timer.Saturday1 = no data stored
ctlv2 z3Timer.Saturday2 = no data stored
ctlv2 z3Timer.Sunday0 = no data stored
ctlv2 z3Timer.Sunday1 = no data stored
ctlv2 z3Timer.Sunday2 = no data stored
ctlv2 z3Timer.Thursday0 = no data stored
ctlv2 z3Timer.Thursday1 = no data stored
ctlv2 z3Timer.Thursday2 = no data stored
ctlv2 z3Timer.Timeframes = no data stored
ctlv2 z3Timer.Tuesday0 = no data stored
ctlv2 z3Timer.Tuesday1 = no data stored
ctlv2 z3Timer.Tuesday2 = no data stored
ctlv2 z3Timer.Wednesday0 = no data stored
ctlv2 z3Timer.Wednesday1 = no data stored
ctlv2 z3Timer.Wednesday2 = no data stored
ctlv2 z3ValveStatus = no data stored
general valuerange = no data stored
memory eeprom = no data stored
memory ram = no data stored
sc Col = no data stored
sc ColKickPumpTime = no data stored
sc ColKickTempDelta = no data stored
sc CollPump = no data stored
sc currenterror = no data stored
sc D1Temp = no data stored
sc D2Temp = no data stored
sc Date = no data stored
sc EDFunction = no data stored
sc EnableScProtection = no data stored
sc errorhistory = no data stored
sc FlowRate = no data stored
sc FrostProtectionEnabled = no data stored
sc FrostProtectionLimit = no data stored
sc Hc1PumpKol1PP1Port = no data stored
sc Hc2aLegPumpP2Port = no data stored
sc Hc2zPort = no data stored
sc HydraulicScheme = no data stored
sc InitCircuit = no data stored
sc IsInBoostMode = no data stored
sc KickFunction = no data stored
sc LpZpMaPort = no data stored
sc MAPreferredStorage = no data stored
sc MaximalTemp2 = no data stored
sc MaximalTemp = no data stored
sc MultifunctionOutput = no data stored
sc OMultifunction = no data stored
sc PumpAntiLockingFlags = no data stored
sc QuickVetoStart = no data stored
sc ResetSolGain = no data stored
sc RuntimeCollPump = no data stored
sc RuntimeCollPumpSeconds = no data stored
sc ScProtectionHysteresis = no data stored
sc ScProtectionLimit = no data stored
sc ScProtectionTime = no data stored
sc SolCollPumpDcIntegrator = no data stored
sc SolCollPumpED = no data stored
sc SolGain = no data stored
sc SolOperationMode = no data stored
sc SP1 = no data stored
sc SP2 = no data stored
sc SumSolGain = no data stored
sc SumSolGainDayBefore = no data stored
sc SystemMode = no data stored
sc TempDifferenceOff2 = no data stored
sc TempDifferenceOff = no data stored
sc TempDifferenceOffTD12 = no data stored
sc TempDifferenceOn2 = no data stored
sc TempDifferenceOn = no data stored
sc TempDifferenceOnTD12 = no data stored
sc Time = no data stored
sc Weekday = no data stored
sc YieldLastYear = no data stored
sc YieldThisYear =  (ERR: invalid position for 31ecb509030d3f00 / 00)
scan id = no data stored
scan.08  = Vaillant;BAI00;0205;9602
scan.08 id = 21;21;39;0010015449;3100;005458;N0
scan.15  = Vaillant;CTLV2;0514;1104
scan.15 id = 21;21;42;0020260916;0953;008361;N2
scan.ec  = Vaillant;SOL00;0514;1104
scan.ec id = 21;21;42;0020260916;0953;008361;N2

Most of the values are not reported.

@mklooss
Copy link

mklooss commented Jan 15, 2024

created a PR @janphkre janphkre#1

@Rapha811
Copy link

Rapha811 commented Jan 15, 2024

Does anybody know whether it is possible to set multiple heating time slots simultaneously?
So for example, I want to do

ebusctl write -c ctlv2 z1Timer.Monday "0;2;00:00;04:00;18.0"
ebusctl write -c ctlv2 z1Timer.Monday "1;2;04:00;06:00;19.0"

Can I somehow combine this into one message? Otherwise I would have to execute quite a lot of write commands whenever I want to change the temperature.

@mklooss mklooss mentioned this pull request Jan 16, 2024
@janphkre janphkre requested a review from john30 January 22, 2024 23:00
@majuss
Copy link

majuss commented Jan 31, 2024

@john30 what is hindering the merge? The requested change was implemeted both files have the same length now. I would argue that hundreds of users are waiting for this integration, because it's a very common thermostat.

@SzosszeNET
Copy link

SzosszeNET commented Jan 31, 2024

@majuss - maybe ppl having life? Doubt John gets paid to to this and even if he was this a little respect goes a long way. Was lucky found this PR - you can clone it, point your ebusd to it and works, sure not having to do it would be easier, but not everything is perfect.
Don't mean to lecure you or pick a fight, just my opinion.

@majuss
Copy link

majuss commented Jan 31, 2024

@SzosszeNET I'am sorry that it came around as negative. It was meant to be a neutral comment and the question how we can help.

@mklooss mklooss mentioned this pull request Feb 8, 2024
@john30 john30 merged commit 6fc12ce into john30:master Feb 11, 2024
1 check passed
@SzosszeNET
Copy link

SzosszeNET commented Feb 11, 2024

Edit - was too hasty, looks like it works now

I think this functionality gets broken by #316 somehow. Just tried

ebusctl info
version: ebusd 23.2.p20230716
update check: version 23.3 available
device: ebus-shield:9999, enhanced, firmware 1.1[4106].1[4106]
access: *
signal: acquired
symbol rate: 42
max symbol rate: 188
min arbitration micros: 0
max arbitration micros: 36
min symbol latency: 11
max symbol latency: 36
scan: finished
reconnects: 0
masters: 5
messages: 73
conditional: 0
poll: 25
update: 10
address 03: master #11
address 08: slave #11, scanned "MF=Vaillant;ID=HMU00;SW=0607;HW=5103", loaded "vaillant/08.hmu.csv"
address 10: master #2
address 15: slave #2, scanned "MF=Vaillant;ID=CTLV2;SW=0514;HW=1104"
address 31: master #8, ebusd
address 36: slave #8, ebusd
address 71: master #9
address 76: slave #9, scanned "MF=Vaillant;ID=VWZIO;SW=0202;HW=0103"
address f1: master #10
address f6: slave #10, scanned "MF=Vaillant;ID=NETX2;SW=4033;HW=5703"

HMU loads but the CTLV2 CSV does not

@1achy
Copy link

1achy commented Apr 13, 2024

I used this mod and to continue is WORK !!!!!!!!

I use personal config 👍 I attach :

BACKUOP CARTELLA IN WWW ebusd_mod_ctlv2.zip

Picture config for use personal config
Schermata 2023-12-23 alle 14 31 13

WORK. ALL:

Schermata 2024-04-13 alle 17 14 34

Schermata 2024-04-13 alle 17 19 17

@mainmind83
Copy link

@john30 it's ok @1achy solution?

@majuss
Copy link

majuss commented Nov 17, 2024

@1achy seems only to work with ctlv0 I have a ctlv2 and it doesn't work :( Still no timers etc. and a lot of commands that couldn't be processed.

I'am using ebusd addon in HA version: 23.2.6. Is 24.1 necessary for this fix to work?

EDIT: Tested it with 24.1 still same behavior. I want to desperately set a cc.Timer but still no luck. Wenn I change the time on the panel some unknown MS commands pop up, maybe related to that, maybe not. The cc Timer topic is never created in MQTT.

Screenshot 2024-11-17 at 09 39 06

@Dette70
Copy link

Dette70 commented Nov 17, 2024

@1achy seems only to work with ctlv0 I have a ctlv2 and it doesn't work :( Still no timers etc. and a lot of commands that couldn't be processed.

I'am using ebusd addon in HA version: 23.2.6. Is 24.1 necessary for this fix to work?

EDIT: Tested it with 24.1 still same behavior. I want to desperately set a cc.Timer but still no luck. Wenn I change the time on the panel some unknown MS commands pop up, maybe related to that, maybe not. The cc Timer topic is never created in MQTT.
Screenshot 2024-11-17 at 09 39 06

Which configuration settings did you choose? If you choose the automatic configuration from john30 you should check the 15.ctlv2.csv for your "missing" timers. Not all timers are available here.
You should also use “ebusctl i” to check whether the 15.ctlv2.csv has been correctly linked.

I copied the repository from
https://github.com/jonesPD/ebusd-configuration/

to my local system.
Here you can find almost any timers in the 15.ctlv2.csv.

@majuss
Copy link

majuss commented Nov 17, 2024

Okay I used this repo not not the link provided by @1achy.

When I try to set a timer like this:
Screenshot 2024-11-17 at 17 22 51

I get:
2024-11-17 17:22:54.511 [mqtt error] write message ctlv2 ccTimer.Monday not found

With this config, ctvl2 is not loaded at all.

@Dette70
Copy link

Dette70 commented Nov 18, 2024

Okay I used this repo not not the link provided by @1achy.

When I try to set a timer like this: Screenshot 2024-11-17 at 17 22 51

I get: 2024-11-17 17:22:54.511 [mqtt error] write message ctlv2 ccTimer.Monday not found

With this config, ctvl2 is not loaded at all.

Are you able to read (not write) the timer slots?
If not, first of all, can you post the output of “ebusctl i” on your ebusd deamon console?
If the 15.ctlv2.cvs is not loaded, you need to check your ebusd log (/var/log/ebusd.log for errors during the initla load phase of the deamon. There you find the error message when the cvs file will not be loaded.

@majuss
Copy link

majuss commented Nov 19, 2024

So I got it running but the timers are not threre with your config.
I again tried the config from @1achy and the timers started appearing.

It's somewhat creepy that the only config which works with one of the most used thermostats is from a random dude in an alreaedy merged PR.

@Dette70
Copy link

Dette70 commented Nov 19, 2024

So I got it running but the timers are not threre with your config. I again tried the config from @1achy and the timers started appearing.

It's somewhat creepy that the only config which works with one of the most used thermostats is from a random dude in an alreaedy merged PR.

I do not see any differences for the timers in the files from @1achy and the other repository. But at the end, if it works now, all is fine.
If you want figure out why the "official" configfiles will not work, you have to analyze it like mendioned above.

@majuss
Copy link

majuss commented Nov 20, 2024

So I have them now but I still can't set anything:

ebusctl r -f -i 0 -c ctlv2 ccTimer.Monday0
works and gives me: 08:00;20:10

But:
Screenshot 2024-11-20 at 19 28 33

gives me:

2024-11-20 19:28:38.644 [mqtt error] write message ctlv2 ccTimer.Monday0 not found

Writing via ebusctl:

ebusctl w -c ctlv2 ccTimer.Monday0 "08:00;20:00"
ERR: element not found

So the ccTimer.Monday without the 0 is there. And below is the config, but I absolutely don't understand what it's expecting as input?
As soon as there is a ":" in there it gives me:

write -c ctlv2 ccTimer.Saturday ':'
ERR: invalid numeric argument

Without : I always get "ERR: end of input reached"

Screenshot 2024-11-20 at 22 00 23

@chrizzzp
Copy link

@majuss

  1. The copied line from the CSV shows the message name for writing timers is ccTimer.Monday not ccTimer.Monday0.
  2. Writing timers works a bit different than reading the timers. Each time slot of the day has to be written separately and all time slots have to be written each time any of the time slots is updated. Otherwise changes are not valid. This has been worked out here for instance: VRC 720 configuration: understanding and managing Heating Zone time slots stadid/ebusd-configuration#3
    The payload definition would be: slot_index;total_slotnumber_day;start_time;end_time;temperature
  3. If timers without an assigned temperature are written (e.g. ccTimer, SilentTimer), the temperature field is specified with 'ffff' (hex for 'no value').

e.g. 3 time slots for Monday:

ebusctl write -c ctlv2 ccTimer.Monday "0;3;00:20;02:20;ff ff"
ebusctl write -c ctlv2 ccTimer.Monday  "1;3;06:30;08:30;ff ff"
ebusctl write -c ctlv2 ccTimer.Monday  "2;3;10:40;23:40;ff ff"

The write commands without a temperature require the following template (_templates.csv) so this should be checked:

wTimeSlotWithoutTemp,slotIndex;slotCount;slotTimeFrame;HEX:2,,,Complete slot for writing the time table settings without a temperature

Have a look also here, this has been asked before... john30/ebusd#1365 (comment)

@majuss
Copy link

majuss commented Nov 25, 2024

Hi @chrizzzp how can I send these three consecutive timeslots via MQTT?
How fast is this? I want to switch on the circulation pump when I enter the shower, it's tracked via a motion sensor. If it takes longer than 2 seconds I have to use an ESP32 with a relay to control the pump :(

I used your command, they didn't give me an error in the logs, but still nothign changed:

Untitled

@chrizzzp
Copy link

chrizzzp commented Nov 26, 2024

@MJauss

I used your command, they didn't give me an error in the logs, but still nothign changed:

Did you check the correct template is present (_templates.csv)?
wTimeSlotWithoutTemp,slotIndex;slotCount;slotTimeFrame;HEX:2,,,
The HEX:2 is important. It shoudn't be 'IGN:2'.

And make sure ebusctl read -f -c ctlv2 ccTimer.TimeSlotsPerWeekday reports the correct amount of time slots per day. So in your case it seems there should be 1 slot per day.

Once you have this established you can update the ccTimer over MQTT. I think for your case you will have to write the timers for all days (unless you have a separate automation for each day). So you would publish seven MQTT messages (e.g. in Home Assistant by a script) with the following topics and payloads:

alias: "MQTT: set CCTimer"
sequence:
  - metadata: {}
    data:
      qos: "2"
      retain: false
      topic: ebusd/ctlv2/ccTimer.Monday/set
      payload: 0;1;00:00;24:00;ff ff
    action: mqtt.publish
  - metadata: {}
    data:
      qos: "2"
      retain: false
      topic: ebusd/ctlv2/ccTimer.Tuesday/set
      payload: 0;1;00:00;24:00;ff ff
    action: mqtt.publish
  - metadata: {}
    data:
      qos: "2"
      retain: false
      topic: ebusd/ctlv2/ccTimer.Wednesday/set
      payload: 0;1;00:00;24:00;ff ff
    action: mqtt.publish
  - metadata: {}
    data:
      qos: "2"
      retain: false
      topic: ebusd/ctlv2/ccTimer.Thursday/set
      payload: 0;1;00:00;24:00;ff ff
    action: mqtt.publish
  - metadata: {}
    data:
      qos: "2"
      retain: false
      topic: ebusd/ctlv2/ccTimer.Friday/set
      payload: 0;1;00:00;24:00;ff ff
    action: mqtt.publish
  - metadata: {}
    data:
      qos: "2"
      retain: false
      topic: ebusd/ctlv2/ccTimer.Saturday/set
      payload: 0;1;00:00;24:00;ff ff
    action: mqtt.publish
  - metadata: {}
    data:
      qos: "2"
      retain: false
      topic: ebusd/ctlv2/ccTimer.Sunday/set
      payload: 0;1;00:00;24:00;ff ff
    action: mqtt.publish
mode: single

This should not take longer than 1-2 seconds (never checked this).
If you then want to switch back to you original schedule you will have to repeat this step with the respective payloads.

BTW: I think there also other means to activate the circulation manually, e.g. with a multi-purpose-input which can be configured for the circulation pump in the regulator. So you would have to connect e.g. a Shelly actor to this input.

15.ctlv2.csv:

*r,,,,,,B524,02000000,,,IGN:4,,,
*w,,,,,,B524,02010000,,,,,,
r;w,,MultiRelaySetting,multifunction relay setting,,,,4D00,,,mamode,,,0=circulation 1=dryer 2=zone 3=legiopump

@majuss
Copy link

majuss commented Nov 26, 2024

Sadly I dont have the element TimeSlotsPerWeekday

A quick lookup gives me this:

ebusctl find -d -v | grep cc
ctlv2 ccTimer.Config = =00 03 0a 00 00 00 ff ff 00
ctlv2 ccTimer.Friday0 = slotTimeFrame=08:00;=20:00
ctlv2 ccTimer.Friday1 = slotTimeFrame=00:00;=00:00
ctlv2 ccTimer.Friday2 = slotTimeFrame=00:00;=00:00
ctlv2 ccTimer.Monday0 = slotTimeFrame=08:00;=20:00
ctlv2 ccTimer.Monday1 = slotTimeFrame=00:00;=00:00
ctlv2 ccTimer.Monday2 = slotTimeFrame=00:00;=00:00
ctlv2 ccTimer.Saturday0 = slotTimeFrame=09:00;=21:00
ctlv2 ccTimer.Saturday1 = slotTimeFrame=00:00;=00:00
ctlv2 ccTimer.Saturday2 = slotTimeFrame=00:00;=00:00
ctlv2 ccTimer.Sunday0 = slotTimeFrame=09:00;=21:00
ctlv2 ccTimer.Sunday1 = slotTimeFrame=00:00;=00:00
ctlv2 ccTimer.Sunday2 = slotTimeFrame=00:00;=00:00
ctlv2 ccTimer.Thursday0 = slotTimeFrame=08:00;=20:00
ctlv2 ccTimer.Thursday1 = slotTimeFrame=00:00;=00:00
ctlv2 ccTimer.Thursday2 = slotTimeFrame=00:00;=00:00
ctlv2 ccTimer.Timeframes = slotCount=1;slotCount=1;slotCount=1;slotCount=1;slotCount=1;slotCount=1;slotCount=1
ctlv2 ccTimer.Tuesday0 = slotTimeFrame=08:00;=20:00
ctlv2 ccTimer.Tuesday1 = slotTimeFrame=00:00;=00:00
ctlv2 ccTimer.Tuesday2 = slotTimeFrame=00:00;=00:00
ctlv2 ccTimer.Wednesday0 = slotTimeFrame=08:00;=20:00
ctlv2 ccTimer.Wednesday1 = slotTimeFrame=00:00;=00:00
ctlv2 ccTimer.Wednesday2 = slotTimeFrame=00:00;=00:00

I added the line to the template and used you script. No error but also no change :(
Thank you for your help!

I don't want to buy a shelly which is dependend on wifi when the control unit should be able to handle it.

@chrizzzp
Copy link

@majuss

Sadly I dont have the element TimeSlotsPerWeekday

Yes you have, but in your CSV the corresponding definition is ccTimer.Timeframes. It states correctly that you have 1 slot per weekday:

ctlv2 ccTimer.Timeframes = slotCount=1;slotCount=1;slotCount=1;slotCount=1;slotCount=1;slotCount=1;slotCount=1.

Did you try to write the timer by ebusctl?
ebusctl write -c ctlv2 ccTimer.Monday "0;1;00:00;24:00;ff ff"

Are you using local CSVs or from an online repository?

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

Successfully merging this pull request may close these issues.