Primeiro você precisa criar uma entidade com as opções para máquina de lavar.
Assim a cada etapa você altera a opção atual da máquina de lavar.
Para isso crie um input select
input_select:
# Máquina de Lavar ################################
opcoes_maquina_de_lavar:
name: Opções da Máquina de Lavar
options:
- Desligada
- Enchendo
- Batendo
- Molho
- Esvaziando
- Centrifugando
initial: Desligada
icon: mdi:washing-machine
Esse código acima vai dentro do configuration.yaml
.
As opções você define de acordo com a sua máquina, ou com o que você deseja. Basta adicionar ou remover dentro da tag options:
como o exemplo acima. Mesma coisa vale para o nome, eu coloquei opcoes_maquina_de_lavar
, mas você pode colocar o nome que achar melhor.
Depois você precisa identificar a cada etapa da sua máquina, a quantidade watts. Mas já adianto que é chatinho fazer, pois as vezes você tem vários modos (modo curto, modo longo) de lavagem/secagem e isso da um trabalhinho.
Digo isso, porque as suas automações para mudar o status da sua máquina no INPUT SELECT, vai depender da etapa anterior que sua máquina se encontra, pois se não vai alterar para uma etapa que não deveria. Você precisará criar condições para trocar de etapa.
Exemplo:
# Etapa 1 - Máquina Ligada e Enchendo
- alias: 'Máquina de Lavar - Enchendo'
initial_state: true
trigger:
- platform: numeric_state
entity_id: sensor.maquina_de_lavar_wats
above: 3 #acima
below: 7 #abaixo
condition:
# Aqui uma condição, só vai trocar para a opção Enchendo se o opção atual dela for Desligada
- condition: state
entity_id: input_select.opcoes_maquina_de_lavar
state: 'Desligada'
action:
# aqui eu altero o valor da máquina no input que criei
- service: input_select.select_option
data:
entity_id: input_select.opcoes_maquina_de_lavar
option: 'Enchendo'
# gh avisa - OPCIONAL
- service: tts.google_translate_say
data_template:
entity_id: media_player.musics
message: "Olá! A máquina de lavar foi ligada. Iniciando o primeiro processo, que é encher d'água."
Para cada etapa você precisará fazer assim. Uma automação com condições.
Outro exemplo, a minha máquina sempre que termina o processo em todas os modos, ela faz a centrifugação antes de finalizar.
Então eu coloquei uma condição para que só altere a etapa para Desligada, se a etapa atual dela for “Centrifugando”
# etapa final
- alias: 'Máquina de Lavar - Finalizada'
initial_state: true
trigger:
- platform: numeric_state
entity_id: sensor.maquina_de_lavar_wats
below: 1
condition:
# Aqui é onde coloco a condição que para executar as ações, ela precisa estar no modo Centrifugando
- condition: state
entity_id: input_select.opcoes_maquina_de_lavar
state: 'Centrifugando'
action:
# Altera o valor do input
- service: input_select.select_option
data:
entity_id: input_select.opcoes_maquina_de_lavar
option: 'Desligada'
# gh avisa
- service: tts.google_translate_say
data_template:
entity_id: media_player.musics
message: "Processo de lavação finalizou. Desliguei a máquina. Agora você pode recolher a roupa."
Se você não colocar as condições baseado na etapa atual da máquina, as vezes sua automação vai trocar para molho e na verdade ela ta enchendo, pois as vezes a variação de watts é semelhante entre uma etapa e outra.
Outra dica é no gatilho trigger:
colocar for:
assim, ela só executa o gatilho se estiver por X tempo entre aquela situação (nesse caso watts), exemplo:
trigger:
- platform: numeric_state
entity_id: sensor.maquina_de_lavar_wats
below: 1
for: '00:10:00'
Nesse caso, só vai executar a ação se a máquina de lavar abaixo de 1 watt por 10 segundos. Isso também ajuda pois as vezes a máquina ou o sensor que monitora a energia dela, tem variação e de uma hora para outra vai para 0 em 1 segundo e acaba ativando sua automação.
No final você não vai utilizar o sensor.maquina_lavar_status
para mostrar na tela (view), e sim o input_select.opcoes_maquina_de_lavar
para mostrar o status dela.
Bom é isso, como eu disse, é chatinho, e tem que fazer bastante testes para conseguir chegar um resultado ideal, e além disso tem que ligar a máquina e verificar em cada etapa a variação de watts dela.