panhans / HomeAssistant

Home Asisstant related stuff like blueprints for automations and scripts.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[feature request] Adding a fix temperature offset

UserNameNicolas opened this issue · comments

Hello,

first of all i like your blueprint. Nice work.
I have really slow tuya temperature sensors (30min between new values) and tuya trvs with no local temperature calibration.
I tried to use the calibration temperature sensor option in the blueprint and played a lot with the calibration timeout. But nothing works fine for me. For me its the best to calculate the temperature offset manually and change the eco and comfort temperature.
But now the problem: Its a little bit confusing to my family if there is a comfort temperature of 16°C and they rise it every time to hell.
So here my request: Can you add a static offset? Then i can change the comfort temperature back to 21°C and set the static offset till i have 21°C in the room.

regards
Nicolas

Hey, thank you for your request. Calibration timeout and delta only works for native calibration. So I think you tried generic calibration and the calculated temperature confuses your family.

But I don't understand your request in that case. If there is a static offset the target temperature of your trvs also gets manipulated. That means they display not the reals target temperature.

I have a page in my dashboard with helper input numbers.
Living room comfort temperature: 21
Living room eco temperature: 18

I use this in the blueprint for comfort temperature and eco temperature. Now without any calibration my room temperature is way too high.

So i tried generic calibration with a temperature sensor. But then i have a problem with "wrong" calibration because my temperature sensor sends new temperature in a 30min cycle. So if i open the window the sensor sends a way too low temperature value. Then i close the window and 25 min my trv is heating too much.

So i decided to use a "static" temperature offset. I removed the calibration sensor and reduced the comfort temperature to 16 and now i have 21°C in my room. Works very good for me. But now there is a 16 in my dashboard. That is confusing.

So i need a static offset value in the blue print. Then i can type 21 to comfort temperature and -5 in the "static temperature offset calibration".

EDIT: I recently pushed a hot fix to set a range of +/-2 for generic calibration.

Ah ok. Thanks for your ideas. I think this is why most native calibration functions only accept a deviation of +/-2°C. Will will add this in the blueprint.

But for your problem:

Create a new input_boolean helper for your automation called, e.g. Is heating

Then setup another helper:

  1. click create helper
  2. choose template
  3. choose Template for sensor
  4. Give it a name e.g. Static Offset Temperature, unit of measurement (°C), device class temperature, state class measurement
  5. Add this for your template and modify your input_numer entities and the just created input_boolean please:

{{ iif(state('input_boolean.is_heating') == 'on', state('input_number.comfort_temperature'), state('input_number.eco_temperature')) | float - float(5) }}

Then navigate to the blueprint settings and select this sensor as temperature sensor and enable generic calibration.
Then just scroll down and create a custom action. Best way is to enable yaml mode for the custom action and add this. Don't forget to adjust the entity_id.

if:
  - condition: template
    value_template: "{{ is_state('input_boolean.is_heating','on') != is_heating }}"
then:
  - service: "input_boolean.turn_{{ iif(is_heating,'on','off') }}"
    data:
      entity_id: input_boolean.is_heating # edit this entity id to yours

Explanation:
Now the automation is storing the heating state in the helper input_boolean.is_heating. Regarding the state the fake template temperature sensor takes your eco or comfort entity and -5 gets subtracted from the value. Then the generic calibration takes place and adjust the new values for your thermostats.

Thank you for your help.