Bonjour,
J’ai mis une prise sur ma machine à laver, afin de suivre sa consommation électrique. Le but ici est de détecter quand ma machine est terminé, et de recevoir une notification sur mon téléphone.
D’aprés le suivi que j’ai, je peux me baser sur le fait que si la consommation est supérieur a 10W pendant au moins 10min (pour éviter d’avoir des fausses alertes), alors mon sensor serait ON
inversement, si la conso est inférieur a 10W pendant au moins 10min, alors mon sensor serait OFF.
Grâce a ceci, je pourrais faire ensuite une automatisation pour m’envoyer une notification, mais aussi faire une vignette pour mon dashboard.
Rien de bien compliqué jusque là
mais, je galère un peu sur la mise en place
J’ai ajouté ceci dans mon configuration.yaml
template:
- binary_sensor:
- name: "Statut Lave-linge"
unique_id: "binary_sensor_Statut_Lave-linge"
state: >
{{ states('sensor.lave_linge_consommation_actuelle')|float > 10 }}
delay_on: '00:10:00'
delay_off: '00:10:00'
Le soucis est que l’état de mon sensor reste sur unknown.
Si j’enlève les delay, par contre tout fonctionne bien !
Il me semblais avoir lu qu’il fallait faire comme ceci sur un autre poste sur le forum, mais ça ne semble pas fonctionner chez moi
J’imagine que quelqu’un ici dois avoir la solution
Merci par avance pour votre aide !
merci
salutations
Ma configuration
System Information
version
core-2024.5.5
installation_type
Home Assistant OS
dev
false
hassio
true
docker
true
user
root
virtualenv
false
python_version
3.12.2
os_name
Linux
os_version
6.6.29-haos
arch
x86_64
timezone
Europe/Paris
config_dir
/config
Home Assistant Community Store
GitHub API
ok
GitHub Content
ok
GitHub Web
ok
GitHub API Calls Remaining
5000
Installed Version
1.34.0
Stage
running
Available Repositories
1393
Downloaded Repositories
5
HACS Data
ok
Home Assistant Cloud
logged_in
false
can_reach_cert_server
ok
can_reach_cloud_auth
ok
can_reach_cloud
ok
Home Assistant Supervisor
host_os
Home Assistant OS 12.3
update_channel
stable
supervisor_version
supervisor-2024.05.1
agent_version
1.6.0
docker_version
25.0.5
disk_total
30.8 GB
disk_used
3.9 GB
healthy
true
supported
true
board
ova
supervisor_api
ok
version_api
ok
installed_addons
Terminal & SSH (9.14.0), File editor (5.8.0), Matter Server (6.0.0)
Dashboards
dashboards
4
resources
3
views
7
mode
storage
Recorder
oldest_recorder_run
30 mai 2024 à 10:51
current_recorder_run
5 juin 2024 à 15:34
estimated_db_size
20.76 MiB
database_engine
sqlite
database_version
3.44.2
Sonoff
version
3.7.3 (e240aaf)
cloud_online
23 / 35
local_online
17 / 17
___
Salut
Tu te compliques la vie, il y a les blueprints!
Sinon essaie ça :
template:
- binary_sensor:
- name: "Statut Lave-linge"
unique_id: "binary_sensor_Statut_Lave-linge"
state: >
{{ (states('sensor.lave_linge_consommation_actuelle')|float(0)) > 10 }}
delay_on: '00:10:00'
delay_off: '00:10:00'
1 « J'aime »
Sinon utiliser le trigger avec la notion de « temps » :
et ajouter une condition qui pourrait être une tranche horaire ou un imput boolean que tu crées grâce au helper depuis l’interface web de HA qui s’active (par une autre automation) si par exemple, tu dépasses le seuil de 10w
exemple
machine démarre dépasse les 10W de conso, l’automatisation détecte la conso au-dessus de 10W et donc active l’input-boolean = ON et quand ta machine descend en dessous de 10W pendant 10 min alors l’autre automatisation détecte et va vérifier si la condition input_boolean = ON, alors, je notifie que la machine est terminée
Oui, 2 ou 3 automatisations est le plus simple.
Ci-dessous ce que j’ai pour la charge de ma voiture, y compris les notifications de fin et de consommation.
Automatisation n°1:
- id: '1681401623013'
alias: 'Charge voiture : 1 - Start'
description: Charge voiture start
trigger:
- platform: numeric_state
entity_id: sensor.tz3000_2putqrmw_ts011f_active_power_2
above: 2000
for:
hours: 0
minutes: 1
seconds: 0
condition:
- condition: state
entity_id: input_boolean.charge_voiture_cycle
state: 'off'
action:
- service: utility_meter.calibrate
data:
value: '0'
target:
entity_id: sensor.charge_voiture_power_cycle
- service: input_boolean.turn_on
data: {}
target:
entity_id: input_boolean.charge_voiture_cycle
mode: single
Automatisation n°2:
- id: '1681401766283'
alias: 'Charge voiture : 2 - Fin'
description: Charge voiture Fin
trigger:
- platform: numeric_state
entity_id: sensor.tz3000_2putqrmw_ts011f_active_power_2
below: 10
for:
hours: 0
minutes: 5
seconds: 0
condition:
- condition: state
entity_id: input_boolean.charge_voiture_cycle
state: 'on'
action:
mode: restart
Automatisation n°3:
- id: '1681401962227'
alias: 'Charge voiture : 3 - Fin, notifications'
description: Charge voiture Fin, notifications
trigger:
- platform: numeric_state
entity_id: sensor.tz3000_2putqrmw_ts011f_active_power_2
below: 10
for:
hours: 0
minutes: 10
seconds: 0
condition:
- condition: state
entity_id: input_boolean.charge_voiture_cycle
state: 'on'
action:
- service: input_boolean.turn_off
data: {}
target:
entity_id: input_boolean.charge_voiture_cycle
- service: notify.mobile_app_sm_s906b
data:
title: Charge voiture terminée
message: La charge s'est déroulée de {{ ((state_attr('automation.charge_voiture_start_2','last_triggered'))
| as_local).strftime("%Hh%M") }} à {{ now().strftime("%Hh%M") }}, coût {{
((states('sensor.charge_voiture_power_cycle') | float(default=0) * float(states('input_number.prix_du_kwh_d_electricite')))) |
round(2) }}€
- service: persistent_notification.create
data:
title: Charge voiture terminée
message: "La charge s'est déroulée de {{ ((state_attr('automation.charge_voiture_start_2','last_triggered'))
| as_local).strftime(\"%Hh%M\") }} à {{ now().strftime(\"%Hh%M\") }} \nDurée
{{ float((((state_attr('automation.charge_voiture_fin','last_triggered'))
- (state_attr('automation.charge_voiture_start_2','last_triggered'))).seconds
/ 3600 )) | int }}h {{float(((((state_attr('automation.charge_voiture_fin','last_triggered'))
- (state_attr('automation.charge_voiture_start_2','last_triggered'))).seconds
% 3600 )/60 ))| round(0) }}min \nLe cycle a consommé {{ states('sensor.charge_voiture_power_cycle')
}}kWh, soit {{ ((states('sensor.charge_voiture_power_cycle') | float(default=0)
* float(states('input_number.prix_du_kwh_d_electricite')))) | round(2) }}€\n"
- continue_on_error: true
service: notify.consommations
data:
message: '{{ now().strftime("%d/%m/%Y") }} ; Voiture ; {{ ((state_attr(''automation.charge_voiture_start_2'',''last_triggered''))
| as_local).strftime("%Hh%M") }} - {{ now().strftime("%Hh%M") }} ; {{ (((state_attr(''automation.charge_voiture_fin'',''last_triggered''))
- (state_attr(''automation.charge_voiture_start_2'',''last_triggered''))).seconds
/ 3600 )| int }}h{{((((state_attr(''automation.charge_voiture_fin'',''last_triggered''))
- (state_attr(''automation.charge_voiture_start_2'',''last_triggered''))).seconds
% 3600 )/60 )| round }}m ; {{ states(''sensor.charge_voiture_power_cycle'')
}}kWh ; {{ ((states(''sensor.charge_voiture_power_cycle'') | float(default=0)
* float(states(''input_number.prix_du_kwh_d_electricite'')))) | round(2)
}} EUR'
mode: single
Voilà @matthieuC dans l’exemple de @Gilles2 il y a 3 automatisations distinctes
1 « J'aime »
Merci bcp, avec toute cette docs et ces infos je devrais pouvoir me débrouiller
je vais regarder mais ça devrais aller !
merci bcp pour votre aide et vos réponses !
c’est grandement apprécié
merci
1 « J'aime »
barto_95:
machine démarre dépasse les 10W de conso, l’automatisation détecte la conso au-dessus de 10W et donc active l’input-boolean = ON et quand ta machine descend en dessous de 10W pendant 10 min alors l’autre automatisation détecte et va vérifier si la condition input_boolean = ON, alors, je notifie que la machine est terminée
C’est exactement ainsi que j’ai procédé simple et efficace car ça permet de contrer les pics de consommation, il faut bien regarder comment se décompose un cycle type
En gros j’ai un booléen que j’active lorsque le pic de consommation arrive et donc lorsque le pic vas se reproduire vu que le cycle est déjà sur on alors on ne notifie pas sinon à chaque pic tu as une notification et lorsque le cycle se termine tu repasses le booléen a off
Mes 2 automations
alias: machine à laver démarrage
description: ""
trigger:
- type: power
platform: device
device_id: 5a6124afb763bed7fa8c25aaa11097fc
entity_id: d4e6585c93459d3e50e96ee6821d661a
domain: sensor
above: 500
for:
hours: 0
minutes: 0
seconds: 20
condition:
- condition: state
entity_id: input_boolean.machine_a_laver
state: "off"
action:
- service: notify.mobile_app_kb2003
data:
title: Machine à laver
message: Cycle commencé "{{ states('sensor.date_short_et_heure') }}"
- service: input_boolean.turn_on
target:
entity_id: input_boolean.machine_a_laver
data: {}
mode: single
alias: machine à laver fin de cycle
description: ""
trigger:
- type: power
platform: device
device_id: 5a6124afb763bed7fa8c25aaa11097fc
entity_id: d4e6585c93459d3e50e96ee6821d661a
domain: sensor
for:
hours: 0
minutes: 1
seconds: 0
below: 10
condition:
- condition: state
entity_id: input_boolean.machine_a_laver
state: "on"
action:
- service: notify.mobile_app_kb2003
data:
title: Machine à laver
message: Cycle terminé "{{ states('sensor.date_short_et_heure') }}"
- service: input_boolean.turn_off
target:
entity_id: input_boolean.machine_a_laver
data: {}
mode: single
1 « J'aime »