Mon problème
Je cherche à créer une notification sans créer un spam pour alerter sur la production / surproduction afin de guider les membres du foyer sur la bonne utilisation (machine a laver, lave vaisselle, ect…)
Je cherche une solution afin de créer un système anti-spam:
ex: créer un sensor qui vérifie si la valeur à changer depuis la dernière notification (ex: par tranche de valeur de 100)
Pour l’instant j’ai juste un déclencheur qui me donne le nombre de watt actuellement produit.
et pour limiter le spam j’ai créer un détecteur de présence en binary.sensor.
- id: '1679590381458'
alias: '[NOTIFY] Production Solaire'
description: ''
trigger:
- platform: state
entity_id:
- sensor.ecu_current_power
condition:
- condition: state
entity_id: binary_sensor.presence_home
state: 'on'
for:
hours: 0
minutes: 2
seconds: 0
action:
- choose:
- conditions:
- condition: numeric_state
entity_id: sensor.ecu_current_power
above: 451
below: 600
sequence:
- service: notify.notify
data:
title: "\U0001F50CSurproduction solaire légère ~150wh"
message: 'Votre production solaire actuelle : {{ states(''sensor.ecu_current_power'')
}}wh \n '
- conditions:
- condition: numeric_state
entity_id: sensor.ecu_current_power
below: 450
value_template: ''
above: 400
sequence:
- service: notify.notify
data:
title: "\U0001F50CAutoconsomation sans surproduction"
message: 'Votre production solaire actuelle : {{ states(''sensor.ecu_current_power'')
}}wh \n '
- conditions:
- condition: numeric_state
entity_id: sensor.ecu_current_power
above: 601
below: 1300
value_template: ''
sequence:
- service: notify.notify
data:
title: "\U0001F50CSurproduction solaire moyenne ~300wh"
message: 'Votre production solaire actuelle : {{ states(''sensor.ecu_current_power'')
}}wh \n '
- conditions:
- condition: numeric_state
entity_id: sensor.ecu_current_power
above: 1300
sequence:
- service: notify.notify
data:
title: Surproduction solaire ~1KwH
message: 'Votre production solaire actuelle : {{ states(''sensor.ecu_current_power'')
}}wh \n '
mode: single
1 « J'aime »
Je m’auto répond avis au intéressé cela pourrait vous être fort utile 
Pour effectuer un anti-spam de notification quand il s’agit d’une valeur il faut dans mon cas:
- un sensor qui dispose d’un état avec un nombre
- un input_number (dans lequel on va inscrire la valeur du sensor ex: « 400 » watt de production)
- établir un comparatif des deux valeurs avec la différence souhaitée (ex: je veux être notifier si la différence est < ou > a 200 watt (dans mon cas)
- correctif (29/03/23): remise de la valeur input_number à 0 à 23h55.
Voici le input_number:
############################
### Input_number ###
############################
input_number:
ecu_r:
name: Ecu-R
initial: 0
min: 0
max: 10000 #valeur max qui est possible d'être comprise par l'input (oui j'ai mis un gros nombre pour être tranquille ne venait pas vous brancher chez moi je ne produit pas autant :p )
L’automatisation:
- id: '1679590381458'
alias: '[NOTIFY] Production Solaire'
description: ''
trigger:
- platform: state
entity_id:
- sensor.ecu_current_power
- platform: time
at: '23:55:00'
condition:
- condition: state
entity_id: binary_sensor.presence_home
state: 'on'
for:
hours: 0
minutes: 0
seconds: 0
- condition: or
conditions:
- condition: template
value_template: '{{ states(''sensor.ecu_current_power'')|float > states(''input_number.ecu_r'')|float
+ 200}}'
- condition: template
value_template: '{{ states(''sensor.ecu_current_power'')|float < states(''input_number.ecu_r'')|float
- 200}}'
action:
- choose:
- conditions:
- condition: numeric_state
entity_id: sensor.ecu_current_power
above: 451
below: 600
sequence:
- service: notify.notify
data:
title: ⚡Surproduction solaire légère
message: '⛅ Production solaire actuelle : {{ states(''sensor.ecu_current_power'')
}}wh \n '
- service: input_number.set_value
data_template:
value: '{{states(''sensor.ecu_current_power'') }}'
target:
entity_id: input_number.ecu_r
- conditions:
- condition: numeric_state
entity_id: sensor.ecu_current_power
below: 450
above: 400
sequence:
- service: notify.notify
data:
title: ⚡Autoconsomation sans surplus
message: "\U0001F325️ Production solaire actuelle : {{ states('sensor.ecu_current_power')
}}wh \\n"
- service: input_number.set_value
data_template:
value: '{{states(''sensor.ecu_current_power'') }}'
target:
entity_id: input_number.ecu_r
- conditions:
- condition: numeric_state
entity_id: sensor.ecu_current_power
above: 600
below: 1300
sequence:
- service: notify.notify
data:
title: ⚡Surproduction moyenne
message: "\U0001F324️ Production solaire actuelle : {{ states('sensor.ecu_current_power')
}}wh \\n "
- service: input_number.set_value
data_template:
value: '{{states(''sensor.ecu_current_power'') }}'
target:
entity_id: input_number.ecu_r
- conditions:
- condition: numeric_state
entity_id: sensor.ecu_current_power
above: 1300
sequence:
- service: notify.notify
data:
title: ⚡Surproduction importante
message: '☀️ Production solaire actuelle : {{ states(''sensor.ecu_current_power'')
}}wh \n '
- service: input_number.set_value
data_template:
value: '{{states(''sensor.ecu_current_power'') }}'
target:
entity_id: input_number.ecu_r
- conditions:
- condition: time
after: '23:55:00'
sequence:
- service: input_number.set_value
data:
value: 0
target:
entity_id: input_number.ecu_r
mode: single
Voila le partage avant tout 
Petit Bonus anti - Spam
#Si la notification à été envoyé il y a moins de x (minute, heure, ...) alors ne pas renvoyé de nouvelle notification
{{ now() - state_attr('automation.change_current_theme', 'last_triggered') > timedelta(hours=12) }}# A remplacer hours par minute et le 12 par le nombre de votre choix.
