Skip to content
This repository has been archived by the owner on Oct 4, 2021. It is now read-only.

Write supports EMS+ device Nefit Moduline 3000 #145

Closed
kroon040 opened this issue Jul 2, 2019 · 136 comments
Closed

Write supports EMS+ device Nefit Moduline 3000 #145

kroon040 opened this issue Jul 2, 2019 · 136 comments
Labels
enhancement New feature or request

Comments

@kroon040
Copy link

kroon040 commented Jul 2, 2019

Hi,

It Should be nice to have write support on the nefit moduline 3000 (RC300/RC310) for setting the temperature

The all use the EMS+ protocol. Hoping to add support soon.

@kroon040 kroon040 added the enhancement New feature or request label Jul 2, 2019
@proddy
Copy link
Collaborator

proddy commented Jul 2, 2019

Yes, it's on the list. I was working with a @moustic999 on some tests a while back, and there is also a special RC300 branch we started. The wiki https://github.com/proddy/EMS-ESP/wiki/RC3xx-Thermostats talks about the approach. I think a good start to change the temp is via the 0x01B9 type, so sending something like this:

send 0B 10 FF 00 01 B9 00

to set it to 20.5 degrees (0x29)

@kroon040
Copy link
Author

kroon040 commented Jul 3, 2019

Hi

The thermostaat went from auto to manual, but the temperatuur was not set to 20.5, just took the temp where is was on manual mode 17.0 (see below the logging)

I was trying to understand the wiki (https://github.com/proddy/EMS-ESP/wiki/Deciphering-EMS-Plus)

AUTO Mode, setting temporary temp to 21.5(0x2B)
(03:43:45.965) Gateway -> Thermostat, type 0x01B9 telegram: 48 10 FF 08 01 B9 2B (CRC=FA)
(03:43:46.445) Thermostat -> all, type 0x01B9 telegram: 10 00 FF 08 01 B9 2B (CRC=17)

How is the src work, 0B, 10, 48 when to choose what?

regards Richard


send 0B 10 FF 00 01 B9 00
(03:56:19.147) Sending raw: 0B 10 FF 00 01 B9 00 00
(03:56:19.491) Boiler -> all, type 0x07 telegram: 08 00 07 00 0B 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=F6) #data=13
(03:56:19.766) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 01 63 00 00 80 00 40 40 01 06 80 00 01 2E 00 00 0E 30 48 00 CB 00 00 00 (CRC=06) #data=25
<--- UBAMonitorFast(0x18)
(03:56:20.001) Boiler -> all, type 0x2A telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 06 00 00 80 00 00 80 00 80 00 80 00 00 (CRC=B6) #data=21
(03:56:20.265) Boiler -> all, type 0x34 telegram: 08 00 34 00 3E 01 08 80 00 21 00 00 01 00 00 FF 8B 00 84 F0 00 80 00 (CRC=A3) #data=19
<--- UBAMonitorWWMessage(0x34)
(03:56:20.571) Thermostat -> all, type 0x01B9 telegram: 10 00 FF 00 01 B9 00 (CRC=7C) #data=1
<--- RCPLUSStatusHeating(0x1B9)
(03:56:20.766) Thermostat -> Boiler, type 0x35 telegram: 10 08 35 00 11 01 (CRC=20) #data=2
(03:56:21.037) Boiler -> all, type 0x07 telegram: 08 00 07 00 03 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=DA) #data=13
(03:56:27.412) Thermostat -> all, type 0x01A5 telegram: 10 00 FF 0D 01 A5 01 70 00 CA (CRC=62) #data=4
<--- RCPLUSStatusMessage(0x1A5)
(03:56:29.623) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 01 63 00 00 80 00 40 40 01 06 80 00 01 2E 00 00 0E 30 48 00 CB 00 00 00 (CRC=06) #data=25
<--- UBAMonitorFast(0x18)
(03:56:29.890) Boiler -> all, type 0x2A telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 06 00 00 80 00 00 80 00 80 00 80 00 00 (CRC=B6) #data=21
(03:56:30.122) Boiler -> all, type 0x34 telegram: 08 00 34 00 3E 01 06 80 00 21 00 00 01 00 00 FF 8B 00 84 F0 00 80 00 (CRC=98) #data=19
<--- UBAMonitorWWMessage(0x34)
(03:56:31.755) Thermostat -> Boiler, type 0x1A telegram: 10 08 1A 00 00 00 00 (CRC=C4) #data=3
(03:56:31.808) Thermostat -> all, type 0x0167 telegram: 10 00 FF 00 01 67 00 00 (CRC=AB) #data=2
(03:56:32.186) Thermostat -> all, type 0x021D telegram: 10 00 FF 00 02 1D 00 00 0A 07 (CRC=02) #data=4
(03:56:39.570) Boiler -> all, type 0x34 telegram: 08 00 34 00 3E 01 06 80 00 21 00 00 01 00 00 FF 8B 00 84 F0 00 80 00 (CRC=98) #data=19
<--- UBAMonitorWWMessage(0x34)
(03:56:39.800) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 01 63 00 00 80 00 40 40 01 06 80 00 01 2E 00 00 0E 30 48 00 CB 00 00 00 (CRC=06) #data=25
<--- UBAMonitorFast(0x18)

Thermostat stats:
Thermostat: RC3x0/Nefit Moduline 1010H (ProductID:158 Version:11.10)
Setpoint room temperature: 17.0 C
Current room temperature: 21.9 C
Thermostat time is 11:22:35 3/7/2019
Mode is set to ?

@proddy
Copy link
Collaborator

proddy commented Jul 3, 2019

ah, didn't realize you had a Gateway too which is the master. So either try impersonating the gateway with send 48 10 FF 08 01 B9 2B or send the request to the gateway which will pass it on to the thermostat with send 0B 48 FF 08 01 B9 2B

@kroon040
Copy link
Author

kroon040 commented Jul 3, 2019

No I have nog gateway, that I have from the example of the wiki.

send 0B 48 FF 08 01 B9 2B

gives this, no temp set

