Affichage temps sensor actif sur carte

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