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