send 0B 48 FF 08 01 B9 2B
(02:52:43.216) Sending raw: 0B 48 FF 08 01 B9 2B 00
(02:52:43.595) Boiler -> all, type 0x07 telegram: 08 00 07 00 0B 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=F6) #data=13
(02:52:44.316) Boiler -> all, type 0x07 telegram: 08 00 07 00 03 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=DA) #data=13
(02:52:46.114) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 01 2A 00 00 80 00 40 40 00 F3 80 00 01 08 00 00 0E 30 48 00 CB 00 00 00 (CRC=E0) #data=25
<--- UBAMonitorFast(0x18)
(02:52:46.336) Boiler -> all, type 0x2A telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 06 00 00 80 00 00 80 00 80 00 80 00 00 (CRC=B6) #data=21
(02:52:46.589) Boiler -> all, type 0x34 telegram: 08 00 34 00 3E 00 F3 80 00 21 00 00 01 00 00 FF 8B 00 84 F0 00 80 00 (CRC=6F) #data=19
<--- UBAMonitorWWMessage(0x34)
(02:52:48.724) Thermostat -> Boiler, type 0x35 telegram: 10 08 35 00 11 01 (CRC=20) #data=2
(02:52:51.018) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 01 2A 00 00 80 00 40 40 00 F3 80 00 01 08 00 00 0F 30 48 00 CB 00 00 00 (CRC=60) #data=25
<--- UBAMonitorFast(0x18)
(02:52:53.019) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 01 2A 00 00 80 00 40 40 00 F3 80 00 01 08 00 00 0E 30 48 00 CB 00 00 00 (CRC=E0) #data=25
<--- UBAMonitorFast(0x18)
(02:52:56.011) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 01 2A 00 00 80 00 40 40 00 F3 80 00 01 08 00 00 0F 30 48 00 CB 00 00 00 (CRC=60) #data=25
<--- UBAMonitorFast(0x18)
(02:52:56.250) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 01 2A 00 00 80 00 40 40 00 F3 80 00 01 08 00 00 0E 30 48 00 CB 00 00 00 (CRC=E0) #data=25
<--- UBAMonitorFast(0x18)
(02:52:56.508) Boiler -> all, type 0x19 telegram: 08 00 19 00 80 00 01 3D 80 00 00 00 00 00 00 E1 8B 04 84 E7 00 00 00 03 85 5C 00 5C 9B 80 00 (CRC=99) #data=27
<--- UBAMonitorSlow(0x19)
(02:52:56.843) Boiler -> all, type 0x1C telegram: 08 00 1C 00 92 07 01 0D 08 0D 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (CRC=A4) #data=25
(02:52:57.067) Boiler -> all, type 0x2A telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 06 00 00 80 00 00 80 00 80 00 80 00 00 (CRC=B6) #data=21
(02:52:57.366) Boiler -> all, type 0x34 telegram: 08 00 34 00 3E 00 F3 80 00 21 00 00 01 00 00 FF 8B 00 84 F0 00 80 00 (CRC=6F) #data=19
<--- UBAMonitorWWMessage(0x34)
(02:52:57.601) Thermostat -> all, type 0x06 telegram: 10 00 06 00 13 07 0E 03 32 29 02 01 10 FF 00 (CRC=B9) #data=11
<--- RCTime(0x06)
(02:52:57.813) Boiler -> all, type 0x07 telegram: 08 00 07 00 03 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=DA) #data=13
Requesting scheduled EMS device data
Requesting type RCTime(0x06) from dest 0x10
Requesting type UBAMonitorFast(0x18) from dest 0x08
Requesting type UBAMonitorSlow(0x19) from dest 0x08
Requesting type UBAParameterWW(0x33) from dest 0x08
Requesting type UBAParametersMessage(0x16) from dest 0x08
Requesting type UBATotalUptimeMessage(0x14) from dest 0x08
(02:53:00.895) Sending read of type 0x06 to 0x10: telegram: 0B 90 06 00 20 (CRC=6C)
(02:53:00.971) Thermostat -> me, type 0x06 telegram: 10 0B 06 00 13 07 0E 03 32 2C 02 01 10 FF 00 (CRC=5C) #data=11
<--- RCTime(0x06)
(02:53:00.983) Sending read of type 0x18 to 0x08: telegram: 0B 88 18 00 20 (CRC=D4)
(02:53:01.388) Boiler -> all, type 0x07 telegram: 08 00 07 00 0B 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=F6) #data=13
(02:53:01.587) Sending read of type 0x19 to 0x08: telegram: 0B 88 19 00 20 (CRC=D0)
(02:53:02.017) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 01 2A 00 00 80 00 40 40 00 F3 80 00 01 08 00 00 0F 30 48 00 CB 00 00 00 (CRC=60) #data=25
<--- UBAMonitorFast(0x18)
(02:53:02.290) Sending read of type 0x33 to 0x08: telegram: 0B 88 33 00 20 (CRC=78)
(02:53:02.334) Boiler -> me, type 0x33 telegram: 08 0B 33 00 08 FF 3C FB 00 28 00 00 46 EC FF FF 00 (CRC=7B) #data=13
<--- UBAParameterWW(0x33)
Publishing boiler data via MQTT
(02:53:02.584) Sending read of type 0x16 to 0x08: telegram: 0B 88 16 00 20 (CRC=EC)
(02:53:02.616) Corrupt telegram: 88 16 00 20 EC
(02:53:02.668) Boiler -> me, type 0x16 telegram: 08 0B 16 00 FF 46 4B 00 06 FA 0A 01 01 46 1E 00 00 00 00 00 00 00 00 00 00 00 00 00 28 00 3C (CRC=19) #data=27
<--- UBAParametersMessage(0x16)
(02:53:02.674) Sending read of type 0x14 to 0x08: telegram: 0B 88 14 00 20 (CRC=E4)
(02:53:02.728) Boiler -> me, type 0x14 telegram: 08 0B 14 00 29 FD 1E (CRC=4B) #data=3
<--- UBATotalUptimeMessage(0x14)
(02:53:03.104) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 01 2A 00 00 80 00 40 40 00 F3 80 00 01 08 00 00 0E 30 48 00 CB 00 00 00 (CRC=E0) #data=25
<--- UBAMonitorFast(0x18)
(02:53:03.672) Boiler -> all, type 0x07 telegram: 08 00 07 00 03 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=DA) #data=13
(02:53:05.071) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 01 2A 00 00 80 00 40 40 00 F3 80 00 01 08 00 00 0F 30 48 00 CB 00 00 00 (CRC=60) #data=25
<--- UBAMonitorFast(0x18)
(02:53:06.029) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 01 2A 00 00 80 00 40 40 00 F3 80 00 01 08 00 00 0F 30 48 00 CB 00 00 00 (CRC=60) #data=25
<--- UBAMonitorFast(0x18)
(02:53:06.245) Boiler -> all, type 0x2A telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 06 00 00 80 00 00 80 00 80 00 80 00 00 (CRC=B6) #data=21
(02:53:06.579) Boiler -> all, type 0x34 telegram: 08 00 34 00 3E 00 F3 80 00 21 00 00 01 00 00 FF 8B 00 84 F0 00 80 00 (CRC=6F) #data=19
<--- UBAMonitorWWMessage(0x34)
(02:53:09.017) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 01 2A 00 00 80 00 40 40 00 F3 80 00 01 08 00 00 0E 30 48 00 CB 00 00 00 (CRC=E0) #data=25
<--- UBAMonitorFast(0x18)
(02:53:10.040) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 01 2A 00 00 80 00 40 40 00 F3 80 00 01 08 00 00 0E 30 48 00 CB 00 00 00 (CRC=E0) #data=25
<--- UBAMonitorFast(0x18)
(02:53:11.960) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 01 2A 00 00 80 00 40 40 00 F3 80 00 01 08 00 00 0E 30 48 00 CB 00 00 00 (CRC=E0) #data=25
<--- UBAMonitorFast(0x18)
(02:53:13.448) Thermostat -> Boiler, type 0x1A telegram: 10 08 1A 00 00 00 00 (CRC=C4) #data=3
(02:53:13.506) Thermostat -> all, type 0x0167 telegram: 10 00 FF 00 01 67 00 00 (CRC=AB) #data=2
(02:53:13.701) Thermostat -> all, type 0x021D telegram: 10 00 FF 00 02 1D 00 00 0A 07 (CRC=02) #data=4
(02:53:15.943) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 01 2A 00 00 80 00 40 40 00 F3 80 00 01 08 00 00 0E 30 48 00 CB 00 00 00 (CRC=E0) #data=25
<--- UBAMonitorFast(0x18)
(02:53:16.244) Boiler -> all, type 0x2A telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 06 00 00 80 00 00 80 00 80 00 80 00 00 (CRC=B6) #data=21
(02:53:16.462) Boiler -> all, type 0x34 telegram: 08 00 34 00 3E 00 F3 80 00 21 00 00 01 00 00 FF 8B 00 84 F0 00 80 00 (CRC=6F) #data=19
<--- UBAMonitorWWMessage(0x34)
(02:53:17.233) Thermostat -> Boiler, type 0x23 telegram: 10 08 23 00 00 00 00 (CRC=7F) #data=3
(02:53:18.041) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 01 2A 00 00 80 00 40 40 00 F3 80 00 01 08 00 00 0E 30 48 00 CB 00 00 00 (CRC=E0) #data=25
<--- UBAMonitorFast(0x18)
(02:53:19.068) Thermostat -> all, type 0x01A5 telegram: 10 00 FF 0D 01 A5 00 9F 01 9B (CRC=AE) #data=4
<--- RCPLUSStatusMessage(0x1A5)
(02:53:19.971) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 01 2A 00 00 80 00 40 40 00 F3 80 00 01 08 00 00 0F 30 48 00 CB 00 00 00 (CRC=60) #data=25
<--- UBAMonitorFast(0x18)
(02:53:21.022) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 01 2A 00 00 80 00 40 40 00 F3 80 00 01 08 00 00 0F 30 48 00 CB 00 00 00 (CRC=60) #data=25
<--- UBAMonitorFast(0x18)

