Unable to set setpoint temperature without decimal for Everspring AC301
See original GitHub issueDescribe the bug
I’m trying to set the temperature for my Everspring AC301 but it only works when doing numbers with a decimal, for example 22.5 works but not 22, 22.1 works, etc.
Device information
Which device(s) is/are affected (make/model)? Everspring AC301 What are the node IDs? 8
Last Known Working Configuration
- New device
Installation information
How did you install node-zwave-js
?
- Pkg
Additional context I remembered that I saw something about Heatit TRM3 a while ago (link here) where they said that if the precision is wrong, the temperature will not be set.
So… I went into core/values/primitive.js and had a look. Found encodeFloatWithScale() and I tried to see what the precision returned for 21 and 21.5. For 21, it was 0 (which converted the value to “21”) and for 21.5 it was 1 (which converted the value to “215”). Then I hard-coded the precision to 1 in encodeFloatWithScale(), restarted zwave-js and BANG. It worked like a charm.
I don’t know where the real issue is though, if there is different interpretations of the zwave standard or a bug in zwave-js.
Logfile:
Included a few different logfiles:
set_21_celsius.txt set_22_celsius.txt set_22.1_celsius.txt set_23.5_celsius.txt
This is the logfile for when I changed the precision to 1: set_22_celsius_precision_1.txt
Issue Analytics
- State:
- Created 3 years ago
- Comments:22 (18 by maintainers)
Top GitHub Comments
@AlCalzone both 22 and 23,5 works 😉
I have now tried both devices and they are working properly, it is possible to change the setpoint on them.