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?
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
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
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 :
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
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.
@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