Thermostat stats:
Thermostat: RC3x0/Nefit Moduline 1010H (ProductID:158 Version:11.10)
Setpoint room temperature: 16.1 C
Current room temperature: 22.4 C
Thermostat time is 14:50:44 3/7/2019
Mode is set to ?

@proddy
Copy link
Collaborator

proddy commented Jul 3, 2019

from the wiki, 8 and 10 are offsets for setting the temp in auto and manual. Try experimenting with

send 0B 10 FF 08 01 B9 2B
or
send 0B 10 FF 0A 01 B9 2B

to see if anything jumps to 21.5 degrees

@kroon040
Copy link
Author

kroon040 commented Jul 3, 2019

Hi it works like this now

The thermostat must be in manual mode
send 0B 10 FF 0A 01 B9 2B , it goes to 21.5 and stays on manual

The thermostat is in auto mode
send 0B 10 FF 08 01 B9 2B, is goes to 21.5 and stays auto

This combination only works so in automode (0A) doesn't work, and manual mode (08) also not working

@proddy
Copy link
Collaborator

proddy commented Jul 3, 2019

yes, that is expected behavior. It's how far @moustic999 got with his investigation. A sloppy way is to check the op mode and then send the temp in 2 Tx calls. You can get the mode with `send 0B 90 FF 01 01 B9', which will return a telegram with data length 1 and last byte is 0 for Manual or FF for Auto.

@proddy
Copy link
Collaborator

proddy commented Jul 3, 2019

actually thinking about it, it should switch to manual and always set the manual temp?

@kroon040
Copy link
Author

kroon040 commented Jul 3, 2019

nope it doesn't

this works for setting mode

send 0B 10 FF 00 01 B9 00 (manual, and it takes the temp what I have set on my thermostat last time it was on manual)
send 0B 10 FF 00 01 B9 FF (auto, uses the temp from the program)

@proddy
Copy link
Collaborator

proddy commented Jul 3, 2019

No, I meant the logic is that when you change the temp in HA or somewhere else it should first force the thermostat to manual mode and then set the temp. 2 telegrams

@kroon040
Copy link
Author

kroon040 commented Jul 3, 2019

The logic is that it stays on the mode (auto or manual)

For example , I have a default program (auto) the temp from 17:00 - 23:00 is default in the program 19.5 . If I have it some cold, I let the program running and change it to 21.0, then om 23:00 the temp goes down for the night (program keeps running in auto). So that's how I use the thermostat and also with HA . I use manual mode only for vacation (15.0, for x weeks).

@moustic999
Copy link

@kroon040 you are right for the mode.
Mode does not change when changing temp.
in Auto, when you change temp, it is till the next setpoint.
Pretty happy to know that the 01B9 commands works for others than me :-)
@proddy I know you're busy with solving bug, Don't hesitate to mail when you will begin writing EMS+ Write. I had a look on it but that needs lot of change, and I don' feel confortable enough with your code to implement it. But I can help and test.

@kroon040
Copy link
Author

kroon040 commented Jul 5, 2019

Same is for me, I can test.

@proddy
Copy link
Collaborator

proddy commented Jul 5, 2019

ok I need some help with the sequence of steps. When setting the temp I guess we'll need to first determine the mode (auto/manual) and then send the new temperature to the correct offset. Its a bit sloppy and I'm sure there is an easier way but this is all we have at the moment, agree? If you provide the commands I'll add the code and explain how it works

@kroon040
Copy link
Author

kroon040 commented Jul 6, 2019

agree, to do it like this, read the mode (auto/manual), and set it with the right command the temperature

reading auto / manual, see other topic.

these we had also.

The thermostat must be in manual mode
send 0B 10 FF 0A 01 B9 2B , it goes to 21.5 and stays on manual

