Depuis quelques semaines j’ai un ipx800 V4 sous la main et passé la phase de prise en main de celui-ci, je n’ai pu m’empêcher de le relier à notre Domoticz.
Pour ceux qui ne connaîtraient pas :
Principales fonctions:
- 8 entrées digitales tout ou rien (contact sec). Extensible à 56.
- 8 sorties relais sur contact 270 V/10A extensible à 56.
- 4 entrées analogiques 10 bits.
- 128 entrées + 128 sorties librement configurables. Mode Virtual IO ©.
- 32 entrées analogiques virtuelles 16 Bits. Mode Virtual IO ©
- 32 Ping Watchdog (détection de périphériques réseaux par PING ICMP).
- 32 Périphériques Enocean. ( Nécessite l’extension X-ENO ).
- 16 Compteurs d’impulsions incrémental / décrémental et pas configurable.
- 255 Scènes sur 512 canaux DMX.(Nécessite l’extension X-DMX).
- 255 horloges programmables pour déclencher des actions uniques ou à chaque seconde, minute, heure, jour , mois.
- Notifications GET et POST sécurisées: Cryptage des pushs en TLS (HTTPS).
- Envoi d’émails sécurisés vers 1 à 4 utilisateurs différents.
- Support du Dyn-Dns.
- Mise à l’heure par serveur NTP et/ou Horloge interne avec sauvegarde en cas de coupure réseau ou de courant.
- Gestion fuseaux horaire et changement d’heure été/Hiver.
- Moteurs de scénarios GX© : Logique combinatoire ET / OU / NOT.
- 8 Tableaux de bord responsives personnalisables par widgets.
- Editeur Javascript pour personnaliser et créer ses propres widgets.
- Sources de données configurable JSON et XML.
- Controle des lampes LED RGBW Mi-Light.
et une présentation ici http://blog.domadoo.fr/2016/02/16/a-decouverte-de-carte-ipx800v4-de-cge-electronics/
Il nous intéresse ici de savoir que l’IPX possède une API permettant de le contrôler par passage de commandes dans une URL.
Pour peu que vous ayez ouvert un compte chez gce vous pouvez récupérer les mises à jour de l’ipx et la documentation qui nous apprends que pour utiliser l’IPX via JSON ou M2M, il faut y autoriser l’utilisation de l’API.
Dans le menu ip_de_votre_ipx/admin/m2m.htm il suffit d’activer l’API et de donner un code d’accès (1234 par exemple).
Puis ensuite la doc de l’api est assez bien faite pour mettre en place le pilotage et l’interrogation facilement
Sachant que l’ipx 800 à 192.168.1.74 comme adresse ip et que ma clé API est 1234.
Pour activer le Relai 01
http://192.168.1.74/api/xdevices.json?key=1234&SetR=01
Pour le repasser à 0
http://192.168.1.74/api/xdevices.json?key=1234&ClearR=01
Pour incrémenter le Compteur 02 de +2
http://192.168.1.74/api/xdevices.json?key=1234&SetC02=+2
Ces url de pilotage pourront être facilement liées à un switch Domoticz par les action ON/ action OFF pour que celui-ci pilote l’ipx.
On peut aussi grouper les commandes dans un seul appel d’URL de cette façon :
http://IPX800_V4/api/xdevices.json?key=apikey&SetR=01,02,03,04,05,06,07,08 » qui met les 8 relais de l’IPX800V4 à 1.
Pour récupérer des données on utilise Get=R pour relais ou Get=VA pour les virtuelles ou Get=C pour les compteurs
http://192.168.1.74/api/xdevices.json?key=1234&Get=C
renvoie un pavé de valeurs en JSON contenant toutes les valeurs des compteurs.
Exemple :
{
« product »: « IPX800_V4 »,
« C1 »: 0,
« C2 »: 26,
« C3 »: 0,
« C4 »: 0,
« C5 »: 0,
« C6 »: 20,
« C7 »: 0,
« C8 »: 0,
« C9 »: 19050,
« C10 »: 0,
« C11 »: 0,
« C12 »: 0,
« C13 »: 0,
« C14 »: 0,
« C15 »: 0,
« C16 »: 0
}
Il est ensuite facile d’extraire les valeurs recherchées via jq/python ou autres, ici jq dont l’installation est détaillée ici https://easydomoticz.com/manipuler-les-donnees-json-de-domoticz-en-shell/
#!/bin/bash valeurC2=$(curl -s "http://192.168.1.74/api/xdevices.json?key=1234&Get=C"|jq -r .C2) echo $valeurC2
me renverra bien ma valeur attendue pour le compteur 2
Voila, au final une intégration simple et fonctionnelle rapidement sans prise de tête.