Agua API IoT (pellets stove)

Bonjour,

J’ai acheté et fait installer le poêle à granulés modèle GLOBO de la marque Jolly-Mec. A l’aide de l’application mobile sous iOS ou Android, je peux le piloter (allumage, arrêt et configuration du mode ECO / Stand-by et Chrono / Thermostat, etc.). Mon besoin est un pilotage automatique afin de changer automatiquement la température entre le jour et la nuit. Pour cela, j’ai trouvé sur Internet l’AGUA Inventory API Rest utilisée (ici), ainsi qu’une implémentation Python 3 avec le module py-agua-iot disponible sous Github (ici).

A l’aide du code Python ci-dessous, je suis arrivé à lire les informations générales de mon poêle.

$ cat poele.py <CR>
JM_SERVICE = "https://jollymec.agua-iot.com";
JM_CUSTOMER_CODE = "000000";
JM_LOGIN = "pierre.durand@gmail.com";
JM_PASSWD = "A3sr7hOo9!";
JM_UUID = "22e44fc7-cddb-7028-7431-9daf2e772d7e";
JM_BRAND_ID = "1";

from py_agua_iot import agua_iot

connection = agua_iot(JM_SERVICE, JM_CUSTOMER_CODE, JM_LOGIN, JM_PASSWD, JM_UUID, brand_id=JM_BRAND_ID);

# Print the current air temperature for each device (one only)
for device in connection.devices:
  print("nom du poêle               : " + str(device.name))
  print("modèle                         : " + str(device.name_product))
  print("status                           : " + str(device.status))
  print("status translaté            : " + str(device.status_translated))
  print("alarme                         : " + str(device.alarms))
  print("réel puissance             : " + str(device.real_power))
  print("température ambiante : " + str(device.air_temperature))
  print("puissance ventilo        : " + str(device.set_power))
  print("status translaté           : " + str(device.gas_temperature))
  print("température minimum : " + str(device.min_temp))
  print("température maximum : " + str(device.max_temp))
  print("air température set       : " + str(device.set_air_temperature))
  print("id product                     : " + str(device.id_product))
  print("id device                      : " + str(device.id_device))

$ python3 poele.py <CR>
nom du poêle : Poêle salon / salle à manger
modèle : GLOBO
status : 9
status translaté : ECO_STOP
alarme : 0
réel puissance : 1
température ambiante : 25.0
puissance ventilo : 2
status translaté  : 119.0
température minimum : 7
température maximum : 40
air température set : 22.0
id product : XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
id device : YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY

A l’aide de la commande « curl » sous shell, la requête HTTP suivante donne aussi des informations générales.

$ cat httpReq1.sh <CR>
curl -s -X POST \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --header 'customer_code: 912831' \
  --header 'id_brand: 1' \
  --header 'authorization: 72a34aa3-cdf3-3441-8521-1efe2e912f6e' \
  --header 'local: true' \
  -d '{ "id_product": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX", "id_device": "YYYYYYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY" }' \
  'https://jollymec.agua-iot.com/deviceGetInfo'

$ sh httpReq1.sh | python <CR>
{
    "Success": true,
    "Text": "DEVICE_INFO_PRESENT",
    "Value": true,
    "device_info": [
        {
            "assistance_code": "114257",
            "chrono_programs": 4,
            "cod_art": "GLOBO",
            "creation_date_device": "2020-12-02T15:15:38.580Z",
            "customer_code": "912831",
            "description": "Poêle salon / salle à manger",
            "enable_canalization_1": false,
            "enable_canalization_2": false,
            "enable_chrono_set_fan": false,
            "enable_chrono_set_power": false,
            "enable_chrono_set_temperature": false,
            "enable_chrono_week": true,
            "enable_main_ventilation": false,
            "enable_set_chrono_week": true,
            "enable_water": false,
            "enable_water_boiler": false,
            "enable_water_puffer": false,
            "enable_week_days": true,
            "id_product": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
            "id_registers_map": "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY",
            "mac": "AAAAAAAAAAAA",
            "name": "Poêle salon / salle à manger",
            "rowVersion": "112997",
            "security_code": "753474119",
            "serial": "0073588",
            "set_canalization_1_max": 255,
            "set_canalization_1_min": 0,
            "set_canalization_2_max": 255,
            "set_canalization_2_min": 0,
            "set_fan_max": 255,
            "set_fan_min": 0,
            "set_power_max": 5,
            "set_power_min": 1,
            "set_temperature_max": 40,
            "set_temperature_min": 5,
            "set_temperature_water_max": 255,
            "set_temperature_water_min": 0,
            "update_date_device": "2020-12-02T15:15:38.580Z"
        }
    ]
}

