Intégration sonde Mazout Fullup

Bonjour,

Voulant monitorer ma cuve a mazout, j’ai fait l’acquisition d’une sonde sonde de marque Fullup. Fonctionne super bien au niveau de l’application.

Aujourd’hui, je voudrais l’intégrer a Home assistant, mais je trouve très peu d’information pour ce produit.
Je suis tomber sur ce lien.
et j’ai tester le code suivant dans mon fichier sensors.

sensor:

  - platform: rest
    name: FullUp token
    resource: https://api.fullup.be/auth/generate
    payload: !secret fullup_payload #fullup_payload: '{ "email" : "MonCourriel", "password" : "MonMDP", "language" : "fr" }'
    method: POST
    value_template: >
      {% if value_json.success == true %}
        OK
      {% else %}
        KO
      {% endif %}  
    json_attributes:
      - result
    scan_interval: 86400

  - platform: command_line
    command: >
      curl
      --header "Authorization: {{ state_attr('sensor.fullup_token', 'result')['type'] }} {{ state_attr('sensor.fullup_token', 'result')['token'] }}"
      --header "Content-Type: application/json"
      "https://api.fullup.be/tanks_public/[TANK ID]" # à obtenir en appelant une fois https://api.fullup.be/loginApi?email=[VOTRE EMAIL]&password=[VOTRE MDP]
    name: FullUp
    scan_interval: 3600
    value_template: >
      {% if value_json.success == true %}
        OK
      {% else %}
        KO
      {% endif %}
    json_attributes:
    - result

  - platform: template
    sensors:
      mazout:
        #entity_id: sensor.fullup, sensor.fullup_token
        friendly_name_template: "{{ state_attr('sensor.fullup', 'result')['tank_name'] }}"
        value_template: "{{ state_attr('sensor.fullup', 'result')['last_minimum_level'] }}"
        availability_template: "{{ not(is_state('sensor.fullup', 'KO')) }}"
        unit_of_measurement: L
        icon_template: >
          {% set val = (states('sensor.mazout') | int) -%}
          {% set quart = (state_attr('sensor.mazout','total') | int / 4) -%}
          {% if val >= (quart*3) -%}
            mdi:gauge-full
          {% elif val >= (quart*2) -%}
            mdi:gauge
          {% elif val >= (quart) -%}
            mdi:gauge-low
          {% else -%} 
            mdi:gauge-empty
          {% endif -%}
        attribute_templates:
          date: "{{ state_attr('sensor.fullup', 'result')['last_measure_date'] | default(now()) | as_timestamp() | timestamp_local }}"
          total: "{{ state_attr('sensor.fullup', 'result')['tank_total_volume'] }}"
          #jours_restant: "{{ state_attr('sensor.fullup', 'result')['days_left'] }}"
          token_expire: "{{ state_attr('sensor.fullup_token', 'result')['token_expiration_date'] | as_timestamp() | timestamp_local }}"

Malheureusement, je me retrouve avec un paquets d’erreurs et cela fait plus d’une semaine que j’essaye de trouver une solution mais rien y fait.
Peux être que l’un d’entre possède se type de sonde ou n,pourrait m’aiguiller?

merci d’avance

Salut,

A mon avis, sans partager ce paquet d’erreur justement, tu ne risques pas d’avoir beaucoup d’aide. Sauf à trouver quelqu’un qui a la même sonde que toi et qui fait les tests comme toi

J’ai déjà pu nettoyer un peu, d’ailleurs j’ai modifier mon post avec le code actuel.

Maintenant je n’ai plus que cette erreur: UndefinedError: ‹ value_json › is undefined

Hello

apparemment il trouve pas les infos de ton fichier .json

Le truc c’est que je n’ai pas de fichier .json
Si j’ai bien compris le code, le « Value_json » devrait être les infos retourné par l’API de Fullup

