Integración total de Lavadora con SonOff POW

Buenos días,

Este sencillo tutorial es muy útil para conocer los estados de la lavadora y recibir alertas de cuando acaba el programa. El truco de toda la info esta en el consumo por Watt en cada ciclo.

Tenemos que crear los siguientes elementos:

  • Input_Select
  • Switch
  • Sensor
  • Automation
  • Grupos
  • Customized

Input_Select:

Esto es un selector que solo nos va a mostrar el ciclo en el que la lavadora se encuentra en el futuro automation.

estado_lavadora:
  name: Estado Lavadora
  options:
    - "Lavadora Apagada"
    - "Llenado (Primero)"
    - "Lavando"
    - "Drenando (Primero)"
    - "Centrifugado"
    - "Llenado (Segundo)"
    - "Centrifugado"
    - "Drenado Final"
    - "Centrifugado Final"
    - "Parada"
  initial: Parada
  icon: mdi:washing-machine

Switch:

El switch del SonOff POW

- platform: mqtt
  name: "Lavadora"
  state_topic: "stat/pow01/POWER"
  command_topic: "cmnd/pow01/POWER"
  qos: 1
  payload_on: "ON"
  payload_off: "OFF"
  retain: false

Sensor. Esto es para mostrar en que estado se encuentra la lavadora y cuanto ha durado el tiempo del último lavado. Funcionan bien pero generan errores en el log(algo en la sintaxis que no veo...) asi que lo tengo desactivado esto en mi configuración ahora mismo.

- platform: template
  sensors:
  estado_lavadora:
  friendly_name: 'Estado Lavadora'
  value_template: '{{ options.input_select.estado_lavadora.options }}'

- platform: template
  sensors:
  contador_lavadora:
  friendly_name: "Tiempo de Lavado"
  value_template: >-
  {% if is_state('input_boolean.contador_lavadora', 'off') %}
  {{ relative_time(states.automation.lavadora_en_marcha.attributes.last_triggered) }}
  {% else %}
  {{ states('sensor.contador_lavadora') }}
  {% endif %}

Automation. La chicha!!

- alias: Interruptor Lavadora ON
  initial_state: True
  # hide_entity: True
  trigger:
    platform: state
    entity_id: input_boolean.interruptor_lavadora
    from: 'off'
    to: 'on'
  action:
    - service: switch.turn_on
      entity_id: switch.lavadora

- alias: Interruptor Lavadora OFF
  initial_state: True
  # hide_entity: True
  trigger:
    platform: state
    entity_id: input_boolean.interruptor_lavadora
    from: 'on'
    to: 'off'
  action:
    - service: switch.turn_off
      entity_id: switch.lavadora

- id: 'lavadora_parada'
  initial_state: True
  alias: 'Lavadora Parada'
  trigger:
    - entity_id: sensor.consumo_actual_pow01
      platform: numeric_state
      below: 8
      for:
        seconds: 45
  condition:
    condition: and
    conditions:
    - condition: state
      entity_id: 'input_boolean.contador_lavadora'
      state: 'on'
  action:
    - service: input_select.select_option
      data:
        entity_id: input_select.estado_lavadora
        option: 'Parada'
    - service: notify.telegram
      data:
        message: "La lavadora ha terminado."
   - service: input_boolean.turn_off
      entity_id: input_boolean.contador_lavadora

- id: 'lavadora_en_marcha'
  initial_state: True
  alias: 'Lavadora en Marcha'
  trigger:
    - entity_id: sensor.consumo_actual_pow01
      platform: numeric_state
      above: 10
      for:
      seconds: 30
  condition:
    condition: and
    conditions:
    - condition: state
      entity_id: 'input_boolean.contador_lavadora'
      state: 'off'

  action:
    - service: input_select.select_option
      data:
        entity_id: input_select.estado_lavadora
        option: 'Lavando'
    - service: notify.telegram
      data:
        message: "La lavadora ha empezado."
    - service: input_boolean.turn_on
      entity_id: input_boolean.contador_lavadora
    - service: input_number.set_value
      data_template:
        entity_id: sensor.contador_lavadora
        value: 0

- id: 'lavadora_off'
  alias: 'Lavadora y POW Off'
  trigger:
    - entity_id: switch.lavadora
      platform: state
      to: 'off'
  action:
    - service: input_select.select_option
      data:
        entity_id: input_select.lavadora
        option: Lavadora Apagada

- id: 'auto_apagado_lavadora'
  alias: 'Apagaro pow lavadora tras una hora de inactividad'
  trigger:
    - entity_id: input_boolean.contador_lavadora
      platform: state
      to: 'off'
      for:
        hours: 1
  condition:
    condition: and
    conditions:
      - condition: state
        entity_id: 'switch.lavadora'
        state: 'on'
  action:
    - service: switch.turn_off
      entity_id: switch.lavadora
    - service: input_select.select_option
      data:
        entity_id: input_select.washer_status
        option: Lavadora Apagada

Como veis el truco es jugar con los Watt que da el POW y concer cuanto consume cada programa, yo tengo controlado cuando empieza y cuando apaga y luego que se corte la corriente del POW pero podeis controlar ciclo por ciclo averiguando el consumo en Watt de los mismos.

GRUPOS

enchufes:
  name: Enchufes
  icon: mdi:power-plug
  view: yes
  entities:
    - group.enchufes_terracilla

enchufes_terracilla:
  name: Enchufes Terracilla
  control: hidden
  icon: mdi:ceiling-light
  view: no
  entities:
    - switch.lavadora

CUSTOMIZED. para esto utilizamos CustomUI

switch.lavadora:
  friendly_name: Estado Lavadora
  icon: mdi:washing-machine
  custom_ui_state_card: state-card-custom-ui
  # show_last_changed: true
  confirm_controls_show_lock: true
  extra_data_template:
      - "Consumo Actual: ${entities['sensor.consumo_actual_pow01'].state} W"
      - "Consumo Hoy: ${entities['sensor.consumo_hoy_pow01'].state} kWh"
      - "Consumo Ayer: ${entities['sensor.consumo_ayer_pow01'].state} kWh"
      - "Consumo Total: ${entities['sensor.consumo_total_pow01'].state} kWh"
      - "Consumo Voltage: ${entities['sensor.voltage_pow01'].state} V"
      - "Consumo Corriente: ${entities['sensor.corriente_pow01'].state} A"
      - "Consumo Factor: ${entities['sensor.factor_pow01'].state}"
     # - "Estado Lavadora: ${entities['sensor.estado_lavadora'].state}"

Si quieres conocer otros artículos parecidos a Integración total de Lavadora con SonOff POW puedes visitar la categoría Generales.

  1. nasked dice:

    Hola Ruben:
    El otro día estaba en el grupo de telegram con gubenote con este tema. Acabo de recibir el POW y estoy precisamente con la lavadora entre manos. Tengo algunas dudas que igual me puedes resolver. En primer lugar quería preguntarte si tu POW lo tienes Tasmoteado o con Espurna, ya que algunos de los parámetros que he visto en el código no me suenan. Yo lo tengo con Espurna. Luego el input select que creas imagino que es un yaml pero como automation?. Bueno ya me vas contando, de todas formas si no por aquí, nos vemos en el grupo de telegram. Un saludo.

    1. Rubenzori86 dice:

      Hola! Esta con tasmota efectivamente. El input select en los automation es para mostrar los distintos estados por los que la lavadora va pasando a modo de sensor.

      Cualquier duda me dices!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir