custom-components / climate.programmable_thermostat

Programmable thermostat that let you have a smart thermostat on budget.
The Unlicense
115 stars 35 forks source link

Programmable Thermostat keeps switches off even it's turned off #18

Closed jsiemek closed 4 years ago

jsiemek commented 4 years ago

I have terrarium, it's wormed by lamps. There are separate lamps for day and night heating. I also have fan for cooling. I created two programmable thermostats, one for day heating and second for night. Different temperatures are set for day and night thermostat. The automation at evening and morning are activation and deactivating proper thermostat. Problem is even deactivated (turn off) thermostat is keeping to switch fan off.

eg. Day thermostat is set to 28 °C with 0.5 °C tolerance. Night thermostat is set to 22 °C with 0.5 °C tolerance. So, at night lamp should be turn off when temperature reach 22 °C and fan will be started when temperature reached 22.5 °C. It works, but day thermostat immediately turn fan off, as temperature is below 28 °C. Again day thermostat is off at the moment.

I solver it with input_boolean switches and some automations, but I believe it's error.

MapoDan commented 4 years ago

Ciao, I had the same issue with the home heating system and this is why I have created the related_climate setting. You have to create the 2 climates that are related with this option with the name of the other. Everytime the one climate try to turn off something it checks if the related ones are active. Here my example:

- platform: programmable_thermostat
  name: risc_bagno
  heater: switch.risc_bagno
  actual_temp_sensor: sensor.mi_t_4c65a8d9611c
  min_temp: !secret min_temp_prog_term
  max_temp: !secret max_temp_prog_term
  target_temp_sensor: sensor.prog_bagno
  tolerance: !secret tolerance_prog_term
  related_climate: climate.risc_caldaia
- platform: programmable_thermostat
  name: risc_caldaia
  heater: switch.risc_bagno
  actual_temp_sensor: sensor.mi_t_4c65a8d96d5e
  min_temp: !secret min_temp_prog_term_caldaia
  max_temp: !secret max_temp_prog_term_caldaia
  target_temp_sensor: sensor.prog_caldaia
  tolerance: !secret tolerance_prog_term
  related_climate: climate.risc_bagno

In anycase, be aware that you don't need to have 2 different climates. You can define just one of them with both cooling and heating switch and create a sensor for temperature that set different temperatures according to the time of the day.

To easily have a the sensor like that you can use the notify platform, a couple of automations and a bunch of input numbers and buttons to write a file from the UI and my other component File Restore to have a sensor that read the file of the temperature.