The thermostat is in auto mode
send 0B 10 FF 08 01 B9 2B, is goes to 21.5 and stays auto

@proddy
Copy link
Collaborator

proddy commented Jul 8, 2019

ok. I'll add that to do the todo list

@proddy
Copy link
Collaborator

proddy commented Jul 12, 2019

#144 has example messages to be used to implement this feature. Waiting for the broadcast messages on 1A5

@moustic999
Copy link

Proddy,
the 01A5 is broadcasted every 120 seconds, even with you don't change anything.
this broadcasted message is in 2 part because of the lenght
example :
(03:22:49.018) Thermostat -> all, type 0x01A5 telegram: 10 00 FF 00 01 A5 80 00 01 2C 29 00 2C 20 01 B6 03 03 01 01 B6 02 28 00 00 11 01 03 FF FF 00 (CRC=A1), #data=24 <--- RCPLUSStatusMessage(0x1A5) received (03:22:49.708) Thermostat -> all, type 0x01A5 telegram: 10 00 FF 19 01 A5 06 04 00 00 00 00 FF 64 4B 00 3C 01 FF 01 02 (CRC=93), #data=14 <--- RCPLUSStatusMessage(0x1A5) received

if you change something then, the 01A5 is sent but only with modified offsets, not full lenght
example :
(02:53:19.068) Thermostat -> all, type 0x01A5 telegram: 10 00 FF 0D 01 A5 00 9F 01 9B (CRC=AE) #data=4 <--- RCPLUSStatusMessage(0x1A5)

@proddy
Copy link
Collaborator

proddy commented Jul 12, 2019 via email

@moustic999
Copy link

as specified in the wiki, it is offset 0x0A
it is 1-byte to be read bitwise
bit 1 is the current mode : 0 manual / 1 automatic
bit 2 specify the level in automatic : day/night or comfort/eco
eco = night = 0
comfort = day = 1

The bit you need is the bit 1

@proddy
Copy link
Collaborator

proddy commented Jul 12, 2019

ok thanks @moustic999

@proddy
Copy link
Collaborator

proddy commented Jul 15, 2019

@kroon040 added a check for mode in 1.8.1b16 so it shouldn't show as ? any more. Can you test? Next step would be to implement the writing of the temps.

@kroon040
Copy link
Author

@proddy , I can check, is there a bin on the release page of 1.8.1b16, of do in need to extract it from dev, and compile it myself?

@proddy
Copy link
Collaborator

proddy commented Jul 15, 2019 via email

@kroon040
Copy link
Author

If you could generate a bin file, it should be nice

@proddy
Copy link
Collaborator

proddy commented Jul 15, 2019

@kroon040
Copy link
Author

Tested, but not weel, I lost reading temp and default no reading (manual/auto)

Flashing firmware and rebooted, after 10 min, still

Thermostat stats:
Thermostat: RC300/RC310/Nefit Moduline 1010/3000 (ProductID:158 Version:11.10)
Setpoint room temperature: ? C
Current room temperature: ? C
Thermostat time is 22:24:21 15/7/2019
Mode is set to ?

setting to manual

Thermostat stats:
Thermostat: RC300/RC310/Nefit Moduline 1010/3000 (ProductID:158 Version:11.10)
Setpoint room temperature: ? C
Current room temperature: ? C
Thermostat time is 22:28:23 15/7/2019
Mode is set to manual

back to auto

Thermostat stats:
Thermostat: RC300/RC310/Nefit Moduline 1010/3000 (ProductID:158 Version:11.10)
Setpoint room temperature: ? C
Current room temperature: ? C
Thermostat time is 22:34:17 15/7/2019
Mode is set to low

@proddy
Copy link
Collaborator

proddy commented Aug 19, 2019

This one 0B 90 FF 00 01 01 67comes back with 1 byte of data, so that's something. Al though it's always 0x00 !

Try:

send 0B 90 FF 00 02 01 67
send 0B 90 FF 01 02 01 67

@kroon040
Copy link
Author

send 0B 90 FF 00 02 01 67
(22:16:07.335) Boiler -> all, type 0x07, telegram: 08 00 07 00 03 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=DA) #data=13
(22:16:07.684) Boiler -> all, type 0x18, telegram: 08 00 18 00 05 02 47 00 00 80 00 40 40 01 BF 80 00 02 0A 00 00 0E 30 48 00 CB 00 00 00 (CRC=01) #data=25
<--- UBAMonitorFast(0x18)
(22:16:07.925) Boiler -> all, type 0x19, telegram: 08 00 19 00 80 00 02 72 80 00 00 00 00 00 00 E6 F3 04 89 52 00 00 00 03 85 2C 00 5C 9B 80 00 (CRC=80) #data=27
<--- UBAMonitorSlow(0x19)
(22:16:08.228) Boiler -> all, type 0x1C, telegram: 08 00 1C 00 92 07 01 0D 08 0D 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (CRC=A4) #data=25
(22:16:08.478) Boiler -> all, type 0x2A, telegram: 08 00 2A 00 00 00 00 00 00 00 00 00 B0 00 00 80 00 00 80 00 80 00 80 00 00 (CRC=BA) #data=21
(22:16:08.691) Boiler -> all, type 0x34, telegram: 08 00 34 00 3E 01 BF 80 00 21 00 00 01 00 01 04 26 00 8A 58 00 80 00 (CRC=46) #data=19
<--- UBAMonitorWWMessage(0x34)
(22:16:09.152) Sending raw: 0B 90 FF 00 02 01 67 00
(22:16:09.215) Thermostat -> me, type 0x0167, telegram: 10 0B FF 00 01 67 00 00 (CRC=59) #data=2
(22:16:11.115) Thermostat -> all, type 0x01A5, telegram: 10 00 FF 0D 01 A5 01 C0 00 7A (CRC=20) #data=4
<--- RCPLUSStatusMessage(0x1A5)
(22:16:17.316) Boiler -> all, type 0x34, telegram: 08 00 34 00 3E 01 BF 80 00 21 00 00 01 00 01 04 26 00 8A 58 00 80 00 (CRC=46) #data=19
<--- UBAMonitorWWMessage(0x34)
(22:16:17.543) Boiler -> all, type 0x18, telegram: 08 00 18 00 05 02 46 00 00 80 00 40 40 01 BF 80 00 02 0A 00 00 0E 30 48 00 CB 00 00 00 (CRC=DE) #data=25
<--- UBAMonitorFast(0x18)
(22:16:17.784) Boiler -> all, type 0x2A, telegram: 08 00 2A 00 00 00 00 00 00 00 00 00 B0 00 00 80 00 00 80 00 80 00 80 00 00 (CRC=BA) #data=21
send 0B 90 FF 01 02 01 67

(22:17:17.186) Boiler -> all, type 0x34, telegram: 08 00 34 00 3E 01 BB 80 00 21 00 00 01 00 01 04 26 00 8A 58 00 80 00 (CRC=3F) #data=19
<--- UBAMonitorWWMessage(0x34)
(22:17:17.421) Boiler -> all, type 0x18, telegram: 08 00 18 00 05 02 45 00 00 80 00 40 40 01 BB 80 00 02 06 00 00 0E 30 48 00 CB 00 00 00 (CRC=7C) #data=25
<--- UBAMonitorFast(0x18)
(22:17:17.719) Boiler -> all, type 0x2A, telegram: 08 00 2A 00 00 00 00 00 00 00 00 00 B0 00 00 80 00 00 80 00 80 00 80 00 00 (CRC=BA) #data=21
(22:17:18.251) Sending raw: 0B 90 FF 01 02 01 67 00
(22:17:18.314) Thermostat -> me, type 0x0167, telegram: 10 0B FF 01 01 67 00 (CRC=A8) #data=1
(22:17:24.837) Thermostat -> Boiler, type 0x1A, telegram: 10 08 1A 00 00 00 00 (CRC=C4) #data=3
(22:17:24.891) Thermostat -> all, type 0x0167, telegram: 10 00 FF 00 01 67 00 00 (CRC=AB) #data=2
(22:17:25.146) Thermostat -> all, type 0x01A5, telegram: 10 00 FF 00 01 A5 00 D6 21 26 00 00 26 27 01 BF 05 01 03 01 BF 00 7B 00 00 11 01 04 08 60 00 (CRC=23) #data=25
<--- RCPLUSStatusMessage(0x1A5)
(22:17:25.520) Thermostat -> all, type 0x01A5, telegram: 10 00 FF 19 01 A5 08 07 00 00 00 00 FF 00 4B 00 3C 01 FF 01 00 (CRC=F8) #data=15
<--- RCPLUSStatusMessage(0x1A5)
(22:17:25.737) Thermostat -> all, type 0x021D, telegram: 10 00 FF 00 02 1D 00 00 0A 07 (CRC=02) #data=4
log (22:17:27.081) Boiler -> all, type 0x2A, telegram: 08 00 2A 00 00 00 00 00 00 00 00 00 B0 00 00 80 00 00 80 00 80 00 80 00 00 (CRC=BA) #data=21
n(22:17:27.360) Boiler -> all, type 0x34, telegram: 08 00 34 00 3E 01 BB 80 00 21 00 00 01 00 01 04 26 00 8A 58 00 80 00 (CRC=3F) #data=19
<--- UBAMonitorWWMessage(0x34)
(22:17:27.587) Boiler -> all, type 0x18, telegram: 08 00 18 00 05 02 45 00 00 80 00 40 40 01 BB 80 00 02 06 00 00 0E 30 48 00 CB 00 00 00 (CRC=7C) #data=25

@proddy
Copy link
Collaborator

proddy commented Aug 19, 2019

ah, that doesn't give us much. @moustic999 you're the expert. any idea how to read values from EMS+ ?

@moustic999
Copy link

moustic999 commented Aug 20, 2019

Hey, sorry for the late answer, I'm in holiday

When you are in manual mode, here is the command to change the manual temperature :

48 10 FF 0A 01 B9 2B

Meaning :
48 - sender
10 - receiver (RC300)
FF - EMS+ extended mode
0A - offset
01 B9 - EMS+ Command
2B - temperature

I don't have direct access to my heater, but I'm pretty sure it is the right command ;-)

some explanatation regarding latest message :

Not sure about this because I don'h have all my docs with me.

(22:17:18.251) Sending raw: 0B 90 FF 01 02 01 67 00
You send the value 00 in offset 01 from command 0167.
This is a WRITE command. I don't know what this command does,

(22:17:18.314) Thermostat -> me, type 0x0167, telegram: 10 0B FF 01 01 67 00 (CRC=A8) #data=1
Thermostat answer to you with the new value applied in the offset !

(22:17:24.891) Thermostat -> all, type 0x0167, telegram: 10 00 FF 00 01 67 00 00 (CRC=AB) #data=2
Thermostat advise everybody with the new value of the command, but it send the whole command, not only the modified offset.

So you can be sure that command 0167 has only 2 Bytes of data. Never more.

@proddy
Copy link
Collaborator

proddy commented Aug 20, 2019

thanks LL for responding during your vacation. We know how to write to EMS+ based on your earlier tests and it works fine. What we're after are the calls to query the telegrams, i.e. send read commands to a specific telegram type, like 0x167 to fetch the current thermostat temperatures. Everything I've asked @kroon040 to try hasn't worked unfortunately.

With EMS 1.0 it was easy, you just added a MSB to the recipient (e.g. x10 becomes x90) and the payload is the amount of data to return. It seems EMS+ behaves differently. Any ideas?

@kroon040 thinking about this, what you could do is switch the RC3000 off and on when EMS-ESP is running and capture all the traffic between the boiler and thermostat. There must be some reads in there somewhere.

@moustic999
Copy link

Ok @proddy
here the command that would be used to read the command 0167
send 0B 90 FF 00 02 01 67
Meaning :
0B - sender
90 - receiver (RC300) (Read request)
FF - EMS+ extended mode
00 - offset
02 - data lenght to query
01 67 - EMS+ Command

Pay attention that in EMS+ Read commands ( 90 as dest) will also be WRITE commands if you set data after the EMS+ command !!!!
So any data after 0167 will be written in ...

@proddy
Copy link
Collaborator

proddy commented Aug 20, 2019

we tried that in #145 (comment) and the result was:
(22:16:09.215) Thermostat -> me, type 0x0167, telegram: 10 0B FF 00 01 67 00 00 (CRC=59) #data=2
perhaps we're just unlucky but all the data coming back looks like it's zero.

@moustic999
Copy link

as long as I remember, I always receive 00 00 also at home. I think this command is not used
what do you want to retrieve as temperature ? everything should be in 01A5 for HC1 up to 01A4 for HC4...

@proddy
Copy link
Collaborator

proddy commented Aug 20, 2019

ok - think we just got mixed up with all the random testing.
@kroon040 can you try send 0B 90 FF 00 19 01 A5 ? I see if you get a "Thermostat -> me" with data=25

@kroon040
Copy link
Author

Yep that works

send 0B 90 FF 00 19 01 A5
(01:46:10.023) Thermostat -> Boiler, type 0x1A, telegram: 10 08 1A 00 00 00 00 (CRC=C4) #data=3
(01:46:10.071) Thermostat -> all, type 0x0167, telegram: 10 00 FF 00 01 67 00 00 (CRC=AB) #data=2

