emsesp / EMS-ESP

ESP8266 firmware to read and control EMS and Heatronic compatible equipment such as boilers, thermostats, solar modules, and heat pumps
https://emsesp.github.io/docs
GNU Lesser General Public License v3.0
306 stars 97 forks source link

Gather EMS Ids & Versions #18

Closed sysrun closed 5 years ago

sysrun commented 5 years ago

I am trying to implement my RC35 (Buderus) controller i found out that the current implementation is not able to gather the thermostat information correctly as my RC35 is using HK1 for heating. So currently for the code is not able to distinguish between RC30 & RC35 as both use the id 0x10

I'd like to gather some more informations about the different setups.

I issued the following commands to get some more infos:

BC10: r 0b 88 02 00 08 -> Product ID 123. Version 04.05

Original RC35: r 0b 90 02 00 08 -> Product ID 86. Version 01.15

Maybe we can compile a list of Product IDs & Versions somehow

proddy commented 5 years ago

Awesome! I was waiting for this. How are your programming skills? I can do the first version and push it my dev branch.

On Wed, 26 Dec 2018 at 19:10, sysrun notifications@github.com wrote:

I am trying to implement my RC35 (Buderus) controller i found out that the current implementation is not able to gather the thermostat information correctly as mu RC35 is using HK1 for heating.

I'd like to gather some more informations about the different setups.

I issued the following commands to get some more infos:

BC10: r 0b 88 02 00 08 -> Product ID 123. Version 04.05

Original RC35: r 0b 90 02 00 08 -> Product ID 86. Version 01.15

Maybe we can compile a list of Product IDs & Versions somehow

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/proddy/EMS-ESP-Boiler/issues/18, or mute the thread https://github.com/notifications/unsubscribe-auth/ABLHeJGx-C1zf-UgZspVvSwXexC-zu7Sks5u87uJgaJpZM4Zh-U7 .

sysrun commented 5 years ago

Well, skills are quite good - i can understand 90% of the C code ;) Binary ops etc are no problem. So extending existing code is not really a problem (adding new ems telegrams etc.)

SpaceTeddy commented 5 years ago

