Criar status para máquina de lavar

Precisava de uma ajuda para criar um sensor de status para máquina de lavar roupas e lavar louças, tipo de acordo com o wats saber em qual estágio está (enchendo, batendo, centrifugando e etc) alguém poderia me dar uma ajuda?
Estou com esse código e queria incluir mais segue:

  - platform: template
    sensors:
      maquina_lavar_status:
        friendly_name_template: Status Máquina de Lavar
        value_template: >-
          {% if states('sensor.watts_lava_e_seca')|float > 3 %}
            Lavando
          {% else %}
            Desligada
          {% endif %}
        icon_template: >-
          {% if states('sensor.watts_lava_e_seca')|float > 3 %}
            mdi:dishwasher
          {% else %}
            mdi:washing-machine
          {% endif %}

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.

1 Curtida

Seria interessante aproveitar o sensor de fluxo de água (que já está mensurando o consumo de água específico da máquina) para auxiliar na percepção de qual estágio a máquina está realizando.

Eu não tenho sensor de fluxo de água, mas é uma boa ideia. Como vou morar em apartamento e já vi que é inviável colocar um sensor para o apartamento inteiro, pelo menos na máquina de lavar seja viável.

1 Curtida

Oi Douglas, dúvida de iniciante. Sua maquina é smart? Ou pelo que entendi vc esta monitorando através do consumo de energia? Outra dúvida se é com o consumo de energia, o que vc esta usando pra monitorar?

Obrigado

Não é smart. Sim, pelo consumo de energia. Uso o Sonoff Pow R2.

Casa vez mais me surpreendo com o poder do HA, os componentes, integrações e imaginação da comunidade para resolver os problemas de domótica :clap:t3::clap:t3::clap:t3:

Caramba, e eu aqui quebrando a cabeça com a placa controladora para ler os leds de alerta de cada serviço e vocês vem com essa de POW R2. Já comprei até sensor de vibração para monitorar a vibração da maquina de acordo com o serviço…

Vou largar tudo e POW R2 :partying_face: :nerd_face:

1 Curtida

Ola Sou novo no assunto mas cada dia cada relato que vejo me apaixono cada vez mais
Parabéns pelos projetos
Como e ótimo ler seus relatos e viajar na imaginação do que e possível fazer