Plugin airZone

Salut,
Merci pour l’info, dans mon cas un plugin qui proposerait également l’accès aux infos par le cloud serait vraiment utile… J’ai malheureusement une carte wifi non compatible. Pas de solution sous jeedom pour l’instant j’ai l’impression. :confused:
Il faut que je regarde du côté de Home-assistant ce que ça donne. Mais ça serait dommage de quitter jeedom uniquement pour ça.

1 « J'aime »

Si la carte Wifi n’est pas compatible sous HA tu auras le meme probleme

J’ai lu dans le forum que sous HA on pouvait aussi remonter les infos depuis le cloud Airzone. Du moment que je peux les récupérer moi ça ma va :slight_smile: C’est donc juste cette possibilité qui manque dans jeedom pour récupérer les infos des équipements non compatibles. Cela serait top si ça pouvait évoluer.

je sais pas pour la partie Cloud si on peut tapper directement sur les pages Web ou par API Cloud sous HA, mais pas sur JEedom

1 « J'aime »

Si j’avais des notions de développements je me lancerais volontiers dans la création d’un plugin complémentaire mais je n’ai pas ce talent. Je me dis naïvement que le plugin existant pourrait intégrer ça plus tard, ça ouvrirait l’usage du plugin.

Bonjour, il y a bien une api disponible sur la partie cloud et plutôt bien documenté : Web API - Airzone Cloud Developers
Je ne sais pas si elle est vraiment différente de l’api locale.

Ayant également un airzone version wifi, j’ai regardé et cela fonctionne comme attendu :slight_smile:

Si vous voulez découvrir un peu (en attendant de voir ce qu’il est possible de développer) :
Depuis un système linux par exemple votre jeedom accédé en ssh ou encore un logiciel type postman

  1. Récupérer un jeton/ticket (POST /auth/login)
    A compléter avec votre adresse mail et votre mdp:
curl -X POST "https://m.airzonecloud.com/api/v1/auth/login" \
 -H "Accept: application/json" \
 -H "Content-Type: application/json" \
 -d '{"email":"example@email.com","password":"secretpassword1234"}' 

Cela doit vous renvoyer pas mal d’info et notamment le jeton/ticket qui vous sera nécessaire pour la suite. C’est une longue chaine de ce type :
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ5WkZzVWpsdkthT0VIUjBYc3dzZmNiTDJ0Q0NQUE4wSiIsInRva2VuSWQiOiJlNGZhYzc5YS0zZDQwLTQzZDUtYWNmMi04OTVhYjIxMjU1ZmMiLCJzY29wZXMiOnsiYXoiOiIzYTFiMGM4MDZiNWFjMjAwMTE4NWMxODIifSwianRpIjoiYWQ2N2I3ZGYtNWU5Ni00YWE1LWI3Y2YtOTZkNzRjZWIzMDQ4IiwiaWF0IjoxNTc0MDgxODAwLCJleHAiOjE1NzQyNTQ2MDB9.u3mnjQhD7rR_knTGaWvmM1W1d3aI8v82V2nU7q9esMg"

  1. Récupérer l’id de vos installation (GET /installations)
    A compléter avec le jeton/ticket récupéré à la première étape :
curl -X GET "https://m.airzonecloud.com/api/v1/installations" \
 -H "Accept: application/json" \
 -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ5WkZzVWpsdkthT0VIUjBYc3dzZmNiTDJ0Q0NQUE4wSiIsInRva2VuSWQiOiJlNGZhYzc5YS0zZDQwLTQzZDUtYWNmMi04OTVhYjIxMjU1ZmMiLCJzY29wZXMiOnsiYXoiOiIzYTFiMGM4MDZiNWFjMjAwMTE4NWMxODIifSwianRpIjoiYWQ2N2I3ZGYtNWU5Ni00YWE1LWI3Y2YtOTZkNzRjZWIzMDQ4IiwiaWF0IjoxNTc0MDgxODAwLCJleHAiOjE1NzQyNTQ2MDB9.u3mnjQhD7rR_knTGaWvmM1W1d3aI8v82V2nU7q9esMg"