dear sysrun, my Sieger BK15 with es73 (RC30 like) controller: Sending raw telegram: 0B 88 02 00 08 (CRC=94, #data=1) (01:19:52) Corrupt telegram: telegram: 00 08 (CRC=94) (01:19:52) Boiler -> me, type 0x02 telegram: 08 0B 02 00 40 03 06 00 00 00 00 00 (CRC=DE, #data=8) (01:19:52) <--- Version(0x02) received (01:19:52) Product ID 64. Version 03.06

(01:20:27) Sending raw telegram: 0B 90 02 00 08 (CRC=54, #data=1) (01:20:27) Corrupt telegram: telegram: 00 08 (CRC=54) (01:20:27) Thermostat -> me, type 0x02 telegram: 10 0B 02 00 4C 02 08 (CRC=18, #data=3) (01:20:27) <--- Version(0x02) received (01:20:27) Product ID 76. Version 02.08

proddy commented 5 years ago

I'm working on some new code that auto detects the EMS devices. I've included the Sieger BK15 and ES73 but will need your help to fine tune the code. I'm testing now and hope to push to GitHub this weekend.

On Fri, Dec 28, 2018 at 11:15 PM SpaceTeddy notifications@github.com wrote:

dear sysrun, my Sieger BK15 with es73 (RC30 like) controller: Sending raw telegram: 0B 88 02 00 08 (CRC=94, #data=1) (01:19:52) Corrupt telegram: telegram: 00 08 (CRC=94) (01:19:52) Boiler -> me, type 0x02 telegram: 08 0B 02 00 40 03 06 00 00 00 00 00 (CRC=DE, #data=8) (01:19:52) <--- Version(0x02) received (01:19:52) Product ID 64. Version 03.06

(01:20:27) Sending raw telegram: 0B 90 02 00 08 (CRC=54, #data=1) (01:20:27) Corrupt telegram: telegram: 00 08 (CRC=54) (01:20:27) Thermostat -> me, type 0x02 telegram: 10 0B 02 00 4C 02 08 (CRC=18, #data=3) (01:20:27) <--- Version(0x02) received (01:20:27) Product ID 76. Version 02.08

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/proddy/EMS-ESP-Boiler/issues/18#issuecomment-450435904, or mute the thread https://github.com/notifications/unsubscribe-auth/ABLHeBP7AwBccPwSdBovScIFyPGa-IFtks5u9pfzgaJpZM4Zh-U7 .

SpaceTeddy commented 5 years ago

yes for sure, I can test it.

sysrun commented 5 years ago

Just tried the 1.2.2 - works for me :) Awesome! Found a Boiler compatible device, model MC10/UBA3 Boiler with TypeID 0x08, Product ID 123, Version 04.05 Found a Thermostat. Model RC35 with TypeID 0x10, Product ID 86, Version 01.15

One thing: I don't have any room sensor/thermostat (RC35 is build into the heater). Current room temperature: 3200.0 C

proddy commented 5 years ago

can you do a 't 3e' which will fetch the status message telegram from built-in thermostat, and post the results back. The room temperature should be byte 3 and 4 of the data package. If there is no sensor it should be 0x80 and 0x00.

sysrun commented 5 years ago

Requesting type RC35StatusMessage(0x3E) from dest 0x10 (09:52:35) Sending read of type 0x3E to 0x10: telegram: 0B 90 3E 00 63 (CRC=CF), #data=1 (09:52:35) Thermostat -> me, type 0x3E telegram: 10 0B 3E 00 80 02 28 7D 00 00 00 00 00 00 00 00 64 11 3A 00 (CRC=4E), #data=16

According to EMS-Wiki its byte 8 & 9 (16Bit) and 0x7d00 is stands for "HK1 Disabled" - which is not true....

https://emswiki.thefischer.net/doku.php?id=wiki:ems:telegramme

proddy commented 5 years ago

Ok, think I fixed this in my latest 1.2.3

sysrun commented 5 years ago

Looks good now (Current room temperature: ? C)

SpaceTeddy commented 5 years ago

- RFM20 -> ID = 0x09 -> raw telegram: 08 89 02 00 63 (CRC=C7), #data=1 -> 0x09 -> me, type 0x02 telegram: 09 0B 02 00 44 02 03 (CRC=25), #data=3 -> Unrecognized device found. Product ID 68, Version 02.03

- RC20RF -> ID = 0x18 -> raw telegram: 0B 98 02 00 63 (CRC=7F), #data=1 -> 0x18 -> me, type 0x02 telegram: 18 0B 02 00 5D 02 00 5E 02 01 (CRC=7F), #data=6 -> Unrecognized device found. Product ID 93, Version 02.00

proddy commented 5 years ago

thanks @SpaceTeddy. These will be included in the next build.

Bonusbartus commented 5 years ago

The autodetect is not working for me either, since the last update (comming from 1.2.0) I cannot get any boiler information. I am using a Nefit Topline Compact HRC30 CW5 with a moduline 300 thermostat. In the old versions, all data seemed to work perfectly. the discovered deviceIDs are: 0x08: Unrecognized device found. Product ID 115, Version 03.06 0x09: Unrecognized device found. Product ID 114, Version 01.03

proddy commented 5 years ago

That's because these devices haven't been added to the list. You'll need to manually add to ems_devices.h

For now to get it working, hard code these in my_devices.h like

define MY_BOILER_MODELID EMS_MODEL_UBA

define MY_THERMOSTAT_MODELID EMS_MODEL_RC20

proddy commented 5 years ago

@Bonusbartus I've added these to version 1.3.2

lobocobra commented 5 years ago

Luckily I have no boiler attached, because the water would be quite cold :-) => Warm Water current temperature: -3200.0 C

Not a real isse for me, but maybe it makes sense to eliminate values <0° and higher as 110°?

proddy commented 5 years ago

Good idea. But can you create a new github bug for this request and I’ll make the change. Thanks

proddy commented 5 years ago

@lobocobra for the minus -3200C warm water temperature problem could do a log v boiler read 34 and post back the telegram. The code should be able to detect n/a values.

lobocobra commented 5 years ago

Thanks! with your latest fix the 3200C warm water temperature problem is solved.