Flexible Generic Thermostat

I have a humidifier that I move to different rooms in my house on occasion. It is not “smart”, so I had the idea to control it with a humidity sensor and smart plug in the room that it’s currently in. I have it working, but there are a couple things I would like to improve.

First, I am controlling it with the generic thermostat integration, which works exactly how I would like it to, except for the fact that it is hardcoded to deal only with temperature. So the units are in degrees, instead of %, and it refers to heating the room, instead of humidifying it. These do not prevent it from functioning, but it would improve the interface if I could change the display of what is being controlled. Maybe this could be a generic bang-bang controller, instead of a generic thermostat.
Is there a way to do this that I am unaware of?

Secondly, because I move the humidifier between rooms, the humidity that I want to reference as the target will change, as might the plug I want to use to control it. I created a couple of dropdown input select helpers with the entity ID’s of the devices from the different room options, and thought I might be able to use a template in the thermostat config to accomplish a more flexible setup. The idea being that I could move the humidifier, and then just change the dropdowns for the “heater” and target sensor to correspond to the new room, instead of needing to change the configuration yaml. Alas, this did not work:

  - platform: generic_thermostat
    name: Generic Humidifier
    heater: '{{ states.input_select.generic_humidifier_switch.state }}'
    target_sensor: '{{ states.input_select.generic_humidifier_sensor.state }}'
    min_temp: 35
    max_temp: 65
    ac_mode: false
    target_temp: 55
    cold_tolerance: 0.6
    hot_tolerance: 0.6
    min_cycle_duration:
      minutes: 5
    precision: 1.0
    target_temp_step: 1.0

Configuration Warnings:

Invalid config for 'generic_thermostat' from integration 'climate' at configuration.yaml, line 98: Entity ID {{ states.input_select.generic_humidifier_switch.state }} is an invalid entity ID for dictionary value 'heater', got '{{ states.input_select.generic_humidifier_switch.state }}'
Invalid config for 'generic_thermostat' from integration 'climate' at configuration.yaml, line 99: Entity ID {{ states.input_select.generic_humidifier_sensor.state }} is an invalid entity ID for dictionary value 'target_sensor', got '{{ states.input_select.generic_humidifier_sensor.state }}'

Did I make a mistake in my config? Or is this just not possible?

why dont you use Generic hygrostat - Home Assistant ?

Neither of these options support templates. See this topic for a solution: IF statements in the configuration: if input_boolean is ON, other 2 are OFF - #2 by tom_l

1 Like

Exactly what I was looking for, not sure how I didn’t see this before. Thank you!

1 Like