Attendre la réponse RFXCom

Bonjour à tous.

Utilisateur de Jeedom depuis maintenant 4ans je viens enfin de connecter mes volets Cherubini… (je commençait à désespérer).

Avec le plugin RFX-Com et un module 433XL on peut maintenant le faire.

Du coup maintenant j’ai un petit problème avec les communications, en effet celle ci sont faites d’une commande et de la réponse associée. Du coup lorsque je veux effectuer plusieurs commandes en même temps celle ci sont jouées avant la réception de la première réponse et du coup uniquement la première commande est jouée.

Il faudrait pouvoir faire un système de queue qui permet d’attendre la réponse avant de jouer la commande suivante.

Est-ce que quelqu’un a déjà rencontré ce type de cas et avez vous une solution ?

Voici la type de trame qui passe :

Commande : 
================================================
07/03/2021 12:41:38:201= Blinds command: 09191215103104000200
================================================
Packettype    = BLINDS1
subtype       = Cherubini
Sequence nbr  = 21
id1-3         = 103104 decimal:1061124
Command       = Stop
Signal level  = +10 dBm

Réponse : 
------------------------------------------------
07/03/2021 12:41:38:654= 0402011500
Packettype        = Receiver/Transmitter Message
subtype           = Transmitter Response
Sequence nbr      = 21
response          = ACK, data correct transmitted

Merci pour vos retour :slight_smile:

Bonjour

Passez par un scénario. Et attendez le retour d’état pour lancez la commande suivante et ainsi de suite.
Vous pouvez le faire avec des wait.

Le retour semble arriver vite, vous pouvez aussi simplement faire ses pauses (spleep) entre deux commandes.

Bonjour @Bitoons @Fabrice
Pour information, cette réponse est seulement une information du RFXCOM pour dire qu’il a reçu un ordre de commande et qu’il le transmet si OK. Ce n’est pas une réponse du « module des volets » .
Sequence nbr ICI = 21 doivent correspondre pour retrouver la cde …
Elle est maintenant implémentée dans le plugin .

Chaque « volet » est représenté par un object dans le plugin RFXCom, que j’ai ensuite couplé par un virtuel (le but par la suite est de mettre un capteur pour savoir si il est fermé ou pas).

Chaque commande marche très bien individuellement par contre je me suis fait d’autres virtuels qui représentent le rez-de-chaussée ou l’étage ce qui me permet d’envoyer toutes les commandes sur une zone.

J’ai essayé de mettre toutes les commandes directement dans le virtuel mais je n’avais que le premier qui se déclenchait.
Ensuite j’ai placé tout mes commandes dans un scénario que je déclenche avec un changement de variable (d’ailleurs est-ce qu’il y a une solution pour déclencher directement un scénario depuis un virtuel, sans passer par la mise à jour de la valeur d’une variable ?).

Ce système marche bien mais si par exemple avec Google Home je dis ferme tout les volets, coté Google il envoi 10 requêtes d’un coup et du coup je n’ai que le premier qui passe.

@Doubledom qu’est-ce que tu entends par « Elle est maintenant implémentée dans le plugin » .

Merci.

Si tu log avec le plugin, tu verras la même réponse …

Pour les volets , c’est dommage il existe des cde de groupe , je vois que pas beaucoup s’en serve …

Je peux aussi faire une commande qui regroupe plusieurs volets avec cherubini.
Par exemple un commande qui ferme tout les volets, mais avec Google home si je dit ferme tous les volets il va passer par 10 commandes unitaire (une pour chaque volet).

Je ne sais pas comment tu as initialisé tes cde , mais on peut faire une cde de groupe pour une série particulière, c’est le RFXCOm qui envoie cette cde comme la Tlcde

pour initialiser les codes je place mon volets en mode appairage avec la télécomande et ensuite avec le soft RFXmngr j’en voir une demande d’appairage.

Ensuite j’envoi chaque commande unitairement pour récupérer le code dans la console.
par exemple pour un volet je vais avoir ça

ouvrir
================================================
03/03/2021 11:01:42:262= Blinds command: 09 19 12 42 10 30 0C 00 00 00 
================================================
Packettype    = BLINDS1
subtype       = Cherubini
Sequence nbr  = 66
id1-3         = 10300C decimal:1060876
Command       = Open
Signal level  = +10 dBm
------------------------------------------------
03/03/2021 11:01:42:715= 0402014200
Packettype        = Receiver/Transmitter Message
subtype           = Transmitter Response
Sequence nbr      = 66
response          = ACK, data correct transmitted

fermer
================================================
03/03/2021 11:01:47:442= Blinds command: 09 19 12 43 10 30 0C 00 01 00 
================================================
Packettype    = BLINDS1
subtype       = Cherubini
Sequence nbr  = 67
id1-3         = 10300C decimal:1060876
Command       = Close
Signal level  = +10 dBm
------------------------------------------------
03/03/2021 11:01:47:848= 0402014300
Packettype        = Receiver/Transmitter Message
subtype           = Transmitter Response
Sequence nbr      = 67
response          = ACK, data correct transmitted


ce code je le place dans le plugin RFXCom

Alors que le plugin le fait Bien , ils sont sur quelle fréquence tes volets 433.92 ou 433.42

il me semble que c’est du 433,92 MHz

Pour répondre à une des question, oui tu peux déclencher un scénario par un virtuel, avec une info virtuelle « état » qui sera le déclencheur du scénario (l’info n’est pas obligatoirement visible sur le virtuel).

Après dans ton scénario tu peux envoyer les commandes les unes derrières les autres avec un délai [sleep] de quelques secondes entre chaque.

Merci, c’est ce que j’ai fait du coup.
je demandais surtout si dans un virtuel on pouvait placer directement un scénario sans passer par une info état du virtuel.

pour cette partie ça marche bien. Par contre, je ne gère pas si j’ai plusieurs commande qui viennent de Google Home par exemple.

Tu peux essayer dans le virtuel : dans ta commande - roue crantées - Configuration - Action après exécution de la commande :

Tu ajoutes tes commandes intercalées avec une commande pause de quelques secondes.

1 « J'aime »