[Tuto] Utilisation de la fonction MQTT sur l’IPX800 V5

Bonsoir @patam et @Thierry_59

Dans le tuto, j’ai souhaité lier le Publish à la commande… et d’après mes tests ce n’est pas possible par lien mais uniquement par scénario.

Il est possible de lier un objet Publish à un relais state.

En effet le publish attend une entrée et de même pour le relai commande. C’est pour cela que le relai state existe qui lui fournit une sortie.

Donc oui, pour le réaliser par lien, il aurait fallu prendre le relais state et non le relai cmd. Ce n’était pas mon choix :sweat_smile:

Et on retrouve la logique inverse sur les objets Subscribe qui sont eux liables par liens à une commande relais et non à un relais state

ça peut même permettre d’envoyer une commande MQTT sur un relais depuis plusieurs autres clients MQTT vers le relais 1 (anenomètre ou capteur de pluie=>Fermeture volet) ou d’envoyer l’état d’un relais vers plusieurs autres client MQTT
image


A mon avis le fait d’utiliser une règle est plus élégante je trouves et sera bien plus facile à gérer dans le cas de scénario complexe par contre si les besoins sont limités mettre plusieurs « suscribe » en entrée d’objet à commander et plusieurs « publish » en sortie d’état d’objet à renvoyer peut suffire dans certains cas…

Donc oui, pour le réaliser par lien, il aurait fallu prendre le relais state et non le relai cmd. Ce n’était pas mon choix

Je dirais même plus pour le relais cmd il aurait fallu effectivement prendre un suscribe :yum: En tout cas merci pour le tuto qui amène des réponses avec un cas concret ici le Shelly, cela permet de transposer sur d’autres objets ! :+1:
Par contre je me pose la question du cas de figure ou peut être utile le « MQTT all » ? :thinking:

Bonjour,
Le MQTT all permet de plublier et de souscrire à un Topic en même temps.
Prenons l’exemple avec jedom, si vous utilisez un MQTT all vous êtes capable avec ce seul objet à la fois d’envoyer l’état d’un relais mais aussi de le piloter depuis jeedom, ça évite d’avoir 2 objet MQTT.

Bonjour,

Je rencontre des difficultés avec l’utilisation du MQTT.
Je possède 2 volets roulants Somfy que je pilote avec une box Tost Corp à l’aide du broken maqiatto en MQTT.
J’ai déclaré dans la fenêtre MANAGE MQTT mes différents paramètres qui ont l’air de fonctionner car je n’ai pas de messages d’erreurs en partie basse.
Mon objectif est d’utiliser le MQTT publish de la V5 pour piloter mes volets roulants et ne plus passer par l’application du téléphone.
voici comment fonctionne un volet en monté par exemple. Un volet est un topic. Je dois renseigner les infos suivantes : mail/volet1/u (u pour up).
Je n’arrive pas à comprendre comment paramétrer ça sur un objet publish. A quoi correspond URL et clé?

J’espère avoir été clair. Merci pour votre aide.

Bonjour @micou211187 ,

  • L’URL correspond à la dénomination de votre topic
  • les clés sont les 3 informations (mail/volet1/u) que doit contenir le publish.
    Je vous conseille de vous inspirer de mon tuto ci-dessus pour faire la montée et la descente de vos volets en rajoutant une IO de pilotage car le message ne sera publié qu’en cas de changement d’une variable :wink:

Bonjour,
Vous pouvez chercher sur le forum mqtt vous arrivez à

Cela devrez vous apporter des explications complémentaires
Bonne journée

Bonjour @Jweb et @cce66

Merci pour votre aide. Du coup avec vos explications, je touche du doigt la solution, enfin j’espère.
Pour l’URL et la clé, OK, ça fonctionne et je vois bien les messages arrivée dans le monitoring du MQTT.
Voici ce que j’ai fait :
MQTT

Mon dernier problème est le suivant:
Normalement lorsque j’envoi un ordre depuis mon application téléphonique, voila ce que je peux voir sur le monitoring:

Ecoute

Lorsque j’active une variable sur ma programmation, voici ce que j’obtiens au monitoring :

Comme indique dans votre tuto @Jweb , l’IO utilisé renvoi un message dès qu’il change d’état. Dans mon cas j’ai choisi de faire une impulsion.
Ce qui fait que ça ne fonctionne pas, c’est le nature du message reçu qui ne correspond pas.
Le Payload est entre guillement alors que sur un message classique il ne l’ai pas.

Merci à vous

Bonsoir @micou211187 ,

De ce que j’ai compris du besoin de la payload

  1. soit pour le mail une STR128 (par ex) contenant votre email
  2. soit pour volet : une STR32 (par ex) contenant le nom du volet que vous souhaitez actionner
  3. une STR32 contenant u pour le 1er objet publish (un 2eme objet publish doit contenir d)
  4. une IO volet-up (mon conseil pour actionner le publish) cette IO doit retomber 1s aprés pour que l’objet publish soit toujours disponible

Pour commander la montée faites passer à true l’IO volet-up depuis la V5 (soit par dashboard soit par scénario)
NB: le passage à false de l’IO fera un renvoi de l’objet Publish mais ce n’est pas grave car le message renvoyé sera identique (et l’IO sera ignorée dans l’interprétation de la payload - surtout si elle est en position finale)

Le 2eme objet publish pour baisser le volet:

  1. soit pour le mail une STR128 (par ex) contenant votre email
  2. soit pour volet : une STR32 (par ex) contenant le nom du volet que vous souhaitez actionner
  3. une STR32 contenant d
  4. une IO volet-down (mon conseil pour actionner le publish) cette IO doit retomber 1s aprés pour que l’objet publish soit toujours disponible

EDIT: Une solution plus élégante par la suite suivant évolution de la V5, serait d’enlever les IO et n’utiliser qu’un seul objet Publish en faisant un SET VAL sur la STR32 en l’affectant à u ou à d selon le besoin

@Jweb

Merci pour votre retour,
Si je comprend bien il faut que je paramètre mon objet comme ceci :

Capture d’écran 2022-01-02 205405

Ce que je ne comprend pas, c’est comme actionner le publish avec un IO (scénario) car les variables d’entrées sont du textes ? Quelques choses doit m’échapper.

Bonne soirée

voici un exemple pour l’objet Publish:

contenu de l’objet ouverture STR32:

Sur le dashboard vous pouvez mettre un bouton pour piloter l’IO volet-up
NB: l’IO doit avoir un TB = 1s
Pensez à faire un Subscribe pour connaitre l’etat du volet

Je comprends l’idée.

Je pense que le String 32 « ouverture » n’est pas nécessaire, si je ne me trompe pas, car j’ai besoin du mail/nom du volet/ordre de mouvement (u/d/s)

En effectuant ce paramétrage, voici ce que j’obtiens sur le monitoring :

Capture d’écran 2022-01-02 212058

C’est à la fois simple et complexe ce paramétrage.

Est-ce que cela fonctionne avec votre dernier paramétrage ?

Non pas du tout. la forme du payload n’est pas la bonne.
normalement je ne devrais pas y avoir les guillemets, true false, …
Après payload, il devrais juste y avoir la lettre u (pour une montée)

alors utilisez le paramétrage avec 4 variables que je vous ai indiqué :wink: il y aura bien u ds la payload

Oui et le résultat donne ça :
Capture d’écran 2022-01-02 212058

Les valeurs restes avec des guillements.

cela ne devrait pas donner ce résultat … seule la variable volet-up est en IO et peut repondre true or false, je vous invite à reprendre le paramétrage que je vous ai indiqué…
la variable ouverture (input 3 contient la string u)

L’objet publish doit reseembler à ca:

Ca donne ça
Capture d’écran 2022-01-02 214444

si cela ne fonctionne pas alors il faut que vous m’indiquiez le nom de variables de manière précise attendues par la payload …
Par exemple je ne pense pas que cela soit interprétable en l’état… par

  • votre email : votre email
  • votre nom : votre nom
  • u : u

cela devrait plutôt être qqc du type:

  • email : votre email
  • nom_volet : volet1
  • cmd: u

vous voulez dire changer le nom des variables ? Comme ceci :

oui c’est cela si mail, Volet et Commande sont les clés attendues par l’effecteur