Bouton pour initialiser l'état d'un sensor

Bonjour,

Tout d’abord je précise que je suis débutant depuis quelques semaine sur HA

J’ai une prise connectée qui me renvoie l’énergie consommée V0 en kWh mais il n’y a pas moyen de la remettre à zéro simplement.

J’ai donc créé 2 sensors
un qui contient une valeur de référence de l’énergie : V1
le second contient une valeur relative de l’énergie : V2 = V0 - V1

Ca marche bien. Je suis même surpris de voir V2 se mettre à jour automatiquement, j’imaginais qu’il fallait le faire manuellement via une automatisation quand V0 ou V1 changent de valeur.

Maintenant je voudrais créer un bouton pour qui ferait V1 = V0 actuel pour faire un reset de V2 à 0 et commencer le suivi d’une nouvelle session de consommation.

Je n’y arrive pas. Quelqu’un pourrait-il m’aiguiller vers ls solution

Merci de votre aide

Bonjour @Aldo_Lodos,

Pourrais-tu nous en dire plus sur ton cas d’usage ? par exemple la fréquence de la remise a zéro ?

Si c’est pour faire des statistiques jour / mois / An il existe une très très bonne intégration de l’HACS → Powercalc. Si ton cas d’usage est différent, développe un peu qu’on puisse comprendre ton objectif.

@+

Merci de ta réponse

Il n’y a pas de fréquence particulière, Ce sera quand j’ai envie.

Je veux piloter des radiateurs électriques pour maintenir ma maison dans un état de température / humidité correct lorsque je suis absent. Je vais faire des tests avec des radiateurs de différentes set technologies. pour chercher le meilleur rapport efficacité/cout.

Je vais jeter un oeil à Powercalc.

Au delà du cas d’usage, j’apprécierai qu’on m’aide à répondre à ma question. Au moins j’apprendrais quelque chose.

Cordialement

J’ai trouvé une solution.

Il y a le script python set_state.py disponible ici : home-assistant/.homeassistant/python_scripts/set_state.py at 88875142d709ed9f0aa738d68f61ab533c6eb9d5 · rodpayne/home-assistant · GitHub
qui une fois installé crée un service qui permet de définir l’état d’une entité. Mais cet état est en dur. Exemple set_state(entité,« ON ») et je n’ai pas trouvé comment remplacer le « ON » par l’état d’une autre entité (dur dur de débuter)

j’ai donc modifié le script pour ajouter un nouvel argument qui s’appelle state_entity. il suffit de mettre en argument l’entité de laquelle on veut récupérer l’état et il sera copié dans l’état de l’entité définie par l’argument entity_id.

Voila le script modifié

"""Set the state or other attributes for the specified entity."""

# ========================================================================================
# python_scripts/set_state.py
# modified from -
# https://community.home-assistant.io/t/how-to-manually-set-state-value-of-sensor/43975/37
# ========================================================================================

# ----------------------------------------------------------------------------------------
# Set the state or other attributes for the specified entity.
# Updates from @xannor so that a new entity can be created if it does not exist.
# ----------------------------------------------------------------------------------------

inputEntity = data.get("entity_id")
if inputEntity is None:
    logger.warning("===== entity_id is required if you want to set something.")
else:
    inputStateObject = hass.states.get(inputEntity)
    if inputStateObject is None and not data.get("allow_create"):
        logger.warning("===== unknown entity_id: %s", inputEntity)
    else:
        if not inputStateObject is None:
            inputState = inputStateObject.state
            inputAttributesObject = inputStateObject.attributes.copy()
        else:
            inputAttributesObject = {}

        for item in data:
            newAttribute = data.get(item)
            logger.debug("===== item = {0}; value = {1}".format(item, newAttribute))
            if item == "entity_id":
                continue  # already handled
            elif item == "allow_create":
                continue  # already handled
            elif item == "state":
                inputState = newAttribute
            elif item == "state_entity":
                inputState = hass.states.get(newAttribute).state
            else:
                inputAttributesObject[item] = newAttribute

        hass.states.set(inputEntity, inputState, inputAttributesObject)

et l’appel au service dans un bouton :

show_name: true
show_icon: true
type: button
tap_action:
  action: call-service
  service: python_script.set_state
  target: {}
  data:
    entity_id: sensor.consommation_reference_salon
    state_entity: sensor.0xed3f05602bd5b370_energy
entity: sensor.consommation_reference_salon
name: RAZ Conso

Peut-être y a t il d’autre solutions mais celle ci fonctionne bien
Si ca peut aider quelqu’un.
Dois-je cloturer ma demande ?

1 « J'aime »