Cela doit vous renvoyer l’ensemble des installation airzone et leurs id. Dans mon cas, une seule installation. C’est une chaine de ce type :
« installation_id »: « 5dd28d9e46aea00329578170 »,

  1. Récupérer l’id des équipements de votre installation (GET /installations/{installation_id})
    A compléter avec l’installatio_id récupéré à l’étape précédente, ainsi que le jeton/ticket récupéré à la première étape :
curl -X GET "https://m.airzonecloud.com/api/v1/installations/5dd28d9e46aea00329578170" \
 -H "Accept: application/json" \
 -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ5WkZzVWpsdkthT0VIUjBYc3dzZmNiTDJ0Q0NQUE4wSiIsInRva2VuSWQiOiJlNGZhYzc5YS0zZDQwLTQzZDUtYWNmMi04OTVhYjIxMjU1ZmMiLCJzY29wZXMiOnsiYXoiOiIzYTFiMGM4MDZiNWFjMjAwMTE4NWMxODIifSwianRpIjoiYWQ2N2I3ZGYtNWU5Ni00YWE1LWI3Y2YtOTZkNzRjZWIzMDQ4IiwiaWF0IjoxNTc0MDgxODAwLCJleHAiOjE1NzQyNTQ2MDB9.u3mnjQhD7rR_knTGaWvmM1W1d3aI8v82V2nU7q9esMg"