(01:46:10.274) Thermostat -> all, type 0x021D, telegram: 10 00 FF 00 02 1D 00 00 0A 07 (CRC=02) #data=4
(01:46:11.750) Sending raw: 0B 90 FF 00 19 01 A5 00
(01:46:11.881) Thermostat -> me, type 0x01A5, telegram: 10 0B FF 00 01 A5 00 D3 21 22 00 00 22 27 00 EF 01 01 03 00 EF 01 4B 00 00 11 01 04 08 42 00 (CRC=ED) #data=25

@moustic999
Copy link

yep, it is the right one. Note also that 01A5 is sent cyclicly, but not for an heat pump it seems. only on gas/gasoil heater ( to be confirmed)

@moustic999
Copy link

HC1 -> 01A5
HC2 -> 01A6
HC3 -> 01A7
HC4 -> 01A8

@kroon040
Copy link
Author

kroon040 commented Aug 20, 2019 via email

@moustic999
Copy link

when you change the temp on the thermostat, you should see, in telnet, 01A5 from thermostat to all with new Value. But it send only offset bytes that are changed .

@moustic999
Copy link

to change the temp in the telnet, you must use th 01B9 command

01A5 is status message only.

@proddy
Copy link
Collaborator

proddy commented Aug 20, 2019

Thanks. Think I can finish the implementation now. We were testing with querying x167 when it should have been x1a5. Doh.

@proddy
Copy link
Collaborator

proddy commented Aug 20, 2019

If I change the temp : thermostat temp 18.0 and then sent send 0B 90 FF 00 19 01 A5 should it direct change in de telnet interface?

Yes @kroon040 , it should. Can you check if thermostat read 1a5 pulls the new temps?

@kroon040
Copy link
Author

kroon040 commented Aug 20, 2019

I did setting the temp and send 0B 90 FF 00 19 01 A5 (with 19.0 and 19.5)
And also send later with thermostat read 1a5. thermostat read , the value keeps the same?

thermostat temp 19.0

(04:37:23.398) Thermostat -> all, type 0x01B9, telegram: 10 00 FF 08 01 B9 26 (CRC=1A) #data=1
send 0B 90 FF 00 19 01 A5(04:37:27.902) Boiler -> all, type 0x18, telegram: 08 00 18 00 00 02 6B 8C 1C 8A 10 65 40 02 6B 80 00 02 3F 01 1B 0F 3D 48 00 C9 14 02 00 (CRC=B9) #data=25
<--- UBAMonitorFast(0x18)
(04:37:28.159) Boiler -> all, type 0x2A, telegram: 08 00 2A 00 00 00 00 02 00 00 00 00 B0 00 B0 80 00 00 80 00 80 00 80 00 00 (CRC=49) #data=21

(04:37:28.434) Boiler -> all, type 0x34, telegram: 08 00 34 00 3E 02 6B 80 00 29 00 00 01 14 01 04 4B 00 8A 78 00 80 00 (CRC=DB) #data=19
<--- UBAMonitorWWMessage(0x34)
(04:37:28.854) Boiler -> all, type 0x18, telegram: 08 00 18 00 00 02 6C 8C 1C 8A 10 65 40 02 6B 80 00 02 3F 01 1B 0F 3D 48 00 C9 14 02 00 (CRC=96) #data=25
<--- UBAMonitorFast(0x18)
(04:37:29.439) Sending raw: 0B 90 FF 00 19 01 A5 00
(04:37:29.577) Thermostat -> me, type 0x01A5, telegram: 10 0B FF 00 01 A5 00 D9 20 27 00 00 26 21 00 C3 03 03 01 00 C3 00 69 00 00 11 01 03 08 7A 00 (CRC=FA) #data=25
<--- RCPLUSStatusMessage(0x1A5)

thermostat temp 19.5

(04:41:07.945) Sending write of type 0x1B9 to 0x10:telegram: 0B 10 FF 08 01 B9 27 (CRC=BF) #data=48
(04:41:08.070) Boiler -> all, type 0x07, telegram: 08 00 07 00 0B 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=F6) #data=13
(04:41:08.379) Thermostat -> all, type 0xBF, telegram: 10 00 BF 00 10 9E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (CRC=71) #data=24
(04:41:08.614) Boiler -> all, type 0x18, telegram: 08 00 18 00 00 02 53 8C 23 8A 10 65 40 02 5A 80 00 02 30 01 21 0F 3D 48 00 C9 14 02 00 (CRC=8C) #data=25
<--- UBAMonitorFast(0x18)
(04:41:09.217) Boiler -> all, type 0x07, telegram: 08 00 07 00 03 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=DA) #data=13
(04:41:10.175) Boiler -> all, type 0x18, telegram: 08 00 18 00 00 02 59 8C 1E 8A 10 65 40 02 57 80 00 02 2D 01 14 0F 3D 48 00 C9 14 02 00 (CRC=08) #data=25
<--- UBAMonitorFast(0x18)
(04:41:11.020) Thermostat -> all, type 0x06, telegram: 10 00 06 00 13 08 13 14 13 13 01 01 10 FF 00 (CRC=46) #data=11
<--- RCTime(0x06)
(04:41:11.219) Thermostat -> all, type 0x01B9, telegram: 10 00 FF 08 01 B9 27 (CRC=1B) #data=1
<--- RCPLUSSetMessage(0x1B9)
Publishing boiler data via MQTT
Publishing hot water and heating states via MQTT
Publishing thermostat data via MQTT
(04:41:14.205) Boiler -> all, type 0x18, telegram: 08 00 18 00 00 02 62 8C 1C 8A 10 65 40 02 5C 80 00 02 33 01 17 0F 3D 48 00 C9 14 02 00 (CRC=0F) #data=25
<--- UBAMonitorFast(0x18)
(04:41:14.500) Thermostat -> all, type 0x01A5, telegram: 10 00 FF 03 01 A5 27 (CRC=7B) #data=1
<--- RCPLUSStatusMessage(0x1A5)
send 0B 90 FF 00 19 01 A5
(04:41:17.039) Sending raw: 0B 90 FF 00 19 01 A5 00
(04:41:17.175) Thermostat -> me, type 0x01A5, telegram: 10 0B FF 00 01 A5 00 D9 20 27 00 00 27 21 00 BF 03 03 01 00 BF 00 6D 00 00 11 01 03 08 79 00 (CRC=24) #data=25

thermostat temp 19.0 (erna met read 1A5)

