home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
73.65k stars 30.79k forks source link

Climate temperature cannot be manually raised #19974

Closed ghost closed 5 years ago

ghost commented 5 years ago

@mgies commented on Jan 9, 2019, 6:42 PM UTC:

Home Assistant release with the issue: Version 0.84.6

Last working Home Assistant release (if known): unknown -> never experienced this working before...

Browser and Operating System: Bug occurs on: Laptop running kubuntu 18.04.1 with Chromium Galaxy S5 running LineageOS 15 with Fennec-fdroid

Description of problem: I control my heating through HA and KNX. Everything works fine, except manually turning up the tempereature in the webUI. Turning the temperature down works fine. There are no errors in the log on the info page.

Javascript errors shown in the web inspector (if applicable):

Additional information:

This issue was moved by iantrich from home-assistant/home-assistant-polymer#2427.

ghost commented 5 years ago

@mgies commented on Jan 10, 2019, 7:28 PM UTC:

Just updated to 0.85.0 - problem persists

ghost commented 5 years ago

@mgies commented on Jan 10, 2019, 7:30 PM UTC:

Seems to be a duplicate of #14531 which has been closed but obviously isn't resolved...

ghost commented 5 years ago

@iantrich commented on Jan 10, 2019, 9:25 PM UTC:

There is so no such issue number?

ghost commented 5 years ago

@mgies commented on Jan 10, 2019, 11:48 PM UTC:

Sorry, the issue I was referring to concerns HA itself: home-assistant/home-assistant#14531

ghost commented 5 years ago

@bramkragten commented on Jan 11, 2019, 11:10 AM UTC:

Is this a frontend problem? Does this work with a service call?

ghost commented 5 years ago

@mgies commented on Jan 11, 2019, 1:23 PM UTC:

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:

  1. When increasing the temp in the GUI, nothing happens. No packets on the KNX bus. Seems like a GUI probelm to me. Maybe the service is not called.
  2. When decreasing the temp in the GUI, HA sends a new target temp, which is not acceptet by my controller. Seems like a HA problem: wrong behavior for KNX usage.
ghost commented 5 years ago

@bramkragten commented on Jan 11, 2019, 1:44 PM UTC:

The frontend does the same for every climate platform, we will not make it different for KNX, this should be solved in the backend.

When you raise the temperature do you get a toast with: Service climate/set_temperature called. ?

derandiunddasbo commented 5 years ago

When you raise the temperature do you get a toast with: Service climate/set_temperature called. ?

In my case: no. The toast only appears, when decreasing the temperature.

When running the service call in the service dev tool, the toast always appears, regardless of increasing or decreasing the current temperature. When changing the temperature via lovelace climate card, the toast appears on increasing as well as on decreasing the temperature.

marvin-w commented 5 years ago

@mgies We do handle setpoint shifts here:

async def set_target_temperature(self, target_temperature):
        """Calculate setpoint shift shift and send it to  KNX bus."""
        if self.initialized_for_setpoint_shift_calculations:
            await self.set_target_temperature_setpoint_shift(target_temperature)
        # broadcast new target temperature and set internally
        await self.target_temperature.set(target_temperature)
@property
    def initialized_for_setpoint_shift_calculations(self):
        """Test if object is initialized for setpoint shift calculations."""
        if not self.setpoint_shift.initialized:
            return False
        if self.setpoint_shift.value is None:
            return False
        if not self.target_temperature.initialized:
            return False
        if self.target_temperature.value is None:
            return False
        return True

As I've already denoted in various previous comments please use the new max_temp and min_temp configurations to avoid this error if your device doesn't support setpoint shift calculations. This works perfectly for me (I have the same error without setting it).

If you're still experiencing issues after this please share your configs and post appropriate logs.

IMHO there is no issue.

VoteForClose

mgies commented 5 years ago

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:

  1. This does not answer the question, why the temp can be turned down, but not up, when not setting min_temp and max_temp. This makes no sense to me.
  2. There is a new target temperature written to 'temperature_address' (a read only group). My device does not accept this!
  3. My KNX device does not even expect/accept a new target temperature at all. I simply expects a shift impulse on 'setpoint_shift_address'. HA does not need to do any calculation, it's simply done in my KNX HVAC controller. So there should be no need for any min/max values, if HA would only have to send 0 or 1. My HVAC controller knows all the values, calculates the new target temp and then sends it to the heating valve...

Maybe it helps to know which HVAC controller I am using: SCN-RT6REG.01 https://www.mdt.de/EN_Temperature_Controllers.html

stale[bot] commented 5 years ago

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 👍 This issue now has been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.