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
KNX Climate Control - Can only decrease. Increase breaks the GUI #14531
Comments
I used "Call Service" to set temperature higher than the current temperature and it seem to work. All of this clearly indicates that the problem is with UI. (AFAIK). Please advise. |
Looks like https://github.com/XKNX/xknx/blob/master/xknx/devices/climate.py#L203 returns
There is an actual bug in the platform here since the configuration option either should not be optional, or a default value needs to be supplied for |
I had reported the same in DiscordApp. You can verify this by setting the But if you look at the https://github.com/XKNX/xknx/blob/4e7f30637cb4e2235fc00e5030578510c3b28242/xknx/devices/climate.py#L21 , you can see that the default values are set and later initialized at L32. I will however manually assign these and check if it works. |
|
I left the town. Will check during the weekend. So according to you if I set the setpoint_shift.value,max, and step - it should work right? |
You need to set |
So I set everything as per below:
Still the same result. I can still decrease and the step decrease is in 1 degree instead of 0.5 confirming that my config is executed. But my logfile shows error in the same.
I temporarily fixed this by editing I hope this is fixed in the future version. |
It appears either your |
Unfortunately they are same. It works correctly with the modified code with the config intact. |
@oasacorp That is not correct, they are totally different objects and have different addresses. However, some devices apparently do not support a setpoint shift according to http://www.elanportal.com/supportdocs/catalog/KNX%20Climate%202.pdf |
Same behavior here with a Zennio HeatingBox: Decreasing the temperature via GUI works fine, but increasing breaks the GUI. I.e. the target value disappears and can only be restored by switching to another operation mode. Increasing the temperature via service call works fine. I also added
I'm still not sure, if I don't want to rule out categorically that this maybe a misconfiguration in HA or KNX (ETS) for that device, but I really don't know, how to change the device config in HA or ETS to avoid this behavior. As changing the temperature via service call is working fine, obviously there is a way to control the target temperature of devices without the |
@cian does xknx need to be updated to support temp min/max properly when the setpoint shift address isn't available? |
I have exactly the same problem. If I know correctly, it's because the interface communicates with 1 byte. (setpoint_shift) However, many actuators can not do this. 2Byte could be the solution. This should work with any hardware. |
I have exactly the same problem with a Zennio Quad thermostat. In ETS, I haven't an object for @derandiunddasbo , can you give us an example of your service call to change the temperature ? Thanks all for your help. |
@Melmann: Nothing fancy, I'm just using the "Services" dev tool from the HA UI for the service call: |
There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 |
The behavior is still the same with the current stable version 0.80.3 and there seems to be no fix for #14531 in the currents betas as well. |
I also have the same problem. |
Version 82.0 same problem :-( |
Just a side note: Increasing the target temperature of a KNX climate component affected by this bug is working fine with a Lovelace Thermostat Card. Unfortunately, the Lovelace card currently doesn't support changing the operation mode for a knx climate component and is as of now no full replacement for a regular climate entity item. |
It is probably a bug in the UI part, maybe this issue should be moved to the UI issur tracker ? |
This is not a UI bug. The underlying library is not capable of determining the |
Uhm - that raises the question, what's the purpose of determining the While the (classic UI) climate entity item wants to use the |
I'm having the exact same issue with a KNX Climate component. I'm only using the lovelace thermostat component. I've set everything in the config as expected but still the UI just looks weird although the updating with the thermostat works, but the operation modes do not.
|
I've added a PR (XKNX/xknx#158) to allow overriding the max and min temperature for devices that do not have a This should fix the issue with increasing the temperature, but you need to set the new I also added a mapping between the KNX operation modes and the potential operation modes used in the frontend which will allow us to implement the operation change in the lovelace UI in a next step. |
I have the exact same problem. It even persists in HA 0.85.0, so please reopen the issue. I've read through all the comments, but there seems to be no explanation, why the temperature can be reduced, but not raised. I have not defined setpoint_shift_step / setpoint_shift_max / setpoint_shift_min. If that was the trouble, then turning down the temperature shouldn't work either... My config looks like this:
|
+1 |
As denoted in #14531 (comment) please set the
Works perfectly fine for me with 0.85.0. |
I just tried 'max_temp: 32.0' - same problem. It also still doesn't answer why turning the temperature down works... |
sorry, this has to be a different issue. using the lovelace-ui preview i can turn the temp up and down flawlessly and it even shows the change when i return to the regular UI. I have now tried the settings posted above and I have even tried reconfiguring my heating from a 1bit shiftpoint format to 2byte with exactly the same result: can decrease temp but not increase... EDIT: This makes no sense: HA seems not to make use of setpoint_shift_address at all... |
Yep, doesn't make sense for me as well. I asked about this confusing behavior and usage of the target_temperature_address attribute on the community forum, but didn't get any reactions yet: https://community.home-assistant.io/t/knx-climate-target-temperature-confusion/84832 |
With a service call it works in the manner HA is currently handling it: climate.set_temperature The thing is though: my knx heating controller does not accept this. HA thinks it has successfully changed the target temperature, but when i re-read it from the knx controller it returns the previous value. My controller expects either a 1bit +/- value or a 2byte step value like +/-0,5K. The calculation of the new target temperature is done in my controller and then the target-temperature is sent to the target-temp KNX-group. So HA should only send a shift command and then wait for the response on target-temp KNX group to be sure the target temp has actually been changed. But HA seems to be completely lacking a climate.shift_temperature service. It seems to me the setpoint_shift_address: '1/0/10' config is completely useless like this. So there seem to be two things going wrong:
|
Yes, and why should it. :-) I'm quite sure, the root of this problem is the knx climate component (mis-) using a read only group address for writing new temperature values.
This behavior doesn't seem to be consistent for different knx devices. My zennio devices f.e. accept the new value on the read group address and even return it, when re-read. But the value is still ignored, as the heating valves don't move, even if I set very high or low temperatures. When writing the new value to the target temperature write GA, it is accepted and correctly returned on both the write and the read GA. Of course this is not the devices fault, as one obviously can't expect any correct and reliable results, when writing anything to a read-only address.
As far as I understood the discussion above, the service is indeed called, but since the new target temperature is calculated using the The lovelace climate card seems to calculate the target temperature differently, i.e. without using the setpoint shift group address. Thus, increasing the temperature value is working fine in this case (*). This discussion is still missing an explanation, why the temperature calculation in the classic UI depends on a (*) Only in the UI of course, because of writing the new value to the wrong GA, as described above. |
I'm curious as well. :-) Today I configured The issue that the new target temperature is written to a read only group address still prevents the change to actually become effective on my zennio devices, but for this I opened a separate issue today: #20106 |
I think this still is an issue... I have set the max/min_temp accordingly: climate:
- platform: knx
name: Wohnzimmer
temperature_address: '1/0/5'
setpoint_shift_address: '1/0/10'
target_temperature_address: '1/0/6'
operation_mode_address: '1/0/8'
max_temp: 32.0
min_temp: 8.0 Allright, now it seems like I can turn up the temperature up in the GUI. BUT:
Maybe it helps to know which HVAC controller I am using: |
Same here. Bug still exists. |
HA version 0.69.1 using hassbian
I cannot increase the temperature through HA. The thermostat is on KNX bus. However I can decrease the temperature without any problem. I can increase/decrease the temperature through ETS or physically through thermostat. Through HA, I can only decrease. When I increase I am greeted with this picture:
My configuration is as follows:
Tail Log dump: https://hastebin.com/hutoxoyite.coffeescript
When I tail -f the log, I actually see no log created when I click UP immediately. So I do not think the log is of relevance. (I have enabled logger in my config)
Thanks.
The text was updated successfully, but these errors were encountered: