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.

