switch (idx) {
case 87: /* Boiler */ {
svalue1 = x["svalue1"].as<int>();
- float flow_temp = 30.0 + (svalue1 / 8.0);
- ESP_LOGI("Evohome", "Boiler set to %d/%d, flow temp NOT set to %f °C", nvalue, svalue1, flow_temp);
id(tell_domo_svalue)->execute(908, std::to_string(svalue1/2));
- //id(ecodan_instance).set_flow_target_temperature(flow_temp, esphome::ecodan::SetZone::ZONE_1);
+ if (id(auto_flow_temp).state) {
+ id(flow_temp) = 30.0 + (svalue1 / 8.0);
+ ESP_LOGI("Evohome", "Boiler set to %d/%d, flow temp set to %f °C", nvalue, svalue1, id(flow_temp));
+ id(ecodan_instance).set_flow_target_temperature(id(flow_temp), esphome::ecodan::SetZone::ZONE_1);
+ }
break;
}
case 94: /* Lounge (N) Valve */
# clk_pin: GPIO12
# miso_pin: GPIO13
+globals:
+ - id: flow_temp
+ type: float
+ restore_value: no
+
# relay
switch:
+ - platform: template
+ restore_mode: RESTORE_DEFAULT_ON
+ id: auto_flow_temp
+ name: "Auto flow temp"
+ optimistic: true
+ on_turn_on:
+ then:
+ - lambda: |-
+ if (id(flow_temp)) {
+ ESP_LOGI("Evohome", "Flow temp set to %f °C", id(flow_temp));
+ id(ecodan_instance).set_flow_target_temperature(id(flow_temp), esphome::ecodan::SetZone::ZONE_1);
+ }
+
- platform: gpio
pin: GPIO5
restore_mode: ALWAYS_ON