-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[homematic] Slightly incorrect values for dimmers and other datapoints #6688
Comments
The value differences look like rounding errors and maybe a different understanding of the dimmer values between openHAB and the CCU.
As far as I know, temperatures in openHAB generally have 2 decimals. But you can limit it to one in the label definition, e.g.
|
The ActualTemperature of a thermostat is Number Dimensionless in PaperUI. |
That's what I expected. This means it is the same problem as #6102 |
Thanks, so I can solve the ActualTemperature problem by recreating the thing, as it seems. I will probably do that, although I only have that problem in PaperUI, not in Habpanel. Any chance on solving the rounding problem for dimmers? |
Recreating the thing won't help yet, as the problem is not solved in the current version. I will try to upload a test version with a solution this afternoon. Will also have a look at the dimmer. Fortunately I have the device here, but only used it as switch. But I can test the behaviour with it. |
Cool, thanks. One more thing that I had mentioned in the older bug report and first thought, it is fixed in 2.5.0, but it is not: |
This appears to be a bug in the RPC interface of the Homematic CCU. Affected are not only the Dimmer Transmitter and Virtual Receiver channels, but also the channels for the "Week Programs". I tested a workaround (code see below) where I correct the max value to 1.0 for ".*LEVEL" data points on "DIMMER_.*" channels and with my HmIP-BDT dimmer this works fine. As it took me half a week to get at least the VSCode development setup running (I tried Eclipse to no avail) it will for sure take another few days until I figure out how to submit the updated code. If someone more experienced wants to submit a pull request sooner, please feel free to do so. I have inserted the following line in GetParamsetDescriptionParser.java in line 59ff (after
Note: I've opted for checking against an int value to avoid any surprises here even though it appears to work when comparing against 1.01. |
@36grad I have a running Eclipse Development Environment and can create a PR. But I am not sure whether this solves all problems. According to the first post in this issue, the values are generally different. Maybe some sort of rounding issue. |
My first step was to look into the suspected rounding issue in PercentTypeConverter.java as mentioned in eclipse-archived/smarthome#6841 (comment) and from there it became quite quickly clear that the issue is caused by the I can speak only for the HmIP-BDT (Unterputz Dimmer) since I don't own any Roller Shutters. Edit:
I did not read this properly the first time but had first assumed that the Also, in the Homematic CCU it shows both for the actual brightness as well as the virtual channel level the value 101%. Maybe the CCU behavior has been changed in the recent past? |
I'm not sure if it is the exact same error, but it sounds very similar. |
When I send 100 to my HmIP dimmer then it goes to the previous value. So, when I send 50 then 0 then 100, it is at 50 again. I have to send 99 to get 100% in the CCU3 UI. |
@sidamos can you confirm this behavior by using a different last value, say 10% or 90%? I'm running piVCCU version: 3.49.17-35 on a Rasberry Pi 4, which version do you have? |
@36grad I have a CCU3 with 3.47.15 and you are right. I tested this with my HmIP-PDT: |
Hi, |
@c--r I checked that and for me the percentage rounding was definitely not the issue. For the Homematic IP Dimmer (HmIP-BDT) the problem is caused by the maximum dimmer value 101 reported by the RPC interface which, however, is not properly processed if actually set. |
There are two problems at the same time: the first problem is that the HM reports a max value of 1.01 which is not correct (BTW: the older non HMIP dimmers have a max value of 1.0). But there is an additional rounding issue. Even if you use a max value of 1.0 some values will have one decimal. |
I think, I have fixed this problem. I have uploaded a test jar with description how to install it here: https://github.com/MHerbst/openhab-addons-test |
…openhab#8242) * Set bridge state to offline for duty cycle = -1 * Use correct type Contact for state channel of tilt sensor * Support type Int64 for messages from Homegear * Correct support of UP/DOWN for rollershutter devices - Important: UP command must send 1.0 to the device instead of the maximum value returned by Homematic which is 1.01 and does not work. * Correct max data point value of certain HmIP devices - Some data points of HmIP are returning 1.01d as max value instead of the correct value of 1.0. * HM channel "Blind Transmitter" also indicates a rollershutter * Reduced log level for certain datapoints to avoid flooding the logs - HmIP devices introduced new channel configuration datapoints that can't currently be detected automatically, but the CCU sometimes sends events and the logs were flooded with warnings. * CuxD interface apparently does not support the rssiInfo method * equals method call not necessary because of enum usage * HM method does not return any data if HmIP only is used Fixes openhab#6360 Fixes openhab#6145 Fixes openhab#5042 Fixes openhab#5674 Fixes openhab#8081 Fixes openhab#6688 Fixes openhab#5048 Fixes openhab#6743 Fixes openhab#5062 Signed-off-by: Martin Herbst <[email protected]>
…openhab#8242) * Set bridge state to offline for duty cycle = -1 * Use correct type Contact for state channel of tilt sensor * Support type Int64 for messages from Homegear * Correct support of UP/DOWN for rollershutter devices - Important: UP command must send 1.0 to the device instead of the maximum value returned by Homematic which is 1.01 and does not work. * Correct max data point value of certain HmIP devices - Some data points of HmIP are returning 1.01d as max value instead of the correct value of 1.0. * HM channel "Blind Transmitter" also indicates a rollershutter * Reduced log level for certain datapoints to avoid flooding the logs - HmIP devices introduced new channel configuration datapoints that can't currently be detected automatically, but the CCU sometimes sends events and the logs were flooded with warnings. * CuxD interface apparently does not support the rssiInfo method * equals method call not necessary because of enum usage * HM method does not return any data if HmIP only is used Fixes openhab#6360 Fixes openhab#6145 Fixes openhab#5042 Fixes openhab#5674 Fixes openhab#8081 Fixes openhab#6688 Fixes openhab#5048 Fixes openhab#6743 Fixes openhab#5062 Signed-off-by: Martin Herbst <[email protected]>
…openhab#8242) * Set bridge state to offline for duty cycle = -1 * Use correct type Contact for state channel of tilt sensor * Support type Int64 for messages from Homegear * Correct support of UP/DOWN for rollershutter devices - Important: UP command must send 1.0 to the device instead of the maximum value returned by Homematic which is 1.01 and does not work. * Correct max data point value of certain HmIP devices - Some data points of HmIP are returning 1.01d as max value instead of the correct value of 1.0. * HM channel "Blind Transmitter" also indicates a rollershutter * Reduced log level for certain datapoints to avoid flooding the logs - HmIP devices introduced new channel configuration datapoints that can't currently be detected automatically, but the CCU sometimes sends events and the logs were flooded with warnings. * CuxD interface apparently does not support the rssiInfo method * equals method call not necessary because of enum usage * HM method does not return any data if HmIP only is used Fixes openhab#6360 Fixes openhab#6145 Fixes openhab#5042 Fixes openhab#5674 Fixes openhab#8081 Fixes openhab#6688 Fixes openhab#5048 Fixes openhab#6743 Fixes openhab#5062 Signed-off-by: Martin Herbst <[email protected]>
…openhab#8242) * Set bridge state to offline for duty cycle = -1 * Use correct type Contact for state channel of tilt sensor * Support type Int64 for messages from Homegear * Correct support of UP/DOWN for rollershutter devices - Important: UP command must send 1.0 to the device instead of the maximum value returned by Homematic which is 1.01 and does not work. * Correct max data point value of certain HmIP devices - Some data points of HmIP are returning 1.01d as max value instead of the correct value of 1.0. * HM channel "Blind Transmitter" also indicates a rollershutter * Reduced log level for certain datapoints to avoid flooding the logs - HmIP devices introduced new channel configuration datapoints that can't currently be detected automatically, but the CCU sometimes sends events and the logs were flooded with warnings. * CuxD interface apparently does not support the rssiInfo method * equals method call not necessary because of enum usage * HM method does not return any data if HmIP only is used Fixes openhab#6360 Fixes openhab#6145 Fixes openhab#5042 Fixes openhab#5674 Fixes openhab#8081 Fixes openhab#6688 Fixes openhab#5048 Fixes openhab#6743 Fixes openhab#5062 Signed-off-by: Martin Herbst <[email protected]>
…openhab#8242) * Set bridge state to offline for duty cycle = -1 * Use correct type Contact for state channel of tilt sensor * Support type Int64 for messages from Homegear * Correct support of UP/DOWN for rollershutter devices - Important: UP command must send 1.0 to the device instead of the maximum value returned by Homematic which is 1.01 and does not work. * Correct max data point value of certain HmIP devices - Some data points of HmIP are returning 1.01d as max value instead of the correct value of 1.0. * HM channel "Blind Transmitter" also indicates a rollershutter * Reduced log level for certain datapoints to avoid flooding the logs - HmIP devices introduced new channel configuration datapoints that can't currently be detected automatically, but the CCU sometimes sends events and the logs were flooded with warnings. * CuxD interface apparently does not support the rssiInfo method * equals method call not necessary because of enum usage * HM method does not return any data if HmIP only is used Fixes openhab#6360 Fixes openhab#6145 Fixes openhab#5042 Fixes openhab#5674 Fixes openhab#8081 Fixes openhab#6688 Fixes openhab#5048 Fixes openhab#6743 Fixes openhab#5062 Signed-off-by: Martin Herbst <[email protected]> Signed-off-by: Daan Meijer <[email protected]>
…openhab#8242) * Set bridge state to offline for duty cycle = -1 * Use correct type Contact for state channel of tilt sensor * Support type Int64 for messages from Homegear * Correct support of UP/DOWN for rollershutter devices - Important: UP command must send 1.0 to the device instead of the maximum value returned by Homematic which is 1.01 and does not work. * Correct max data point value of certain HmIP devices - Some data points of HmIP are returning 1.01d as max value instead of the correct value of 1.0. * HM channel "Blind Transmitter" also indicates a rollershutter * Reduced log level for certain datapoints to avoid flooding the logs - HmIP devices introduced new channel configuration datapoints that can't currently be detected automatically, but the CCU sometimes sends events and the logs were flooded with warnings. * CuxD interface apparently does not support the rssiInfo method * equals method call not necessary because of enum usage * HM method does not return any data if HmIP only is used Fixes openhab#6360 Fixes openhab#6145 Fixes openhab#5042 Fixes openhab#5674 Fixes openhab#8081 Fixes openhab#6688 Fixes openhab#5048 Fixes openhab#6743 Fixes openhab#5062 Signed-off-by: Martin Herbst <[email protected]>
…openhab#8242) * Set bridge state to offline for duty cycle = -1 * Use correct type Contact for state channel of tilt sensor * Support type Int64 for messages from Homegear * Correct support of UP/DOWN for rollershutter devices - Important: UP command must send 1.0 to the device instead of the maximum value returned by Homematic which is 1.01 and does not work. * Correct max data point value of certain HmIP devices - Some data points of HmIP are returning 1.01d as max value instead of the correct value of 1.0. * HM channel "Blind Transmitter" also indicates a rollershutter * Reduced log level for certain datapoints to avoid flooding the logs - HmIP devices introduced new channel configuration datapoints that can't currently be detected automatically, but the CCU sometimes sends events and the logs were flooded with warnings. * CuxD interface apparently does not support the rssiInfo method * equals method call not necessary because of enum usage * HM method does not return any data if HmIP only is used Fixes openhab#6360 Fixes openhab#6145 Fixes openhab#5042 Fixes openhab#5674 Fixes openhab#8081 Fixes openhab#6688 Fixes openhab#5048 Fixes openhab#6743 Fixes openhab#5062 Signed-off-by: Martin Herbst <[email protected]>
Migrated from eclipse-archived/smarthome#6841. See also comments from other people there.
I am using openHAB 2.5.0 stable and a CCU3 with the newest firmware. Devices are all HM IP. Everything has been configured with PaperUI.
Values often differ by 1 between CCU3 and openHAB.
The reported dimmer value from the CCU3 is often one less in openHAB. For example, the dimmer is at 20% but it’s 19% in openHAB. 60% is 59%.
Setting to 60% in openHAB sets it to 60.5% in the CCU3, but then displays 59% in openHAB.
Setting to 100% in openHAB sets it to 101% in the CCU3, but then displays 100% in openHAB.
Same thing for level (valve) of a thermostat. When it’s 53% in the CCU3, it is 52% in openHAB.
The Android App TinyMatic is working correctly in all these cases.
2 other minor things:
The formatted SetPointTemperature of a thermostat has 2 decimal points. 1 would be enough.
The formatted ActualTemperature of a thermostat has 0 decimal points. It should have 1.
Thermostat: HmIP-eTRV
Dimmer: HmIP-PDT
The text was updated successfully, but these errors were encountered: