Comment utiliser jMQTT avec TTN (IoT)

lorsque tu vas lancer le mode inclusion, jmqtt va créer des devices en fonction de ce que TTN reçoit. Le nom sera une combinaison de plusieurs info décrivant le sujet mqtt. Le nom est changeable. tu peux ensuite sélectionner ce que tu veux garder pour affichage.

voilà un exemple avec un device dans chirpstack.

D’accors, mais ca répond pas à ma question


A qui ‹ identification de connection › doit correspondre dans l’application de la console TTN?
Idem pour ‹ Compte de connexion › et ‹ Mot de passe de connexion ›.

C’est me met encore plus en confusion est quand tu parle de « mode intrusion »
Pourquoi je devrais mettre ma boite Jeedom en mode inclusion, si je ne vais pas inclure des appareils domotique (a l’exception peut-être de virtuel), je vais recevoir des données de TNN via Mosquito?

Dois-je aussi créer des équipements comme je l’ai fais, qui doivent correspondre à des devises que l’on trouce dans l’application TTN?

je parlais du mode inclusion.
il faut faire une recherche TTN et MQTT, tout est décrit.

Si je me souviens bien, il faut utiliser le nom de l’application comme utilisateur et access key pour le mot de passe

Hello
J’ai réussi à le faire


et quand une station LoRaWAN envoit des données, il me crée une action par station

On peut aussi voir la trame LoRaWAN (que je n’ai pas mis en entier)

J’aurais voulu savoir comment tu fais pour récupérer le playload

Par exemple, mon payload est

« payload_fields »:{« b1 »:« 32 »,« b4 »:« 35 »,« ba »:« 382 »

et je dois récupérer les valeurs de b1, b2, b3 et b4 , si elle existe

J’ai essayé de créer un scénario avec les déclancheur suivant (soit toutes mes sations actives

Puis après, j’ai essayé sans vraiment etre sûre de partir dans la bonne direction, de créer un bloque Si de la manière suivante

C’est loin de ce que je veux faire au final, car si la valeur de b1 est en dessous de X, il doit envoyer un message. Mais déjà rien que cette condition retourne une erreur

Expression non valide [#255# matches « /b1/ » ] trouvée dans le scénario : [SmartBuds][MonitorBuds][sc_alarm], résultat :

Je me demandais alors comment tu rcéupérais les données de la trame?

Regarde en ajoutant une commande info avec le même topic auquel tu ajoutes :

{payload_fields}{b1}

Salut, merci pour ta réponse.
Comme cela? J’ai essayé dans une nouvelle et dans une existante. Dans l’existante, ca ne fait pas de différence que je clique sur test

As-tu eu une nouvelle trame qui est arrivée ?

Oui pardon en effet, une trame viens juste d’arriver et il y a bien une valeur!! Coool
Donc il faudrait que je créé autant d’action que des variables que je veux récupérer?
J’ai 4 variables par station. Il faudrai alors que je créée

st1-1 info/autre buds/device/st-1/up {payload_fields}{b1}
st1-2 info/autre buds/device/st-1/up {payload_fields}{b2}
st1-3 info/autre buds/device/st-1/up {payload_fields}{b4}
st1-4 info/autre buds/device/st-1/up {payload_fields}{b4}

st2-1 info/autre buds/device/st-2/up {payload_fields}{b1}
st2-2 info/autre buds/device/st-2/up {payload_fields}{b2}
st2-3 info/autre buds/device/st-2/up {payload_fields}{b4}
st2-4 info/autre buds/device/st-2/up {payload_fields}{b4}

etc…

ou est-ce que je peux les additionner du genre

st1 info/autre buds/device/st-1/up {payload_fields}{b1}{payload_fields}{b2}{payload_fields}{b3}{payload_fields}{b4}

Il te faut autant de commande info que de valeur à récupérer.

OK, merciii

1 « J'aime »

J’aurais encore une question si je peux me permettre

La valeur actuel est de 41. En fait c’est des degré et je le multiplie par 10 pour conserver la virgule. Il faudrait que je le redivise par 10 pour avoir la valeur initial.

J’ai essyaé ceci qui ne marche pas

st1 info/autre buds/device/st-1/up {payload_fields}{b1}/10

est-ce qu’on peut le faire à ce niveau? Avec des caratères d’échapement? Ou je dois traiter ceci *plus loin"

Il faut passer par un virtuel.

Encore mercue Jeandhom

J’ai donc créé un virtuel puis une commande à ce virtuel de type info/numérique et comme valeur, j’ai donné la commande de type info/numérique que j’ai créé hier soir. J’ai ajouté la division par 10, et ca me retourne bien ce que je souhaite

#[SmartBuds][mqtt_buds][devices:st-1-b1]#/10

Ce qui m’interpelle est pour arrivé à mes fins, je dois créer deux commandes quasi identique.

  1. dans Plugins → Protocole domotique → jMQTT → Equomenet → Commande → commande info #[SmartBuds][mqtt_buds][devices:st-1-b1#
  2. Dans mon virtuel, he crée quaisment la meme commande #[SmartBuds][mqtt_buds][devices:st-1-b1#/10

On ne peut pas faire plus simple sans créé une commande dans mon equipement JMQTT (comme je l’ai fait hier soir)?

Depuis mon virtuel, J’ai essayé ceci pour une autre station dont je n’ai pas créé de commande depuis mon équipmement JMQTT (ce que j’ai fais hier soir pour la station 1, et j’ai ajouté {payload_fields}{b1}

#[SmartBuds][mqtt_buds][devices:st-2:up]#{payload_fields}{b1}

J’ai essyé de mettre avant le #.

Est-ce que c’est une muavais piste et je dois rester avec deux commandes, une dans l’équipement jMQTT et une dans mon virtuel, ou y-aurait-il une piste pour faire plus simple

Mercii

#[SmartBuds][mqtt_buds][devices:st-2:up]#{payload_fields}{b1}

ceci me retoune un message d’erreur

[MySQL] Error code : 22001 (1406). Data too long for column ‹ value › at row 1 : REPLACE INTO history SET cmd_id=:cmd_id, datetime=:datetime, value=:value

ce qui pourrait indiquer que le filtre {payload_fields}{b1} ne se fait pas assez tôt, non?

C’est le #plugin-jmqtt qui décode le JSON.
Le #plugin-virtual ne doit pas savoir le faire.
Pour arriver à tes fins, je ne vois pas d’autre solution que de te créer une fonction php dans le fichier user.function.class.php qui serait appelée par ton virtuel et qui aurait pour tâche de décoder le JSON et de renvoyer la valeur qui t’intéresse.

Salut @Jeandhom,
Merci encore pour ta réponse. J’aimerais bien érudier cette piste,
J’ose encore te demander ou je le trouve?
J’ai trouvé ceci

/var/www/html/data/php/user.function.class.php

s’agit-il bien de ce fichier ou dois-je installer le plugin-script ?
Est-ce qu’il y a des informations que je pourrais trouver pour que mon virtuel appelle bien ce script?
Pourrais-tu m’en dire un peu plus?

[Edit] Je vous que le lien que tu m’a mis dans un autre post m’apporte des info que je suis en train d’étudier

Merci pour ton aide et bonne soirée!

Je pense que je t’ai donné toutes les informations dont j’ai connaissance.

Il faut maintenant que tu commences par la base (ne pas brûler d’étape).

Tu dois aussi pouvoir trouver plein de sujets sur le Community.

https://community.jeedom.com/search?q=user.function.class.php

Avec Jeedom, il y a toujours plusieurs façons d’arriver à ses fins, je n’avais pas pensé au plugin-script.

Donc, tu as au moins deux pistes.

Si tu bloques sur un point particulier, n’hésite pas à ouvrir un autre sujet, il y aura plein de personnes pour t’aider.

D’accord merci

Bonjour,
J’ai du travailler sur autre chose, mais je reviens sur ce theme jMQTT.
Ne me souvenant plus exactement comment j’avais fait, j’ai refait l’opération et j’ai profiter pour documenter mes actions : jMQTT et TTM
Si vous avez quelque chose à ajouter, c’est wekcome