home-assistant / architecture

Repo to discuss Home Assistant architecture
315 stars 99 forks source link

Add service climate.set_outside_temperature #418

Closed claudegel closed 4 years ago

claudegel commented 4 years ago

Context

Today many thermostats can display outside temperature as a secondary display. Adding a service to send outside temperature to those thermostats would be easy . Sinope thermostat first generation and zigbee can display outside temperature, zigbee platform already have cluster for outside temperature display. To be able to see outside temperature on each thermostat in the house is very usefull.

Proposal

Adding a climate.set_outside_temperature service to climate. This PR is already opened and tested: home-assistant/core#38745

Consequences

It will be a lot easier for each climate component that support outside temperature display to implement this. A lot less code to change in each components and custom components. There is no impact for the climate components that do not support this outside temperature display.

balloob commented 4 years ago

This is not a very common feature and is better suited for integration specific services.

claudegel commented 4 years ago

It's not all thermostat that support Set humidity or have auxiliary heater and services are available for them. The one I have don't support this except for the floor thermostats for auxiliary heater. But I think it is better to have a central service developed in the core instead of leaving each integrations to develop with inconsistency. This lead to integration stopping to work or affecting HA efficiency. Where I live, most thermostats can display outside temperature. So if set_outside_temperature service become available it will be easier for integration developer to support it. For thermostats that don't, it won't cause any problem. Via the core it is easy to send outside temperature at least each hour. This is what is needed for the thermostat to work properly. If we go via integration with sensor event check it will be harder to send outside temperature at a consistant frequency.

claudegel commented 4 years ago

I've found that most thermostats brand in my country support outside temperature display. OpenHab have also an outside temperature channel so I think that this should be added to HA as a service.

Adminiuga commented 4 years ago

I'd love such a service too. Unless there's a way to do this via device automation. E.g. climate implements device automation that accepts a temperature device/entity and updates the outdoor temp display.

elupus commented 4 years ago

I don't think the entity model needs any such feature. this would be a integration specific thing. imho. A simple entity service on integration level solve your need perfectly and as mentioned would fit easily with a device automation.

There might be benefits of doing it with entity state tracking to avoid constant service calls. But that would need yaml config.

frenck commented 4 years ago

I don't think we should add this.

First of all, this is not just about the service, as proposed in the issue, but it also adds the outside temperature property. That alone is a perfect candidate for a standalone sensor. Not an attribute.

Having the need to set the outside temperature from outside the integration scope using a service is even weirder. Does this mean the data is not from the integration that provides the climate temperature? As in, it is obviously not changing the actual outside temperature (don't play god/mother nature).

If this is purely to be able to display an outside temperature in the frontend, I would suggest on getting an option on the thermostat card that can point to a secondary sensor entity (e.g., with the outside temperature or the BBQ flesh thermometer).

So, for me, this is a no, sorry.

elupus commented 4 years ago

@frenck I think it's the opposite of displaying in lovelace, it's about displaying outside temperature on a physical thermostat device with display that has a ha integration.

frenck commented 4 years ago

If that is the case, that can be implemented as an integration specific service. As that would not be a really common thing.

MartinHjelmare commented 4 years ago

Consensus on this issue is that this should be a custom entity service for now.

https://developers.home-assistant.io/docs/dev_101_services#entity-services

Thanks for your contribution!