(04:44:59.467) Thermostat -> all, type 0x01B9, telegram: 10 00 FF 08 01 B9 26 (CRC=1A) #data=1
<--- RCPLUSSetMessage(0x1B9)
Publishing boiler data via MQTT
(04:45:00.116) Boiler -> all, type 0x07, telegram: 08 00 07 00 03 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=DA) #data=13
Requesting scheduled EMS device data
Requesting type RCPLUSStatusMessage(0x1A5) from dest 0x10
Requesting type RCTime(0x06) from dest 0x10
Requesting type UBAMonitorFast(0x18) from dest 0x08
Requesting type UBAMonitorSlow(0x19) from dest 0x08
Requesting type UBAParameterWW(0x33) from dest 0x08
Requesting type UBAParametersMessage(0x16) from dest 0x08
Requesting type UBATotalUptimeMessage(0x14) from dest 0x08
thermostat read 1a5(04:45:01.390) Thermostat -> all, type 0x01A5, telegram: 10 00 FF 0A 01 A5 03 (CRC=17) #data=1
<--- RCPLUSStatusMessage(0x1A5)

Requesting type RCPLUSStatusMessage(0x1A5) from dest 0x10
(04:45:02.263) Thermostat -> all, type 0x01A5, telegram: 10 00 FF 06 01 A5 26 (CRC=52) #data=1
<--- RCPLUSStatusMessage(0x1A5)
(04:45:02.447) Sending read of type 0x1A5 to 0x10:telegram: 0B 90 FF 00 01 A5 20 (CRC=49) #data=48
(04:45:02.509) Thermostat -> me, telegram: 10 0B FF 00 A5 20 (CRC=46)

thermostat temp 19.5
Setting new thermostat temperature
(00:15:29.028) Boiler -> all, type 0x18, telegram: 08 00 18 00 05 02 42 00 00 80 00 40 40 01 EA 80 00 02 26 00 00 0E 30 48 00 CB 00 00 00 (CRC=ED) #data=25
<--- UBAMonitorFast(0x18)
(00:15:29.278) Boiler -> all, type 0x2A, telegram: 08 00 2A 00 00 00 00 00 00 00 00 00 B0 00 00 80 00 00 80 00 80 00 80 00 00 (CRC=BA) #data=21
(00:15:29.492) Boiler -> all, type 0x34, telegram: 08 00 34 00 3E 01 EA 80 00 21 00 00 01 00 01 04 53 00 8A 86 00 80 00 (CRC=9F) #data=19
<--- UBAMonitorWWMessage(0x34)
(00:15:30.632) Sending write of type 0x1B9 to 0x10:telegram: 0B 10 FF 08 01 B9 27 (CRC=BF) #data=48
(00:15:30.743) Boiler -> all, type 0x07, telegram: 08 00 07 00 0B 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=F6) #data=13
(00:15:31.398) Boiler -> all, type 0x07, telegram: 08 00 07 00 03 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=DA) #data=13
(00:15:33.472) Thermostat -> all, type 0x01A5, telegram: 10 00 FF 03 01 A5 27 (CRC=7B) #data=1
<--- RCPLUSStatusMessage(0x1A5)
(00:15:33.829) Thermostat -> all, type 0x01B9, telegram: 10 00 FF 08 01 B9 27 (CRC=1B) #data=1
<--- RCPLUSSetMessage(0x1B9)
Publishing boiler data via MQTT
Publishing thermostat data via MQTT
thermostat read 1a5
Requesting type RCPLUSStatusMessage(0x1A5) from dest 0x10
(00:15:38.600) Sending read of type 0x1A5 to 0x10:telegram: 0B 90 FF 00 01 A5 20 (CRC=49) #data=48
lo(00:15:38.648) Thermostat -> me, telegram: 10 0B FF 00 A5 20 (CRC=46)

@moustic999
Copy link

latest log is fine
Sending write of type 0x1B9 to 0x10:telegram: 0B 10 FF 08 01 B9 27 (CRC=BF) #data=48
you send the write, then
(00:15:33.472) Thermostat -> all, type 0x01A5, telegram: 10 00 FF 03 01 A5 27 (CRC=7B) #data=1 <--- RCPLUSStatusMessage(0x1A5)
Thermostat answer with the 01A5 with the new value

then, it broadcast the order to everybody
(00:15:33.829) Thermostat -> all, type 0x01B9, telegram: 10 00 FF 08 01 B9 27 (CRC=1B) #data=1 <--- RCPLUSSetMessage(0x1B9)

@proddy
Copy link
Collaborator

proddy commented Aug 20, 2019

ok, I think I finally understand it now. With EMS+ reading and writing is different. It's exactly what @moustic999 was telling me all along but my poor brain needed to catch up.

So reading 2 bytes of data from 0x1A5 its: send 0B 90 FF 00 02 01 A5
Meaning:
0B - sender
90 - receiver (RC300) (Read request)
FF - EMS+ extended mode
00 - offset
02 - data length to query
01 A5 - EMS+ Command/Type

And writing a value of 0x77 to type 0x1A5 its: send 0B 10 FF 08 01 A5 77
Meaning:
0B - sender
10 - receiver (RC300) (Write request)
FF - EMS+ extended mode
08 - offset
01 A5 - EMS+ Command/Type
77 - the value to write

Write has a byte less. So I need to change the code and adjust the telegram depending on the action (Read or Write).

Almost there @kroon040 !

@moustic999
Copy link

yes almost there ,
just 1 point more : 01A5 command is Read only, it can be queried but not written.
Write to 01A5 makes nothing.

the Write command for heating is 01B9.

That's for HC1, some others command are Read/write.

@proddy
Copy link
Collaborator

proddy commented Aug 20, 2019

yes almost there ,
just 1 point more : 01A5 command is Read only, it can be queried but not written.
Write to 01A5 makes nothing.

yes, I'm aware. I was just an example to show how the telegram format differs between Read and Write, which is unlike EMS 1.0

@moustic999
Copy link

yes that's what I told you, Lot of changes are needed to support ems+

proddy added a commit that referenced this issue Aug 20, 2019
@proddy
Copy link
Collaborator

proddy commented Aug 20, 2019

@kroon040 made a new build for you to try. You can get it here. Please try

'thermostat read 1a5' and see if it brings the correct temperatures back

then wait a few seconds and try thermostat temp 19 and see if the temperature is set correctly on the actual Thermostat unit and also displayed correctly in Telnet. fingers crossed!

@kroon040
Copy link
Author

kroon040 commented Aug 21, 2019

The thermostat unit change immediatly. The telnet interface not yet, after a thermostat read 1a5, waited 10sec, abot a minute the telnet interface change also

