Use numeric AC fan modes

This commit is contained in:
ltadeu6 2026-05-17 15:00:02 -03:00
parent e394d03175
commit 36d838ca86
2 changed files with 9 additions and 8 deletions

View file

@ -620,7 +620,8 @@ Estado atual:
- Entre 23 C e 28 C, o script usa pulsos planejados de `cool` com setpoint 22 C por ate 15 minutos, depois volta para `dry` por ate 40 minutos. - Entre 23 C e 28 C, o script usa pulsos planejados de `cool` com setpoint 22 C por ate 15 minutos, depois volta para `dry` por ate 40 minutos.
- Acima de 28 C, o script nunca aquece; usa `cool` com setpoint 23 C por ate 20 minutos e depois `dry`. - Acima de 28 C, o script nunca aquece; usa `cool` com setpoint 23 C por ate 20 minutos e depois `dry`.
- O tempo maximo de execucao e 6 horas; ao expirar, o script desliga `climate.ar` e desliga `input_boolean.secar_roupas`. - O tempo maximo de execucao e 6 horas; ao expirar, o script desliga `climate.ar` e desliga `input_boolean.secar_roupas`.
- Fan mode e definido apenas se o valor existir em `state_attr('climate.ar', 'fan_modes')`; tenta `medium`/`high` e cai para `auto`. - Fan mode e definido apenas se o valor existir em `state_attr('climate.ar', 'fan_modes')`; a integracao atual aceita niveis numericos `1..5`.
- O script usa fan `3` no `dry`, fan `4` no `cool` e fan `5` no `heat`, sempre com fallback para um nivel abaixo.
Cuidados: Cuidados:

View file

@ -37,7 +37,7 @@ let
conditions = [{ conditions = [{
condition = "template"; condition = "template";
value_template = value_template =
"{{ '${preferred}' in (state_attr('${haAirConditioner}', 'fan_modes') or []) }}"; "{{ '${preferred}' in ((state_attr('${haAirConditioner}', 'fan_modes') or []) | map('string') | list) }}";
}]; }];
sequence = [ (haSetFanMode preferred) ]; sequence = [ (haSetFanMode preferred) ];
} }
@ -45,7 +45,7 @@ let
conditions = [{ conditions = [{
condition = "template"; condition = "template";
value_template = value_template =
"{{ '${fallback}' in (state_attr('${haAirConditioner}', 'fan_modes') or []) }}"; "{{ '${fallback}' in ((state_attr('${haAirConditioner}', 'fan_modes') or []) | map('string') | list) }}";
}]; }];
sequence = [ (haSetFanMode fallback) ]; sequence = [ (haSetFanMode fallback) ];
} }
@ -53,27 +53,27 @@ let
}; };
haDryCycle = [ haDryCycle = [
(haSetHvacMode "dry") (haSetHvacMode "dry")
(haSetFanModeIfAvailable "medium" "auto") (haSetFanModeIfAvailable "3" "2")
]; ];
haHeatEvaporationCycle = [ haHeatEvaporationCycle = [
(haSetHvacMode "heat") (haSetHvacMode "heat")
(haSetTemperature 25) (haSetTemperature 25)
(haSetFanModeIfAvailable "high" "auto") (haSetFanModeIfAvailable "5" "4")
]; ];
haHeatRecoveryCycle = [ haHeatRecoveryCycle = [
(haSetHvacMode "heat") (haSetHvacMode "heat")
(haSetTemperature 24) (haSetTemperature 24)
(haSetFanModeIfAvailable "high" "auto") (haSetFanModeIfAvailable "5" "4")
]; ];
haCoolPulse = [ haCoolPulse = [
(haSetHvacMode "cool") (haSetHvacMode "cool")
(haSetTemperature 22) (haSetTemperature 22)
(haSetFanModeIfAvailable "medium" "auto") (haSetFanModeIfAvailable "4" "3")
]; ];
haHotRoomCoolPulse = [ haHotRoomCoolPulse = [
(haSetHvacMode "cool") (haSetHvacMode "cool")
(haSetTemperature 23) (haSetTemperature 23)
(haSetFanModeIfAvailable "medium" "auto") (haSetFanModeIfAvailable "4" "3")
]; ];
zenExtension = shortId: guid: { zenExtension = shortId: guid: {
name = guid; name = guid;