Ipx 800 v4 et domoticz

Bonjour
Je souhaite interfacer mon ipx 800 v4 avec domoticz , je suis arrivé a commander mon ipx avec domoticz (ouvrir les volets ou allumer la lumiere) ,mais maintenant je voudrait capter des données de temperature ou l état de mes entrée sur domoticz ,je cherche sur tous les forum mais malheureusement pour l instant j ai rien trouvé merci pour vos réponse.

Bonjour Ben1985,
Voici une possibilité: Créer un script shell sous domoticz, qui lit régulièrement le fichier xml de l’IPX, extrait la valeur recherchée et transfert cette valeur par une url à domoticz .
Bien cordialement.

Bonjour Mario,
Je suis intéressé par le script également :slight_smile:

Merci

Bonjour Mario si tu as un exemple de script je suis preneur merci.

Bonjour à tous,
désolé pour le retard,
voici un exemple de script shell:

> # !/bin/bash
> data=$(curl -s "http://xxxx:xxxx@192.168.0.xx/admin/status.xml")
> cpt="$(grep -oP '(?<=<cpt0>).*(?=</cpt0>)' <<<"$data")"
> echo $cpt
> curl "http://192.168.0.xx:8080/json.htm?type=command&param=udevice&idx=12&svalue=$cpt"

Quelques explications:

la première ligne: Obligatoire pour un script shell

Deuxième ligne: On récupère la totalité du fichier xml de l’IPX800V4 sous forme d’une variable appelée data. Veillez à mettre votre propre utilisateur:mot_de_passe et la bonne adresse IP de votre réseau local.

Troisième ligne: Utilisation de la commande GREP : Cette ligne de commande permet de rechercher une valeur comprise entre deux chaines de caractères.
La syntaxe que j’utilise est : '(?<=xxxx).*(?=xxxx)' avec xxxx pour la chaine d’encadrement qui entoure la valeur recherchée et ?< pour ne pas retenir les encadrements dans le résultat.

L’exemple ci-dessus concerne la récupération de la valeur du premier compteur qui est encadrée dans le fichier xml par <cpt0> et </cpt0>

Quatrième ligne: Affichage de la variable, juste pour vérifier si tout est OK

On peut ajouter dans le même script autant de ligne GREP que l’on souhaite pour récupérer d’autres informations, il suffit de copier/coller la ligne GREP et modifier les caractères d’encadrements.

Ensuite, envoi de cette variable vers Domoticz, qui l’interprète au sein d’un capteur virtuel ( idx=12, dans mon exemple)

il y a peut être plus élégant, je laisse le soin à d’autres d’améliorer.
(je n’avais jamais tapé une ligne de code avant de créer ce script !)

Dites-moi si cela répond à votre demande.

Je reste à votre disposition
Bien cordialement

2 « J'aime »

Bonjour,

Je me permets de réveiller ce fil car j’essaie en vain d’interfacer un IPX800 v3 avec Domoticz, et le moins qu’on puisse dire c’est que le résultat est inattendu !
D’un côté, sur l’IPX, je configure un message Push sur une des entrées, je mets l’adresse IP de mon domoticz et le port inutilisé 1234.
De l’autre en ssh sur mon serveur domoticz, je lance la commande suivante:

# nc -l -p 1234

et on attend que l’IPX balance des données. Voici:

GET empty00:04:A3:A2:xx:xx&In=01011100000000000000000000000000&Out=00000100000000000000000000000000&An1=0&An2=0&An3=0&An4=0&C1=71961170&C2=1243106057&C3=390167 HTTP/1.1
Host: ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
User-Agent: GCE-XPUSH
Connection: close

Ca ressemble à un gros bug, non ?

Frédéric
Bruxelles

Je me réponds.
J’ai remis les 3 compteurs avec des valeurs réalistes.
Du coup dans "Host: " on reçoit maintenant « server » qui est la valeur qui provient d’un champ qui n’a rien à voir.
Je suis en train de remettre toutes les variables à d’autres valeurs et pour un des relais, miracle, on a une sortie cohérente !

nc -l -p 1234

GET port6open HTTP/1.1
Host: 192.168.68.25
User-Agent: GCE-XPUSH
Connection: close