thermostat temp 17.0
(00:15:19.965) Boiler -> all, type 0x34, telegram: 08 00 34 00 3E 01 AF 80 00 21 00 00 01 00 01 04 6F 00 8A 8C 00 80 00 (CRC=B6) #data=19
<--- UBAMonitorWWMessage(0x34)
(00:15:20.194) Boiler -> all, type 0x18, telegram: 08 00 18 00 05 02 45 00 00 80 00 40 40 01 AF 80 00 01 FB 00 00 0E 30 48 00 CB 00 00 00 (CRC=28) #data=25
<--- UBAMonitorFast(0x18)
1(00:15:20.512) Boiler -> all, type 0x2A, telegram: 08 00 2A 00 00 00 00 00 00 00 00 00 B0 00 00 80 00 00 80 00 80 00 80 00 00 (CRC=BA) #data=2
Setting new thermostat temperature
(00:15:24.247) Sending write of type 0x1B9 to 0x10, telegram: 0B 10 FF 08 01 B9 22 (CRC=BA)
(00:15:24.326) Boiler -> all, type 0x07, telegram: 08 00 07 00 0B 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=F6) #data=13
(00:15:24.595) Sending validate of type 0x1B9 to 0x10, telegram: 0B 90 FF 08 01 01 B9 (CRC=C1)
Write to 0x10 was successful
(00:15:25.466) Boiler -> all, type 0x07, telegram: 08 00 07 00 03 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=DA) #data=13
(00:15:25.846) Thermostat -> all, type 0x01A5, telegram: 10 00 FF 0A 01 A5 01 (CRC=15) #data=1
<--- RCPLUSStatusMessage(0x1A5)
(00:15:26.543) Thermostat -> all, type 0x01A5, telegram: 10 00 FF 06 01 A5 22 (CRC=56) #data=1
<--- RCPLUSStatusMessage(0x1A5)
(00:15:27.100) Thermostat -> all, type 0x01B9, telegram: 10 00 FF 08 01 B9 22 (CRC=1E) #data=1
<--- RCPLUSSetMessage(0x1B9)
Publishing boiler data via MQTT
Publishing thermostat data via MQTT
(00:15:27.818) Thermostat -> Boiler, type 0x1A, telegram: 10 08 1A 00 00 00 00 (CRC=C4) #data=3
(00:15:27.873) Thermostat -> all, type 0x0167, telegram: 10 00 FF 00 01 67 00 00 (CRC=AB) #data=2
(00:15:28.127) Thermostat -> all, type 0x01A5, telegram: 10 00 FF 00 01 A5 00 D0 21 24 00 00 22 27 01 FD 01 01 03 01 FD 00 3D 00 00 11 01 04 08 21 00 (CRC=49) #data=25
<--- RCPLUSStatusMessage(0x1A5)
(00:15:28.453) Thermostat -> all, type 0x01A5, telegram: 10 00 FF 19 01 A5 08 07 00 00 00 00 FF 00 4B 00 3C 01 FF 01 00 (CRC=F8) #data=15
<--- RCPLUSStatusMessage(0x1A5)
(00:15:28.668) Thermostat -> all, type 0x021D, telegram: 10 00 FF 00 02 1D 00 00 0A 07 (CRC=02) #data=4
(00:15:29.946) Boiler -> all, type 0x18, telegram: 08 00 18 00 05 02 44 00 00 80 00 40 40 01 AF 80 00 01 FB 00 00 0E 30 48 00 CB 00 00 00 (CRC=F7) #data=25
<--- UBAMonitorFast(0x18)
(00:15:30.188) Boiler -> all, type 0x2A, telegram: 08 00 2A 00 00 00 00 00 00 00 00 00 B0 00 00 80 00 00 80 00 80 00 80 00 00 (CRC=BA) #data=21
(00:15:30.395) Boiler -> all, type 0x34, telegram: 08 00 34 00 3E 01 AF 80 00 21 00 00 01 00 01 04 6F 00 8A 8C 00 80 00 (CRC=B6) #data=19
<--- UBAMonitorWWMessage(0x34)
thermost(00:15:33.771) Thermostat -> all, type 0x06, telegram: 10 00 06 00 13 08 09 15 01 2B 02 01 10 FF 00 (CRC=2E) #data=11
<--- RCTime(0x06)
at read 1a5
Requesting type RCPLUSStatusMessage(0x1A5) from dest 0x10
(00:15:39.042) Sending read of type 0x1A5 to 0x10, telegram: 0B 90 FF 00 20 01 A5 (CRC=19)
(00:15:39.177) Thermostat -> me, type 0x01A5, telegram: 10 0B FF 00 01 A5 00 D0 21 24 00 00 22 27 01 FD 01 01 03 01 FD 00 3D 00 00 11 01 04 08 21 00 (CRC=B7) #data=25
<--- RCPLUSStatusMessage(0x1A5)
(00:15:39.218) Boiler -> all, type 0x07, telegram: 08 00 07 00 0B 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=F6) #data=13
(00:15:39.883) Boiler -> all, type 0x07, telegram: 08 00 07 00 03 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=DA) #data=13
(00:15:40.157) Boiler -> all, type 0x18, telegram: 08 00 18 00 05 02 44 00 00 80 00 40 40 01 AE 80 00 01 FB 00 00 0E 30 48 00 CB 00 00 00 (CRC=E1) #data=25
<--- UBAMonitorFast(0x18)
(00:15:40.399) Boiler -> all, type 0x19, telegram: 08 00 19 00 80 00 02 71 80 00 00 00 00 00 00 E7 27 04 89 9B 00 00 00 03 85 2C 00 5C 9B 80 00 (CRC=74) #data=27
<--- UBAMonitorSlow(0x19)
(00:15:40.728) Boiler -> all, type 0x1C, telegram: 08 00 1C 00 92 07 01 0D 08 0D 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (CRC=A4) #data=25
(00:15:40.994) Boiler -> all, type 0x2A, telegram: 08 00 2A 00 00 00 00 00 00 00 00 00 B0 00 00 80 00 00 80 00 80 00 80 00 00 (CRC=BA) #data=21
(00:15:41.240) Boiler -> all, type 0x34, telegram: 08 00 34 00 3E 01 AF 80 00 21 00 00 01 00 01 04 6F 00 8A 8C 00 80 00 (CRC=B6) #data=19
<--- UBAMonitorWWMessage(0x34)


info


Thermostat stats:
  Thermostat: RC300/RC310/Nefit Moduline 3000 (ProductID:158 Version:11.10)
  Setpoint room temperature: 18.0 C
  Current room temperature: 20.8 C
  Thermostat time is 09:01:43 21/8/2019
  Mode is set to auto

@kroon040
Copy link
Author

1.9.0b7, supported for writing temp and mode works.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants