Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

J'ai installé le plug in Gardena et les modules virtuels pour un robot tondeuse, des programmateurs d'arrosage et des sondes.

Je voudrais pouvoir récupérer les différentes valeurs des modules (par exemple, pour le sensor, T° ambiante, T° sol, % humidité, luminosité) pour pouvoir les envoyer sur une Lifedomus et les utiliser dans des automates.

Il faut donc a priori une étape intermédiaires (un autre module virtuel qui communique avec LD ?) pour capter, mettre à jour et envoyer les valeurs des paramètres recherchés.

Je n'ai pas trop d'idée de comment passer du module XXX (sensor par exemple) Gardena au module de communication vers LD qui suppose, j'imagine un codage LUA autour de ui.label1.value... + mise à jour auto...

Merci de votre aide,

 

Cordialement,

JN

Posté(e)

tu as une HC2 et une LD ?

La HCC2 n'est qu'une passerelle vers la LD ?

Je ne comprends pas ton architecture.

 

Ceci dit tu devra faire sur ta HC2 du LUA pour envoyer les info vers l'écoute universelle de ta LD, où tu devra créer des équipements avant de pouvoir exploiter les valeurs dans un automate.

 

C'est faisable, mais pas simple.

Et pourquoi passer par la HC2 ?

Posté(e)

Bonjour et merci,

 

Oui, je me sert de la HC2 pour une bonne partie Z-wave, trouvant la gestion des composants beaucoup plus accessible, conviviale et gérable. Ensuite je crée des ponts vers LD avec des scenarios et des modules virtuels HC2 pour passer les commandes et les retours d'état. Lourd, mais cela marche très bien !

Pour les composants Gardena, c'est aussi la facilité : le plug Gardena HC2 permet un paramétrage facile des tondeuse, arroseur et sondes. Je ne sais pas faire l'équivalent dans LD.

D'ou la tentation quand même, LD gérant l'ensemble de mes automates, de pouvoir récupérer les valeurs des différents paramètres des 3 types de composants Gardena et d'ou ma demande...

 

Cordialement,

JN

Posté(e)

donc tu maitrise bien les communications entre la HC2 et la LD.

Mais si tu gères tout ton z-wave depuis la HC2, quels automates sont depuis la LD ???

 

Soit,

Mais que cherches-tu à faire ?

1) récupérer des infos Gardena de la HC2 pour les transmettre à la LD

et/ou

2) transmettre depuis des automates gérés dans la LD des ordre à ta Gardena via la HC2 ?

 

pour le 1), tu veux savoir commenter récupérer les valeurs (les transmettre à la LD tu maitrises)

pour le 2), tu cherche l'API de la HC2 qui te permettrait de modifier certains paramètres  (venant de la LD, mais l'envois tu maitrises, mais ne sais pas où)

Posté(e)

Bonjour et merci,

 

Mes automates LD gèrent plus que du z-wave, j'ai du KNX, de l'IPX, du Zigbee...

SI je maitrise la communication entre HC2 et LD, c'est via la commande JSON qui permet de lire une valeur dans une chaine (à partir d'un équipement LD). Par contre dans le cas des modules virtuels de Gardena, je ne sais pas comment aller chercher les valeurs, autrement dit, qu'elle commande JSON dans l'équipement LD permet de "capter" la valeur du module virtuel, je suppose que cela tourne autour de ui.label.value, mais après quelques tests infructueux, je me retourne vers vous !

 

Cordialement,

JN

 

 

Posté(e)

ok, je comprends bcp mieux maintenant. N'ayant plus de HC2 depuis très longtemps, je ne pourrai pas t'aider plus en détail.

Mais comme tu dis que le plugin a des VD, il y a sûrement moyen de récupérer les valeurs des labels du VD dans un son, mais ça, je ne sais plus comment on fait => une petite recherche sur le forum

Posté(e)

est-ce que ceci ne te retournerait pas le son d'un VD ?

http://<ip box>/api/virtualDevices/<id VD>

 

Posté(e)

Bonsoir,

 

Effectivement cela fonctionne... Merci !

Il faut maintenant que je retrouve comment passer de la liste à la lecture de la valeur du paramètre... Je vais me replonger dans les posts.

 

Cordialement,

JN

Posté(e)

Bonjour,

 

Je cale encore...

 

Le son est en P.J.

La commande dans LD habituelle est du style (avec Tempsensor déclarée en variable) :

try {
    var obj = JSON.parse(trame);
} catch (e) {
    Idprint("Error parse JSON: " + e.message);
};

// récupération de la valeur (value)
Tempsensor = obj.properties.mainloop.ui.sensorambienttemperature.value;

 

Mais ce ne doit pas être (tout à fait) ca !

 

Cdlt, JN

Capture d’écran 2020-06-24 à 17.34.56.jpg

Posté(e)

en fait je crois que ton code interprète les . comme des séparateurs de niveaux de variables obj.properties.mainloop.

mais la valeur finale ui.sensorambienttemperature contient un . également. C'est de là (je pense) que proviendrait l'erreur.

Cherche sur internet comment faire ...

Posté(e)

Bonjour,

 

J'ai tenté pas mal d'alternatives par similitudes avec d'autres codes, mais pour l'instant rien ne colle...

 

Déjà j'ai éliminé le mainLoop qui ne concernait pas la liste des variables mais est une boucle indépendante, le restif ne m'affiche plus "err" mais °C (unité associée à ma variable LD) mais sans la valeur. Je poursuis.

 

JN

Posté(e)

Bonjour,

 

Sujet résolu grâce à mon fiston !

Déjà les données sont en string avec la valeur du paramètre et son unité. Deux effectivement tu avais raison, il faut bien identifier la value sans ".".

Ce qui donne (pour récupérer un paramètre chiffre exploitable) dans la commande de LD :

try {
    var obj = JSON.parse(trame);
} catch (e) {
    Idprint("Error parse JSON: " + e.message);
};

// récupération de la valeur qui indique la temperature dans le fichier Json  
var tmp = obj.properties["ui.sensorambienttemperature.value"];
Tempsensor = tmp.split(" ")[0]

×
×
  • Créer...