Exact, mais c’est plus compliqué que ça, le .success est un élément de la réponse en json.
donc s’il n’en contient pas c’est un souci et ton code est KO
Essaye juste temporairement avec {{ value_json }} à la place du if complet

Alors j’arrive bien à me connecter pour extraire le token. Le sensor.fullup_token est OK.
Mais c’est le sensor.fullup qui est KO. si je remplace le IF de cette partie il me retourne:

{‹ success ›: False, ‹ errors ›: [{‹ message ›: ‹ You have been disconnected, please try to log in again ›, ‹ type ›: ‹ authentication ›}]}

J’ai bien récupérè le tank id et ajouté, mais rien y fait

Ca avance lol

Si je bien tous compris j’arrive à récupérè le token, mais il ne le met pas en cache afin de se connecter a la seconde adresse

voici le lien de l’api FULLUP API Manual - Fullup Public Technical Book

J’ai trouvé il fallait juste attendre les 3600 secondes :sweat_smile:
je vais faire un petit recap pour les prochains

Super le récapitulatif
Même pour le montage voir si je suis capable de le faire seul merci

bonjour. J’utilise la sonde fullup mais via l’application Total. Quelqu’un a intégré cette sonde via le site total? Merci.

Hello,
Pour ceux que ça peut intéresser, ayant rencontré quelques soucis avec l’implémentation de ces sensors manuellement, j’ai développé une intégration, je vais continuer d’avancer dessus, et voir comment la suggérer dans HACS, mais ceux qui veulent l’installer pour voir, contactez moi, visiblement je ne peux pas ajouter de lien.
(zedissime/ha-fullup sur github)
Á ajouter dans la liste des repos customs, ça donne un sensor composé de 7 entities :

  • Volume actuel
  • Volume total
  • Date de dernière connexion
  • Date de dernière mesure
  • T° de la cuve
  • Niveau de la batterie
  • Consommation journalière

Installation nickel sans aucun accros. Super travail

Bonjour,

J’ai effectué un test ce week-end, l’installation s’est déroulée impeccablement. Cependant, je rencontre un souci… La valeur envoyée à HA, n’est pas la même que celle affichée dans l’application. Depuis que j’ai lancé le système samedi matin, j’observe toujours un écart d’environ 100L en plus dans Ha…

Hello, étrange ça :thinking:
Pour ma part, j’ai bien les mêmes valeurs dans HA que dans l’application.
Je vais essayer de trouver ce qui pourrait différer.

Eventuellement, je me base sur les apis fournies par Fullup, la première pour obtenir le token, et la 2eme qui va chercher les informations de la sonde (tanks_public/:id). La valeur affichée est celle qui correspond à la valeur retournée par l’api : current_volume.
On pourrait regarder plus en détail si nécessaire, cependant, êtes vous à l’aise techniquement ? L’idée serait de regarder ce que donnent les appels apis de votre côté et essayer de trouver ce qui pourrait créer la différence.

Merci pour votre retour rapide. J’ai réfléchi, et je pense que le problème pourrait venir du fait que j’ai toujours l’ancienne méthode d’acquisition des données de la sonde qui tourne en parallèle. Je vais la désactiver dès que possible pour voir si cela change quelque chose au niveau de Home Assistant.

Je ne suis pas un maître techniquement, mais si les explications sont claires, je devrais pouvoir examiner les appels API.

Je vous tiendrai informé des résultats de mes tests.

Bonjour,

@maximengn j’ ai bien réussi à installer l’ intégration, je me connecte à mon compte full up mais j’ ai cette erreur dans le journal :

Error while setting up fullup platform for sensor: 'tank_id'
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 382, in _async_setup_platform
    await asyncio.shield(awaitable)
  File "/config/custom_components/fullup/sensor.py", line 49, in async_setup_entry
    sensor_data["tank_id"],
    ~~~~~~~~~~~^^^^^^^^^^^
KeyError: 'tank_id'

Une idée ? Pas moyen de trouver mais mes connaissances sont limitées :wink:

Merci