@Clemalex
Pour l’automatisation qui alerte :
automation:
- alias: automatisation_sauvegarde_calibration_ph
initial_state: 'on'
trigger:
platform: state
entity_id: input_boolean.sauvegarde_calib_ph
from: 'off'
to: 'on'
action:
- service: input_text.set_value
data_template:
entity_id: input_text.date_dernier_calibrage_ph
value: "{{states.input_boolean.calib_ph.last_changed}}"
- service: input_boolean.turn_off
entity_id: input_boolean.calib_ph
- service: input_boolean.turn_off
entity_id: input_boolean.sauvegarde_calib_ph
- alias: notif_Calib_ph
initial_state: 'on'
trigger:
platform: time_pattern
days : "/1"
hours: "20"
condition:
condition: and
conditions:
- condition: template
value_template: "{{states('sensor.jours_depuis_calibrage_ph') | int > states('input_number.interval_jour_calib')| int}}"
- condition: state
entity_id: person.raph
state: home
action:
service: notify.iosdevice
data_template:
title: "Calibration à faire !"
message: "Il faut calibrer le pH metre. La derniere calibration remonte à {{states('sensor.jours_depuis_calibrage_ph') | int }} jours."
data:
push:
thread-id: "alerte_calibration-group"
Voici les deux automatisations. Je vais tout rajouter au projet PH mètre dès que j’aurais fini les tests.
-
La première sert à enregistrer la valeur dans l’
input_text
et me remets lesinputs_boolean
en off.
Le premier boolean me sert à afficher une « conditional card » qui laisse apparaitre le menu de calibration.
Le second permet le déclenchement de l’automatisation qui enregistre en texte, referme le menu et revient lui même à sa position initiale. (il me reste encore a sauvegarder les valeurs de calibration pour les différentes solution tampon, mais c’est le même topo / date du calibrage) -
La seconde encore en test concerne l’alerte en notification iOs sur tout mes devices:
Tout les jours la condition est testée à 20h (c’est ce trigger qui est en test).
Si les conditions sont réunies à savoir :
- ma présence
- un intervalle de calibration (sensor
se basant sur l’input_text
sauvegardé) plus grand que celui définie par uninput_number
Une notification iOS est envoyée.
Voilà.
Comme dit, je prévois d’intégrer le tout dans le projet PH mètre.
Le code en intégral pour cette partie sous forme d’un package.yaml qu’il me faudra fuisonner avec celui du pH mètre :
#a rajouter phmetre.yaml
########################
input_boolean:
sauvegarde_calib_ph:
name: "Save Calib pH"
########################
input_number:
interval_jour_calib:
name: Intervale entre 2 calibrations
min: 1
max: 100
step: 1
unit_of_measurement: jours
mode: box
########################
input_text:
date_dernier_calibrage_ph: #Contient la date du dernier changement d'état du capteur surveillé
name: date_dernier_calibrage_ph
#########################
sensor:
- platform: template
sensors:
jours_depuis_calibrage_ph: #nombre de jours / input_text sauvegardé
friendly_name: "Jours passés calibration"
unit_of_measurement: "Jour(s)"
icon_template: mdi:timer-sand
value_template: >-
{{((as_timestamp(now()) - as_timestamp(states('input_text.date_dernier_calibrage_ph')))/86400) | int}}
########################
automation:
- alias: automatisation_sauvegarde_calibration_ph
initial_state: 'on'
trigger: #sauvegarde input_text, réinitialisation input_boolean, fermeture du menu
platform: state
entity_id: input_boolean.sauvegarde_calib_ph
from: 'off'
to: 'on'
action:
- service: input_text.set_value
data_template:
entity_id: input_text.date_dernier_calibrage_ph
value: "{{states.input_boolean.calib_ph.last_changed}}"
- service: input_boolean.turn_off
entity_id: input_boolean.calib_ph
- service: input_boolean.turn_off
entity_id: input_boolean.sauvegarde_calib_ph
- alias: notif_Calib_ph
initial_state: 'on'
trigger: #notification ts les x jours si présent et valeur dépassée
platform: time_pattern
# days : "/1"
hours: "/1"
condition:
condition: and
conditions:
- condition: template
value_template: "{{states('sensor.jours_depuis_calibrage_ph') | int > states('input_number.interval_jour_calib')| int}}"
- condition: state
entity_id: person.raph
state: home
action:
service: notify.iosdevice
data_template:
title: "Calibration à faire !"
message: "Il faut calibrer le pH metre. La derniere calibration remonte à {{states('sensor.jours_depuis_calibrage_ph') | int }} jours."
data:
push:
thread-id: "alerte_calibration-group"