Sauvegarder des valeurs d'entités avant qu'elles soient indisponibles

Bonjour à tous,
Donc mon problème est le suivant :
J’ai par exemple HASS.Agent sur une tablette Windows pour récupérer entre autres le % de batterie, et aussi HA s’est connecté à mon imprimante Canon pour indiquer les niveaux de remplissage des cartouches d’encre.
Problème, si les appareils sont éteints, j’ai juste indiqué sur des cartes « indisponibles ». Or j’aimerais pouvoir savoir si je dois recharger

Donc je voudrais pouvoir stocker ces valeurs dans une autre entité, pour pouvoir les présenter dans une carte, qui serait rafraîchie tous les X temps (ce sont pas des valeurs que j’ai besoin de suivre après tout à la seconde près, donc ça me dérangera pas d’avoir une valeur un peu fausse), et si l’appareil n’est plus dispo, la dernière valeur est conservée jusqu’au retour de l’être chéri.

J’ai cherché mais pas trouvé une telle solution, donc est-ce que quelqu’un peut m’aiguiller ?
Merci d’avance

Bonjour @SavanFlou
Peut-être une automatisation qui alimente un input_text !

action:
  - service: input_text.set_value
    data:
      value: "{{state_attr('climate.sejour','preset_mode')}}"
    target:
      entity_id: input_text.mem_preset_sejour

Bob

Alors merci mais juste pour être sûr d’avoir compris :

  • ‹ climate.sejour › est le nom de l’entité qu’on veut garder.
  • mem_preset_sejour est le nom du stockage à afficher dans la carte.

Ça se tente, encore merci !

1 « J'aime »

Alors, j’ai essayé mais y a un truc que je dois sûrement mal faire.
Donc mon code.

alias: Save % batterie Tablet
description: ""
trigger:
  - platform: time_pattern
    minutes: /5
action:
  - service: input_text.set_value
    data: >-
      value:
      {{state_attr('sensor.tablet_batterie_charge_remaining_percentage','preset_mode')}}
    target:
      entity_id: input_text.tablet_battery

Comme ça normalement, ça se ferait toutes les 5 minutes.
La valeur que je veux stocker est donc le sensor.tablet_batterie_charge_remaining_percentage (c’est HASS.Agent qui nomme…)
et donc je voudrais stocker dans le tablet_battery.

Mais rien ne se passe, et si je regarde dans l’historique d’exécution, il y a une erreur

J’ai aussi essayé en imput number, car ça va juste stocker un chiffre mais le résultat est le même.

J’ai regardé internet avec ce message d’erreur… mais j’ai juste trouvé des personnes indiquant avoir eu ce problème et expliquant comment corriger LEURs scripts sans expliquer l’origine du problème.

Bonsoir @SavanFlou

Te donne quoi dans les outils de dev, pas sur PC pour tester mais c’est une entité non ?
Je pourrai tester demain :wink:
Bob

Hello,pas plutôt
{{states('sensor.tablet_batterie_charge_remaining_percentage')}} vu que c’est un nombre ?

{{states('sensor.mi_9_battery_level')}} me donne 62, la charge actuelle de mon smartphone.

1 « J'aime »

Oui exactement c’est une entité créée par HASS.Agent, pardon je me rends compte que j’avais mal expliqué cela quand je me relis.

@ludoc: je vais tester ça… dès que j’aurais réinstallé HASS.Agent sur ma tablette. J’avais mis un nom générique au départ, donc je l’ai changé pour pouvoir retrouver plus facilement et depuis c’est compliqué, certaines entités sont retrouvées ou pas. Donc faut que je refasse tout ça.

Il semblerait que ce soit bon.
Donc si quelqu’un veut faire un truc du genre.

alias: Save % batterie quand éteinte
description: ""
trigger:
  - platform: time_pattern
    minutes: /5
action:
  - service: input_number.set_value
    data:
      value: "{{states('sensor.tablet_batterie_charge_remaining_percentage_2')}}"
    target:
      entity_id: input_number.tablet_battery

En faisant ça, mon % reste visible même quand la tablette est éteinte.
Merci pour votre aide, ça m’a permis d’avoir la solution (et d’en apprendre beaucoup sur HA).

De ce que j’ai compris, le state_attr ne marchait pas car aucun attribut n’était précisé dans mon cas. Et là, comme c’est un input_number, il ne sauvegarde pas les statuts « indisponibles » ou autres, donc juste les %.

Merci mais cela crée une entité input_number que je ne peux pas utiliser par exemple avec la carte ph_meter. Il y aurait moyen de transformer ça en entité numérique « normale » utilisable comme n’importe quel nombre ?

Solution trouvée ici: Template pour stocker une valeur devenue indisponible - #9 par WarC0zes

Merci encore à WarC0zes