[TUTO] - Gestion de sa piscine avec sonde iopool

Hello, je ne suis pas un expert Curl, mais quand tu dis :
"Il vous faudra aussi votre id de bassin que vous pouvez trouver avec cette commande (nécessite d’avoir CURL installé ) ".
Cela veut dire qu’il faut installé CURL sur la station (PC ou MAC) où on lancera la commande?

curl --header 'x-api-key: icimacléapiiopool' https://api.iopool.com/v1/pools/

Ou Il faut installer CURL sur HA?

Bonjour,

Pas vraiment besoin que curl soit sur HA.
Il faut simplement pouvoir le lancer sur une machine.
La majorité des Linux l’on par défaut. Mac aussi et il me semble que les derniers Windows aussi.

1 « J'aime »

Bonjour,
merci pour le tuto, j’ai essayé de suivre a la lettre , tout fonctionne sauf la partie appdaemon , ou l’appli pool_pump_manager ne compile pas


J’ai pas réussi a trouver de message d’erreur autre que cette trace et les sensors relatif a cette partie ne sont pas alimenter dans homeassistant .
Sauriez vous ou je peux chercher des précisions sur mon pb de compilation ?

Hello,

J’ai modifié le tuto pour ajouter des informations sur les logs (et la configuration de logs pour l’app que j’avais oublié).


Commence par regarder le fichier error.log et appdaemon.log

Merci, grâce a tes conseils j’ai réussi a localiser le pb , j’avais un pb de mapping d’entité dans le fichier apps.yaml .
ça fonctionne tres bien maintenant .

1 « J'aime »

Bonjour,

il ne me recupère que la balise title

Oui j’ai le bon id car lorsque je lance le curl via ssh de ha j’ai les bonnes info. Les capteur sont en not found

Bonjour,

C’est que tu as du faire une erreur dans la recopie quelques part. Tu peux faire un copier/coller ici en texte préformaté de ton contenu ?

CleanShot 2023-06-01 at 14.30.23

Coté visuel cela me donne cela


coté code voila ce que j’ai mis dans le pool.yaml dans mon includes\package

pool:
  sensor:
    - platform: rest
      unique_id: fabc1ee2-0bbe-416e-b23d-2474ac25fe4e
      name: iopool
      resource: https://api.iopool.com/v1/pool/<monpoolid>
      value_template: "{{ value_json.title }}"
      scan_interval: 60
      json_attributes:
        - id
        - latestMeasure
        - mode
        - hasAnActionRequired
        - advice
      headers:
        x-api-key: <mon api key>
      icon: mdi:pool
    - platform: history_stats
      name: Temps de filtration écoulé
      entity_id: switch.pool_switch
      state: "on"
      type: time
      start: "{{ now().replace(hour=0, minute=0, second=0) }}"
      end: "{{ now() }}"

  template:
    - sensor:
        - name: "Température Sonde Piscine"
          unique_id: b336b008-dc88-4e3b-afd9-d662979fb0c1$
          state: "{{ state_attr('sensor.iopool', 'latestMeasure')['temperature'] | round(2) }}"
          device_class: temperature
          unit_of_measurement: "°C"
          state_class: measurement
          icon: mdi:pool-thermometer
          attributes:
            source: "{{ state_attr('sensor.iopool', 'latestMeasure')['mode'] }}"
            isValid: "{{ state_attr('sensor.iopool', 'latestMeasure')['isValid'] }}"
            measuredAt: "{{ state_attr('sensor.iopool', 'latestMeasure')['measuredAt'] }}"
        - name: "pH Sonde Piscine"
          unique_id: f4804a67-1224-4507-a4fb-21d983958b7c
          state: "{{ state_attr('sensor.iopool', 'latestMeasure')['ph'] | round(1) }}"
          unit_of_measurement: "pH"
          attributes:
            source: "{{ state_attr('sensor.iopool', 'latestMeasure')['mode'] }}"
            isValid: "{{ state_attr('sensor.iopool', 'latestMeasure')['isValid'] }}"
            measuredAt: "{{ state_attr('sensor.iopool', 'latestMeasure')['measuredAt'] }}"
        - name: "Capacité de désinfection Sonde Piscine"
          unique_id: e0ef9122-c53a-41ae-be72-517f3fcbb443
          state: "{{ state_attr('sensor.iopool', 'latestMeasure')['orp'] | round(0) }}"
          unit_of_measurement: "mV"
          attributes:
            source: "{{ state_attr('sensor.iopool', 'latestMeasure')['mode'] }}"
            isValid: "{{ state_attr('sensor.iopool', 'latestMeasure')['isValid'] }}"
            measuredAt: "{{ state_attr('sensor.iopool', 'latestMeasure')['measuredAt'] }}"
        - name: "Recommandation Durée de Filtration Sonde Piscine"
          unique_id: f53659ba-922f-4861-9198-73a7dd43ae6a
          state: "{{ state_attr('sensor.iopool', 'advice')['filtrationDuration'] * 60 }}"
          device_class: duration
          unit_of_measurement: "min"
          icon: mdi:sun-clock-outline
        - name: "Mode Sonde Piscine"
          unique_id: af6db587-be33-44e7-950c-fa52f0453d1f
          state: "{{ state_attr('sensor.iopool', 'mode') }}"
          icon: mdi:auto-mode
        - name: "Heure fin de Filtration Piscine Slot1"
          unique_id: bb04f92f-29a3-47b2-ad4f-81af2a850f02
          state: "{{ states('input_datetime.pool_stop_slot1') }}"
          icon: mdi:clock-outline
        - name: "Heure fin de Filtration Piscine Slot2"
          unique_id: cde90d21-b10a-4259-9767-bc2d174a7ca6
          state: "{{ states('input_datetime.pool_stop_slot2') }}"
          icon: mdi:clock-outline

    - binary_sensor:
        - name: "Actions requises Sonde Piscine"
          unique_id: fb6bb7e0-86ad-4f27-90ee-47c39db0ab12
          state: "{{ state_attr('sensor.iopool', 'hasAnActionRequired') }}"
          device_class: problem
          icon: mdi:checkbox-marked-circle-plus-outline

  input_datetime:
    pool_start_slot1:
      name: Heure début de Filtration Piscine Slot1
      icon: mdi:clock-outline
      has_date: false
      has_time: true
    pool_stop_slot1:
      name: Heure fin de Filtration Piscine Slot1
      icon: mdi:clock-outline
      has_date: false
      has_time: true
    pool_start_slot2:
      name: Heure début de Filtration Piscine Slot2
      icon: mdi:clock-outline
      has_date: false
      has_time: true
    pool_stop_slot2:
      name: Heure fin de Filtration Piscine Slot2
      icon: mdi:clock-outline
      has_date: false
      has_time: true

  input_select:
    pool_boost:
      name: Boost de Filtration Piscine
      icon: mdi:plus-box-multiple
      options:
        - Aucun
        - 1H
        - 4H
        - 8H
        - 24H
    pool_mode:
      name: Mode
      icon: mdi:sun-snowflake-variant
      options:
        - Standard
        - Active
        - Passive

  timer:
    pool_boost:
      name: Timer de boost
      restore: true
      icon: mdi:timer-plus

  input_number:
    filtration_duration_calculated:
      name: Temps de filtration calculé
      icon: mdi:clock-outline
      step: 1
      min: 0
      max: 1440      