Je n’ai pas trouvé facilement comment piloter le poêle (ex: changement de température, changement de mode de travail, changement des 4 plages horaires du mode chrono thermostat, etc.). Je pense qu’un buffer (array of bytes) est à construire et à remonter au module Wifi du poêle via un POST HTTP. Malheureusement, je n’ai pas l’information de l’organisation des données du tableau. Je ne trouve pas la documentation nécessaire. J’ai demandé cela à Micronova, mais ils ne veulent pas répondre à des particuliers. J’ai aussi demandé cela au support Jolly-Mec mentionnant que je voulais écrire une skill Alexa et un service Google Assistant. La réponse a été que fin du 1er semestre 2022 ou début du second semestre 2022, la skill et le service seront disponibles.

Ceci étant, la fourniture de ces codes est lointaine (plus de 6 mois). Alors, j’aimerai bien avoir la documentation complète pour écrire des routines automatisées à intégrer dans différents Smart Home, les assistants vocaux. Si quelqu’un peut m’aider, je le remercie par avance.

salut !

je me permets de retirer le tag #plugin-jeedomconnect que tu as mis, puisque le sujet n’est absolument pas en relation avec ce plugin …! :slight_smile:

A+

Désolé Tomitomas. Je n’ai pas fais attention à la rubrique retenue.

Bonjour,

As-tu vu qu’il y a un plugin pour Jolly-Mec ?
Voici le lien sur le market: Jeedom Market

Bonjour,

Tu devrais cacher ton adresse mail et ton mot de passe dans les lignes de code.

Bonjour, je me suis lancé!
Je ne suis pas un expert mais j’ai développé le plugins chez moi. Cela fonctionne bien avec un poêle jollymec idéa2. Bien sûr en version agua iot.
Il n’y a que le texte du status qui ne correspond pas tout à fait, mais la valeur numérique est ok.
Faut que je regarde comment faire un widget et un peu de mise en forme.
Je suis en train d’essayer de le mettre sur le market mais pour l’instant je ne suis pas très à l’aise avec GitHub. Je l’ai nommé poêle Agua iot!

Pour GitHub, tu as plusieurs informations pour Github dans la doc Jeedom.
Le premier est dans Guides/Tutoriaux avancés → Github
Le second est dans Developpeurs/Contribuer/Environnement de développement. On y parle de la mise à jour de Github.
Dans Developpeurs/Plugins/, tu as Documentation d’un plugin et Publication d’un plugin.

1 « J'aime »

Merci, tres utile.
Mon plugins est en attente validation par l’équipe jeedom.
Par contre on me demande de faire une présentation sur partenaire. Mais c’est ou ça?
Encore merci pour l’aide!

C’est ici dans community. Quand tu affiches les catégories, tu dois descendre. Ce qui te permet de voir « salons des développeurs ».
Tu n’as accès à cela que si tu es reconnu comme dev au niveau de community.
Donc, pour avoir cela, tu dois avoir fais ta demande comme dev via le site Jeedom, avoir accepté les CGU de dev dans la page profil du market. Si tout cela est fait, quelqu’un doit te mettre un flag développeur dans community.

La présentation est faite. Y a plus qu’à attendre la validation finale!
Merci pour l’accompagnement !

Salut,
Est ce que tu as des nouvelles sur la validation de ton plugin?
Je serais intéressé de le tester sur un poêle KLOVER qui utilise aussi agua IOT.
Il fonctionne avec la lib python py_agua_iot donc devrait fonctionner également avec ton plugin.

Il est dispo pour les personnes en jeedom bêta. La sortie en stable est demandée à jeedom depuis début janvier mais la validation des plugins a l’air assez lente en ce moment.

Le plugins vient de sortir en stable.:wink:

1 « J'aime »