Mon problème
Bonjour,
J’ai une carte avec un template sensor sur l’utilisation de l’eau qui m’indique son état (soit désactivé, soit une valeur qui fluctue)
J’aimerai remplacer cette information par le temps en seconde ou le sensor n’a pas été désactivé. Ce qui correspondrait au temps de la dernière douche (utilisation de l’eau).
Lorsque je vais sur l’historique, je retrouve ces informations mais je souhaiterais les retrouver de manière plus lisible.
Je ne sais pas trop ce qu’il est nécessaire de fournir.
J’ai copié tout mon code ici: all codes HA cumulus - Pastebin.com
Les deux inputs sont bien sur présent.
input_boolean.eau_principale_on_off
input_number.volume_de_depart_debit
Merci pour votre aide
Ma configuration
System Information
version |
core-2022.10.5 |
installation_type |
Home Assistant Container |
dev |
false |
hassio |
false |
docker |
true |
user |
root |
virtualenv |
false |
python_version |
3.10.5 |
os_name |
Linux |
os_version |
4.4.180+ |
arch |
x86_64 |
timezone |
UTC |
config_dir |
/config |
Home Assistant Community Store
GitHub API |
ok |
GitHub Content |
ok |
GitHub Web |
ok |
GitHub API Calls Remaining |
4982 |
Installed Version |
1.28.3 |
Stage |
running |
Available Repositories |
1143 |
Downloaded Repositories |
2 |
Home Assistant Cloud
logged_in |
false |
can_reach_cert_server |
ok |
can_reach_cloud_auth |
ok |
can_reach_cloud |
ok |
Dashboards
dashboards |
1 |
resources |
0 |
views |
3 |
mode |
storage |
Recorder
oldest_recorder_run |
2 novembre 2022 à 12:49 |
current_recorder_run |
9 novembre 2022 à 15:07 |
estimated_db_size |
132.40 MiB |
database_engine |
sqlite |
database_version |
3.38.5 |
Salut,
regardes cette intégration, ça devrait en partie faire ce que tu veux.
Sinon, si ce n’est pas ok, ce que tu as besoin c’est une entité dont la valeur est une soustraction entre 2 datetime. (now - date du dernier changement)
Merci AlexHass, je vais essayer de mettre ça en place.
Bonjour, je viens d’essayer cela…
# Loads default set of integrations. Do not remove.
default_config:
sensor:
- platform: template
sensors:
volume_derniere_utilisation:
friendly_name: Volume d'eau utilisé
unit_of_measurement: 'L'
value_template: >
{{ (states('sensor.utilisation_d_eau_total') | float - states('input_number.volume_de_depart_debit') | float) | round(2, 'common') }}
cout_de_la_derniere_douche:
friendly_name: Coût de la dernière douche
unit_of_measurement: '$'
value_template: >
{{ (states('sensor.volume_derniere_utilisation') | float * 0.01 | float) | round(2, 'common') }}
- platform: history_stats
name: temps douche test
entity_id: sensor.volume_derniere_utilisation
state: "on"
type: time
start: "{{ now().replace(hour=0, minute=0, second=0) }}"
end: "{{ now() }}"
template:
- binary_sensor:
- name: Débit d'eau (ON/OFF)
state: "{{ states('sensor.debit_d_eau_total_instantane') | float(0) > 0 }}"
- sensor:
- name: Débit d'eau instantané ou OFF
state: >
{% set current_liters = states('sensor.debit_d_eau_total_instantane') | float(0) %}
{% if current_liters > 0 %}
{{ this.state | float(0) + current_liters if this.state is defined else 0 }}
{% else %}
off
{% endif %}
- sensor:
- name: Durée d'écoulement de l'eau principale TEST
unit_of_measurement: "sec"
state: >
{% set t = this.state if states('input_boolean.eau_principale_on_off') == 'off' else now().timestamp() - states.input_boolean.eau_principale_on_off.last_changed.timestamp() %}
{{ t | round(2, 'common') }}
Voici mon code entier au dessus.
(j’entre en détail ci dessous)
Avec l’intégration history_stats, la valeur reste à zéro,
peut-être parce que ça fonctionne en heure, et vu que je souhaite des secondes,
pas évident d’avoir un résultat visible
- platform: history_stats
name: temps douche test
entity_id: sensor.volume_derniere_utilisation
state: "on"
type: time
start: "{{ now().replace(hour=0, minute=0, second=0) }}"
end: "{{ now() }}"
Avec cette soustraction d’état, mon sensor me rapportant la valeur en seconde reste indisponible.
- sensor:
- name: Durée d'écoulement de l'eau principale TEST
unit_of_measurement: "sec"
state: >
{% set t = this.state if states('input_boolean.eau_principale_on_off') == 'off' else now().timestamp() - states.input_boolean.eau_principale_on_off.last_changed.timestamp() %}
{{ t | round(2, 'common') }}
J’avoue être perdu malgré toute l’aide que j’ai eu.
Merci par avance si quelqu’un arrive à m’aiguiller d’avantage.
Bonjour
J’ai pris une autre alternative qui s’est offerte à moi avec la mise à jour de 11.2022 avec l’ajout de energy / water.
Merci