olegtarasov / esphome-opentherm

Create your own smart modulating thermostat using the OpenTherm component for ESPHome
BSD 2-Clause "Simplified" License
27 stars 4 forks source link

Curious values from Fan Speed sensor #12

Open droscy opened 1 day ago

droscy commented 1 day ago

Hello olegtarasov, first of all I would thank you for the great work you are doing in having this component merged in esphome, really appreciated!

I have curious values from Fan Speed sensor, il reports 16896 rpm when the boiler is idle and it decreses when the boiler is running.

immagine

These are the log messages when the boiler is idle

[06:51:52][D][opentherm:299]: Sending request with id 35 (FAN_SPEED)
[06:51:52][D][opentherm:300]: 00000000 00100011 00000000 00000000
type: READ_DATA; id: 35; HB: 0; LB: 0; uint_16: 0; float: 0.000000
[06:51:52][D][opentherm:129]: Received OpenTherm response with id 35 (FAN_SPEED)
[06:51:52][D][opentherm:130]: 00000100 00100011 01000010 00000000
type: READ_ACK; id: 35; HB: 66; LB: 0; uint_16: 16896; float: 66.000000
[06:51:52][D][sensor:094]: 'Fan Speed': Sending state 16896.00000 RPM with 0 decimals of accuracy

I will add log messages during boiler run later (I'm collecting them right now).

I don't know if I can simply filter the values computing 16896 - ${value}.

I will read throught the boiler manual searching for a way to have the fan speed displayed by the boiler monitor itself, so I can compare those values to values reported by esphome. I'll keep you updated.

olegtarasov commented 1 day ago

Hi @droscy! I couldn't find proper documentation for message id 35, so it's possible it was implemented incorrectly in the original library. Some xls document that is circulating on the internet says id 35 is „Boiler fan speed setpoint and actual value”, so that already suggests that this value shouldn't be interpreted as a single unsigned int like it does now. Can you post more logs for message id 35 when the boiler is active? I suspect that actual RPM value is reported only in the high byte.

droscy commented 1 day ago

These are the logs during DHW active

[07:18:12][D][opentherm:299]: Sending request with id 35 (FAN_SPEED)
[07:18:12][D][opentherm:300]: 00000000 00100011 00000000 00000000
type: READ_DATA; id: 35; HB: 0; LB: 0; uint_16: 0; float: 0.000000
[07:18:12][D][opentherm:129]: Received OpenTherm response with id 35 (FAN_SPEED)
[07:18:12][D][opentherm:130]: 00000100 00100011 00011100 00011100
type: READ_ACK; id: 35; HB: 28; LB: 28; uint_16: 7196; float: 28.109375
[07:18:12][D][sensor:094]: 'Fan Speed': Sending state 7196.00000 RPM with 0 decimals of accuracy

The display in the boiler was reporting 1800 rpm approximately for the same time.

Here https://pastebin.com/GUxyn7Tc you can find the whole FAN_SPEED log, since DHW activation at 07:16:17 to DHW switch off at 07:19:06.

I'll try to grab more comparisons between logs and display.

droscy commented 1 day ago

The xls you found can be valid: my logs may suggest that HB is the target value and LB is the actual value, during boiler active, because every time HB changes, LB tries to "reach" HB.

FreeBear-nc commented 1 day ago

I have interpreted ID35 as being a u16 value, and when divided by 60, gives the true speed in RPM. Have asked the OpenTherm Association for a copy of the latest specification (it is shown as a download on their web site), but am waiting for a response.

olegtarasov commented 19 hours ago

@FreeBear-nc, thanks! Is 60 a value that you inferred, or is it documented somewhere? It doesn't seem to be valid for @droscy since his reported value is decreasing when the fan spins faster.

FreeBear-nc commented 14 hours ago

I had come across a description of ID84 & ID85 where it claimed true RPM=value/60 and made the assumption that ID35 would be the same. When I first started using hor Melnyk's library (with extensions) with my boiler, I was getting some pretty wild numbers when reading ID35 and assumed a divisor of 60. However, popping the cover off my boiler and looking at the label on the fan, it states maximum speed is 14200RPM :open_mouth: Looking at the specs for the ebmpapst gas blowers, they all seem to have a top speed of 6000 to 14000 RPM.

It could be that the response @droscy is getting should be interpreted as ID35:LB * 60 - If we knew the make & model of the boiler and the fan, it might be possible to make an educated guess as to how to interpret the data. If it turns out some boilers are returning a u16 value and others, a u8, it is going to get confusing.

droscy commented 12 hours ago

My boiler is Alhena Tech 24 C (0T4B2AWD) by Lamborghini Caloreclima. I don't know the maker/model of the fan, I'll ask my installer.