Dans mon cas je récupère le groupe climatisation et l’ensemble des pièces. Chaque équipement dispose d’un id de ce type : « device_id »: "5dd28d9e46aea00329682378

  1. Récupérer l’état d’un équipement (GET /devices/{deviceId}/status?installation_id={installation_id&type=all)
    A compléter avec l’installation_id et le device_id récupéré à l’étape précédente, ainsi que le jeton/ticket récupéré à la première étape :
curl -X GET "https://m.airzonecloud.com/api/v1/devices/5dd28d9e46aea00329682378/status?installation_id=5dd28d9e46aea00329578170&type=all" \
 -H "Accept: application/json" \
 -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ5WkZzVWpsdkthT0VIUjBYc3dzZmNiTDJ0Q0NQUE4wSiIsInRva2VuSWQiOiJlNGZhYzc5YS0zZDQwLTQzZDUtYWNmMi04OTVhYjIxMjU1ZmMiLCJzY29wZXMiOnsiYXoiOiIzYTFiMGM4MDZiNWFjMjAwMTE4NWMxODIifSwianRpIjoiYWQ2N2I3ZGYtNWU5Ni00YWE1LWI3Y2YtOTZkNzRjZWIzMDQ4IiwiaWF0IjoxNTc0MDgxODAwLCJleHAiOjE1NzQyNTQ2MDB9.u3mnjQhD7rR_knTGaWvmM1W1d3aI8v82V2nU7q9esMg"

On peut notamment récupérer la température dans la variable : « local_temp »: { « celsius »: 27.4 }

  1. Récupérer la config d’un équipement (GET /devices/{deviceId}/config?installation_id={installation_id&type=all)
    A compléter avec l’installation_id et le device_id récupéré à l’étape précédente, ainsi que le jeton/ticket récupéré à la première étape :
curl -X GET "https://m.airzonecloud.com/api/v1/devices/5dd28d9e46aea00329682378/config?installation_id=5dd28d9e46aea00329578170&type=all" \
 -H "Accept: application/json" \
 -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ5WkZzVWpsdkthT0VIUjBYc3dzZmNiTDJ0Q0NQUE4wSiIsInRva2VuSWQiOiJlNGZhYzc5YS0zZDQwLTQzZDUtYWNmMi04OTVhYjIxMjU1ZmMiLCJzY29wZXMiOnsiYXoiOiIzYTFiMGM4MDZiNWFjMjAwMTE4NWMxODIifSwianRpIjoiYWQ2N2I3ZGYtNWU5Ni00YWE1LWI3Y2YtOTZkNzRjZWIzMDQ4IiwiaWF0IjoxNTc0MDgxODAwLCJleHAiOjE1NzQyNTQ2MDB9.u3mnjQhD7rR_knTGaWvmM1W1d3aI8v82V2nU7q9esMg"

Voila je pense que vous avez compris le principe. Si vous voulez ne rien modifier, uniquement consulter il faut utiliser uniquement des requêtes de type GET.

Pour uniquement remonter les infos dans jeedom on doit pouvoir le faire assez facilement avec un petit script python.

Il serait intéressant de regarder si les APIs ne sont pas similaire entre la version locale et cloud (je doute que airzone ai redéveloppé). La mise à jour du plugin serait alors assez simple. Qq a déjà regardé ?

3 « J'aime »

Bonjour, j’ai réalisé ce petit script python (en attendant la mise à jour du plugin pour le support de airzonecloud :slight_smile: ) pour remonter les infos du airzone dans jeedom.

  1. Créer des virtuels (plugin virtuel) (un par pièce par exemple) :
  • récupérer l’url de retour (sans le &id=#cmd_id#&value=#value# à la fin)
  • ajouter les info virtuelles suivantes (vous pouvez changer le nom si vous le souhaiter) et récupérer les ID (colonne de gauche)
  • l’ideal est de commencer par une piece et de la dupliquer avec le bouton en haut à droite

  1. Récupérer le script
    airzone.py.txt (8,7 Ko)

  2. L’ouvrir dans un éditeur de text (notepad++, vscode,…), copier tout le contenu

  3. Créer un script (plugin script) puis le fichier correspondant avec la petite icone verte

  1. Coller le script.
  2. Compléter les parties suivantes avec vos informations:
  • compte airzone
  • return_url du virtuel
  • liste des pièces (attention au nommage qui doit être identique à votre config AirZone : visible dans l’appli)
  • id correspondante à chaque info des virtuels

Normalement vous devez obtenir quelque chose comme cela :

avec ce widget pour le mode :
AirZone.json.txt (971 Octets)

5 « J'aime »

Bonjour

je viens commencer à utiliser le plugin avec le dernier module Webserver Airzone (firmware 3.39) et je me retrouve aussi avec le même soucis. Mes zones disparaissent dans l’appareil au bout d’un moment :
image
Du coup les commandes avec.

Cela fait 3 fois que je reprend ma configuration. :sweat_smile:

@Sekiro est ce que le soucis est pris en compte pour de futures corrections? Aucune injonction de ma part hein :slightly_smiling_face: c’est juste pour savoir si le problème était ou non en cours de résolution car actuellement le plugin est juste inutilisable.

1 « J'aime »

Bonjour @gormson

Le plugin est en cours de modification par nos équipes.

Concernant le souci d’affichage des zones.

De memoire, il y a un avait un souci d’affichage sur l’equipement, comme sur votre screenshot, mais la configuration des commandes et l’utilisation des zones continuaient de fonctionner.

Cordialement

1 « J'aime »

Merci du retour

Alors pour précision il y avait 2 cas :

  • Celui de mon screen où en effet les commandes n’étaient plus visibles mais active
  • celui ou par contre la zone associée sautait complétement et là, les commandes invisibles n’étaient plus non plus active.

Bonne journée.

Tres bien, c’est noté pour les fix à faire sur le plugin

Merci du retour

2 « J'aime »

Bonjour,

est-ce qu’il est possible de faire remonter deux webserveurs?
j’ai effectivement suivit les préconisations de Airzone qui avait peur que le signal radio ne passe pas entre les étages et j’ai donc installé deux webserveurs dans la maison.

Du coup via le plugin j’ai réussi à intégrer qu’un seul des deux webserveurs

Bonjour,

J’ai un peu le même problème, deux installation, un webserveur classique pour l’installation côté nuit, et un webserveur Aidoo pour l’installation côté salon (de marque Mitsibishi). Donc 2 adresses ip.
Comment les gérer en même temps?

Bonjour à tous,
J’ai installé mon système Airzone très récemment, version Firmware 3.41, version jeedom 4.3.9 sur VM Synology.

Problème : je ne vois pas les zones lorsque je veux ajouter un équipement Airzone.

Pas de log particulier, et en interrogeant l’API locale du webserver via http://192.168.2.83:3000/api/v1/hvac je vois bien les zones.

Chose surprenante, dans les log jeedom Airzone, la commande suivante ne renvoi rien :
0000|[2022-11-04 20:21:26]INFO : DATA_ALL_SYSTEMS_ZONES: []

Alors qu’il me semble qu’entre les crochets, il devrait y avoir la réponse en json.
Pour info, il s’agit du webserver ethernet/wifi sur rail din.

Auriez-vous une idée ?

Merci pour votre aide :slight_smile:

1 « J'aime »

BOnjour, Il y a toujours un problème de disparition des zones et des commandes. Si on ne fait rien, le commandes fonctionnent toujours. Par contre comme j’ai lié cela à des commandes JEEDOM CONNECT, je me demande si les id des commandes vont rester les mêmes. A quand l’upgrade du plugin, car c’est vraiment galère. Merci

1 « J'aime »

Bonjour et merci pour le script.

J’arrive un peu tardivement, mais j’ai voulu essayer de le mettre en oeuvre, cependant lors du test de script, j’ai une erreur qui apparait :

Erreur exécution de la commande [Aucun][AirZone][Refresh] : Erreur sur /var/www/html/plugins/script/data/test 2>&1 valeur retournée : 1. Détails : Get authentication token … Get installations … - name: Chez Coralie et Loïc Get groups … - name: Get devices … - type: az_system Get devices status … - type: az_zone name: Salon Get devices status … power: True device_mode: 3 local_temp: 20.6 Traceback (most recent call last): File « /var/www/html/plugins/script/data/test », line 265, in device_setpoint_air_cool = device_status[‹ setpoint_air_cool ›][‹ celsius ›] KeyError: ‹ setpoint_air_cool ›

Je débute dans le domaine, mais je crois comprendre que la communication est réalisé, la température relevé est bien celle dans la pièce mére nommé salon, cependant rien ne se passe.
Impossible du coup d’afficher la moindre donnée, aurait tu une idées d’où cela peut venir ?

Je te remerci pour ton aide

1 « J'aime »

Bonjour,

Tout d’abord merci encore pour ce plugin et le travail derrière.
J’ai lu l’ensemble de la discussion mais j’ai du mal à voir les cartes embarquant l’API, pouvez vous me dire si ces cartes sont compatibles et biensur ajouter les votres si elle est manquante:

  • AZX6BACNET

  • AZX6BACNET

  • AZX6WSCLOUDDINC

  • AZX6WSPHUB

Merci
Jonathan

Salut,

Un énorme merci à NanoMaverick pour son tuto sur l’utilisation des API airzone cloud.

Si cela ne marche pas chez toi c’est probablement que tu n’es pas en mode clim actuellement, ce script ne marche en l’état que avec ce mode, pour qu’il fonctionne en mode chauffage il faut remplacer ligne 248 :

device_setpoint_air_cool   = device_status['setpoint_air_cool']['celsius']

par :

device_setpoint_air_cool   = device_status['setpoint_air_heat']['celsius']
2 « J'aime »

Je suis allé un peu plus loin et ai ajouté la possibilité de contrôler (et pas seulement consulter) le système Airzone par l’intermédiaire des API de Airzone cloud.

Si jamais ça peut aider :

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://m.airzonecloud.com/api/v1/devices/DEVICEID');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
    'authorization: Bearer TOKEN',
    'content-type: application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"param":"setpoint","value":'.$argv[1].',"installation_id":"INSTALLATIONID","opts":{"units":0}}');

$response = curl_exec($ch);

curl_close($ch);

Il faut remplacer :
DEVICEID : par l’ID de votre pièce
TOKEN : par le Token de connexion
INSTALLATIONID : par l’ID de votre installation
Toutes ces infos sont récupérable en suivant la procédure de NanoMaverick

Voila ce que ça donne sur le Dashboard :
Capture d’écran 2023-03-17 155918

Avec le script de NanoMaverick :

On se retrouve à pouvoir contrôler entièrement le système Airzone même si on a pas les API local ouvertes :slight_smile:

3 « J'aime »

Ce sujet a été automatiquement fermé après 7 jours. Aucune réponse n’est permise dorénavant.