On utilise souvent des prises commandées uniquement pour mesurer la consommation de certains appareils. Ces prises sont toujours en position ON. Ces prises, si elles ne sont pas de trop mauvaise qualité un mécanisme de sécurité intégré qui les passent OFF en cas de surtension ou de surcharge. Et dans la pratique ça arrive parfois et on constate plus tard que le lave linge ou le lave vaisselle s'est arrêté, ou pire dans le cas d'un congélateur.
Pour palier à cet inconvénient on va créer une automation qui va réarmer la prise après quelques minutes en OFF. Jusque là c'est simple, mais il se peut également que le problème soit plus grave et qu'il ne faille pas forcer indéfiniment ce réarmement automatique. Etant donné qu'on ne dispose généralement pas d'information sur la cause de ce passage en sécurité on va considérer qu'au bout de "n" tentatives sur un temps donné on ne réarme plus. Pour ça on va utiliser des compteurs (à créer avec un minimum à 0 et un maximum à 10) et on fera un reset de ceux-ci toutes les nuits...
J'ai fixé ici arbitrairement à 5 le nombre de réarmements possibles.
Attention : Je vous explique ici comment j'ai fait, mais un risque existe toujours et la mise en œuvre de cette solution est à vos risques (et périls). Je me dégage ainsi de toute responsabilité.
On va faire ça avec une seule automation que j'ai voulue la plus concise et qui servira également à notifier :
automation:
- id: '2bd0ertyyf-2687-45f98f-aed0-to-off'
alias: "Notify Plug Off"
description: "Notification mise en sécurité des prises"
mode: single
trigger:
- platform: state
entity_id: switch.bw_1
to: "off"
id: "Lave Vaisselle"
- platform: state
entity_id: switch.bw_2
to: "off"
id: "Lave Linge"
- platform: state
entity_id: switch.bw_3
to: "off"
id: "Seche Linge"
- platform: state
entity_id: switch.bw_4
to: "off"
id: "Congelateur"
- platform: time
at: "00:05:00"
id: "Reset"
condition: []
action:
- delay:
hours: 0
minutes: 5
seconds: 0
milliseconds: 0
- choose:
- conditions: "{{ trigger.id in ['Lave Vaisselle'] and states('counter.plug_bw_1') | int < 5 }}"
sequence:
- service: switch.turn_on
target:
entity_id: switch.bw_1
- service: counter.increment
target:
entity_id: counter.plug_bw_1
- service: notify.slack_hass_mondon
data:
message: "{{now().strftime('%d/%m/%Y, %H:%M:%S')}} > Réarmement n°{{ states('counter.plug_bw_1')}} du {{ trigger.id }}"
- conditions: "{{ trigger.id in ['Lave Linge'] and states('counter.plug_bw_2') | int < 5 }}"
sequence:
- service: switch.turn_on
target:
entity_id: switch.bw_2
- service: counter.increment
target:
entity_id: counter.plug_bw_2
- service: notify.slack_hass_mondon
data:
message: "{{now().strftime('%d/%m/%Y, %H:%M:%S')}} > Réarmement n°{{ states('counter.plug_bw_2')}} du {{ trigger.id }}"
- conditions: "{{ trigger.id in ['Seche Linge'] and states('counter.plug_bw_3') | int < 5 }}"
sequence:
- service: switch.turn_on
target:
entity_id: switch.bw_3
- service: counter.increment
target:
entity_id: counter.plug_bw_3
- service: notify.slack_hass_mondon
data:
message: "{{now().strftime('%d/%m/%Y, %H:%M:%S')}} > Réarmement n°{{ states('counter.plug_bw_3')}} du {{ trigger.id }}"
- conditions: "{{ trigger.id in ['Congelateur'] and states('counter.plug_bw_4') | int < 5 }}"
sequence:
- service: switch.turn_on
target:
entity_id: switch.bw_4
- service: counter.increment
target:
entity_id: counter.plug_bw_3
- service: notify.slack_hass_mondon
data:
message: "{{now().strftime('%d/%m/%Y, %H:%M:%S')}} > Réarmement n°{{ states('counter.plug_bw_4')}} du {{ trigger.id }}"
- conditions:
- condition: or
conditions:
- "{{ trigger.id in ['Lave Vaisselle'] and states('counter.plug_bw_1') | int >= 5 }}"
- "{{ trigger.id in ['Lave Linge'] and states('counter.plug_bw_2') | int >= 5 }}"
- "{{ trigger.id in ['Seche Linge'] and states('counter.plug_bw_3') | int >= 5 }}"
- "{{ trigger.id in ['Congelateur'] and states('counter.plug_bw_4') | int >= 5 }}"
sequence:
- service: notify.slack_hass_mondon
data:
message: "{{now().strftime('%d/%m/%Y, %H:%M:%S')}} > Problème avec le {{ trigger.id }}. On ne réarme plus, une vérification s'impose."
- conditions: "{{ trigger.id in ['Reset'] }}"
sequence:
- service: counter.reset
target:
entity_id:
- counter.plug_bw_1
- counter.plug_bw_2
- counter.plug_bw_3
- counter.plug_bw_4