Skip to content

Electrodomésticos inteligentes

Después de todo el trabajo hecho en los capítulos anteriores dónde instalamos Tasmota en un un Sonoff Pow R2, lo configuramos y creamos los sensores, hoy acabamos esta série con la creación de automatizaciones que van a dotar de inteligencia artificial a nuestros electrodomésticos.

Vamos a empezar por crear un input_selectet. Este código lo pondreamos al archivo input_selects.yaml.

#### LAVAPLATOS ####

  lavaplatos_status:
    name: Estado del lavaplatos
    options:
     - "Apagado"
     - "Lavando"
     - "Espera"
     - "Finalizado"
    initial: "Apagado"
    icon: mdi:dishwasher  

Ahora al archivo timers.yaml vamos a crear un temporizador.

#### LAVAPLATOS ####
  fin_lavaplatos:
    duration: '00:30:00'

Y ahora nos vamos al archivo automations.yaml dónde crearemos las automatizaciones.

- id: Lavaplatos espera
  alias: Lavaplatos modo espera
  trigger:
  - below: '2'
    entity_id: sensor.sonofflavaplatos_energy_power
    for: 0:01:00
    platform: numeric_state
  condition:
  - condition: state
    entity_id: input_select.lavaplatos_status
    state: Lavando
  - condition: state
    entity_id: device_tracker.life360_albert_barnosell_i_jorda
    state: not_home
  - condition: state
    entity_id: device_tracker.life360_denise
    state: not_home
  action:
  - data:
      option: Espera
    entity_id: input_select.lavaplatos_status
    service: input_select.select_option
  - data:
      message: El lavaplatos ya terminó. Pasaré a modo espera y cuando llegues a casa
        te recordaré que lo vacíes.
    service: notify.telegram
- id: Lavaplatos inicio dia
  alias: Lavaplatos inicio dia
  trigger:
  - above: '2'
    entity_id: sensor.sonofflavaplatos_energy_power
    platform: numeric_state
  condition:
  - condition: state
    entity_id: input_select.lavaplatos_status
    state: Apagado
  - condition: state
    entity_id: input_boolean.no_molestar
    state: 'off'
  action:
  - data:
      option: Lavando
    entity_id: input_select.lavaplatos_status
    service: input_select.select_option
  - data:
      entity_id: media_player.grupo_de_dia
      language: es
      message: El lavaplatos ya ha empezado. En cuanto termine, te aviso para que
        lo vacíes.
    service: tts.google_translate_say
  - data:
      message: El lavaplatos ya ha empezado. En cuanto termine, te aviso para que
        lo vacíes.
    service: notify.telegram
- id: Lavaplatos recordatorio dia
  alias: Lavaplatos informa final de dia
  trigger:
  - entity_id: input_select.lavaplatos_status
    platform: state
    to: Finalizado
  - event_data:
      entity_id: timer.fin_lavaplatos
    event_type: timer.finished
    platform: event
  condition:
  - condition: state
    entity_id: input_boolean.no_molestar
    state: 'off'
  action:
  - entity_id: timer.fin_lavaplatos
    service: timer.start
  - data:
      entity_id: media_player.grupo_de_dia
      language: es
      message: El lavaplatos ya terminó. Tienes que vaciarlo para que la cocina no
        se acumule. Te lo recordaré en media hora, a no ser que me avises de que ya
        lo has hecho.
    service: tts.google_translate_say
  - data:
      message: El lavaplatos ya terminó. Tienes que vaciarlo para que la cocina no
        se acumule. Te lo recordaré en media hora, a no ser que me avises de que ya
        lo has hecho.
    service: notify.telegram
- id: Lavaplatos inicio noche
  alias: Lavaplatos inicio noche
  trigger:
  - above: '2'
    entity_id: sensor.sonofflavaplatos_energy_power
    platform: numeric_state
  condition:
  - condition: state
    entity_id: input_select.lavaplatos_status
    state: Apagado
  - condition: state
    entity_id: input_boolean.no_molestar
    state: 'on'
  action:
  - data:
      option: Lavando
    entity_id: input_select.lavaplatos_status
    service: input_select.select_option
  - data:
      message: El lavaplatos ya ha empezado. En cuanto termine, te aviso para que
        lo vacíes.
    service: notify.telegram
- id: Lavaplatos recordatorio noche
  alias: Lavaplatos informa final de noche
  trigger:
  - entity_id: input_select.lavaplatos_status
    platform: state
    to: Finalizado
  - event_data:
      entity_id: timer.fin_lavaplatos
    event_type: timer.finished
    platform: event
  condition:
  - condition: state
    entity_id: input_boolean.no_molestar
    state: 'on'
  action:
  - data:
      option: Apagado
    entity_id: input_select.lavaplatos_status
    service: input_select.select_option
  - data:
      message: El lavaplatos terminó de madrugada. Por la mañana acuérdate de guardar
        los platos. Lo he dejado en modo apagado
    service: notify.telegram
  - delay: 00:02:00
  - data: {}
    entity_id: switch.sonofflavaplatos
    service: switch.turn_off
  - data:
      message: ¡Corriente eléctrica desconectada del lavaplatos!
    service: notify.telegram
- id: Lavaplatos finalizada
  alias: Lavaplatos finalizado
  trigger:
  - below: '2'
    entity_id: sensor.sonofflavaplatos_energy_power
    for: 0:01:00
    platform: numeric_state
  condition:
  - condition: or
    conditions:
    - condition: state
      entity_id: device_tracker.life360_albert
      state: home
    - condition: state
      entity_id: device_tracker.life360_denise
      state: home
  - condition: state
    entity_id: input_select.lavaplatos_status
    state: Lavando
  action:
  - data:
      option: Finalizado
    entity_id: input_select.lavaplatos_status
    service: input_select.select_option
- id: Lavaplatos fin espera
  alias: Lavaplatos esperando
  trigger:
  - entity_id: device_tracker.life360_albert
    platform: state
    to: home
  - entity_id: device_tracker.life360_denise
    platform: state
    to: home
  condition:
  - condition: state
    entity_id: input_select.lavaplatos_status
    state: Espera
  action:
  - data:
      option: Finalizado
    entity_id: input_select.lavaplatos_status
    service: input_select.select_option

Y para acabar, vamos a crear el script de finalizado. Lo copiaremos al archivo scripts.yaml

'1465990':
  alias: Fin lavaplatos
  sequence:
  - data:
      option: Apagado
    entity_id: input_select.lavaplatos_status
    service: input_select.select_option
  - entity_id: timer.fin_lavaplatos
    service: timer.cancel
  - delay: 00:00:10
  - data:
      entity_id: media_player.grupo_de_dia
      language: es
      message: Perfecto!
    service: tts.google_translate_say
  - data:
      message: Perfecto!
    service: notify.telegram
  - data: {}
    entity_id: switch.sonofflavaplatos
    service: switch.turn_off
  - data:
      message: ¡Corriente eléctrica desconectada del lavaplatos!
    service: notify.telegram

Mira el vídeo con todo el proceso completo

Sígueme en Youtube
Ajustes