Open droscy opened 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.
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.
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.
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.
@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.
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.
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.
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.
These are the log messages when the boiler is idle
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.