Lorsque je regarde le contenu de iopool j’ai :
image

qui correspond au nom du bassin

Verifie déjà que ton entité iopool s’appelle bien sensor.iopool.
Puis verifie les noms des entités associés. Celle dans le visuel n’ont peut être pas exactement les mêmes nom que celle que t’a créé le package.
Par exemple, tu dois avoir un sensor.temperature_sonde_piscine pour la temperature, mais moi j’ai renommé le sensor en sensor.iopool_temperature parce que j’aime pas avoir mes id de sensor en français donc quand je peux les changer je le fais.

Il faut donc simplement ajuster dans la carte l’utilisation du bon nom d’entité, ou renommer les entités comme moi :

  • sensor.temperature_sonde_piscine => sensor.iopool_temperature
  • sensor.ph_sonde_piscine => sensor.iopool_ph
  • sensor.capcaite_de_desinfection_sonde_piscine => sensor.iopool_orp
  • sensor.recommandation_duree_de_filtration_sonde_piscine => sensor.iopool_filtration_time_recommandation
  • sensor.mode_sonde_piscine => sensor.iopool_mode
  • binary_sensor.actions_requises_sonde_piscine => binary_sensor.iopool_actions_need

Wonderful !!! Encore merci, par contre j’ai aussi un problème sur le scrict py, import humanize

J’ai ajouté une partie sur ce sujet au début de l’étape 2.

J’avais complètement oublié ce point

Merci, ca doit être bon désormais


1 « J'aime »

Hello,j’avance doucement tout en découvrant encore et encore HA!

J’ai un souci avec Appdaemon et je n’arrive pas a avoir accès à l’interface utilisateur.L’adresse de cette interface c’est bien l’adresse du serveur HA:5050?
Je tourne en rond depuis trois jours.
D’avance merci pour votre aide.
Gilles

Hello, j’ai le même soucis via nabucasa essaie avec l’ip de ton ha en direct. Chez moi cela fonctionne

Bonjour,

Ca depend de la configuration faite. Par defaut c’est bien 5050

Excellente ressource ! Je n’ai pas d’iopool mais un Ondilo Ico, cependant je regarde la concurrence car j’ai des doutes sur la véracité de ses mesures.
L’iopool me semble pas mal, tout comme le Flipr.

Petite question plus en rapport avec le sujet du coup: sur les captures de l’application iopool, je vois qu’il y a un drapeau de baignade. Chose qui m’intéresse fortement puisqu’actuellement sur mon Jeedom j’ai mis en place un tel drapeau qui change selon les mesures, les températures eau/air, la météo… néanmoins il ne semble pas apparaître sur la documentation (succinte) de l’API.
Est-il récupérable ?

Bonjour,

Non cette valeur n’est pas disponible dans l’APi. Ça fait parti des fonctionnalités que j’avais demandé en évolution


Hello,
J’ai encore un souci avec le temps de filtration.
Une idée du problème?
Merci

Je suis un âne,j’ai trouvé.
Tout semble fonctionné c’est de la bombe.
Merci!

1 « J'aime »