Problème avec LINKNX - Version imprimable +- Forum KNX francophone / English KNX forum (https://www.knx-fr.com) +-- Forum : Français (https://www.knx-fr.com/forumdisplay.php?fid=3) +--- Forum : Archives eib-domotique (https://www.knx-fr.com/forumdisplay.php?fid=8) +--- Sujet : Problème avec LINKNX (/showthread.php?tid=911) |
Problème avec LINKNX - Casi - 30/04/2009 Bonjour, Lorsque le serveur redémarre (et uniquement apres ça) au redémarrage de linknx et apres une demande d'etat du groupe ecl_ch1. Si la sortie est physiquement ouverte, linknx ferme cette sortie et me reponds que cette sortie est bel est bien fermé alors qu'avant cette demande d'etat la sortie etait bien ouverte. Quelq'un aurait-il deja rencontré ce probleme et comment l'avez vous solutionné? Cordialement, Yannick Problème avec LINKNX - jef2000 - 30/04/2009 Bonjour, Si l'objet est configuré avec les paramètres par défaut, il va demander la valeur actuelle sur le bus en envoyant un télégramme de lecture pour l'adresse de groupe configurée. Le problème n'est donc probablement pas dû à linknx mais a la configuration de ton installation. Comme tu le décris dans la discussion "Configuration ETS", l'état de la sortie change quand tu fais une opération de lecture avec ETS. C'est donc probablement la même chose qui se passe lorsque linknx fais une opération de lecture. Bien à toi, Jean-François On 30 avr, 01:10, Casi <supp...@magikdo.com> wrote: > Bonjour, > > Lorsque le serveur redémarre (et uniquement apres ça) au redémarrage > de linknx et apres une demande d'etat du groupe ecl_ch1. Si la sortie > est physiquement ouverte, linknx ferme cette sortie et me reponds que > cette sortie est bel est bien fermé alors qu'avant cette demande > d'etat la sortie etait bien ouverte. > > Quelq'un aurait-il deja rencontré ce probleme et comment l'avez vous > solutionné? > > Cordialement, > Yannick Problème avec LINKNX - keldo - 01/05/2009 (...) D'ou l'utilité de séparer "adresse de groupe pour la commande" et "adresse de groupe pour le retour d'état", ainsi que de correctement configurer les flags pour CHAQUE objet de CHAQUE participant, pour CHAQUE adresse de groupe ... Un exemple est sans doute plus parlant que de la théorie : En gros, voici la bonne config des flags pour un "bête" circuit ON/OFF (une lampe par exemple). Pré-requis : les objets "retour d'état" ou "information d'état" NE doivent PAS être dans la même adresse de groupe que les objets de commande. 1) Objets de communication reliés l'adresse de groupe (=A.G.) de commande : - boutons poussoirs (et tout ce qui peut "envoyer" un ordre sur cette A.G.) : activer les flags "communication", "transmit" et "write" (ainsi, éventuellement que "update") ; mais absolument désactiver "read". Il faut aussi que le flag "send" soit actif pour cette A.G. - acteur(s) (ou tout ce qui doit "exécuter" l'ordre) : activer les flags "communication", "read" et "write" (ainsi que, éventuellement, "transmit") ; mais absolument désactiver "update". En principe, le flag "send" devrait aussi être actif pour cette A.G., sauf dans le cas ou la (ou les) A.G. est destinée à une "commande centrale" et agit donc sur plusieurs acteurs simultanément (comme par ex. un "Tout OFF pour le RdC") 2) Objets de communication reliés l'A.G. de "retour d'état" : - LED des boutons poussoirs (et tout ce qui peut afficher l'état, comme un canal de visu.) : activer les flags "communication", "update" et "write" ; mais absolument désactiver "read" et "transmit". Pour cette A.G., le flag "send" doit aussi être actif (cet objet de communication ne doit envoyer aucune valeur sur le bus, mais le flag "send" est nécessaire pour pouvoir envoyer des message de type "read request" vers l'A.G., ce qui particulièrement nécessaire dans le cas d'une visu.). - état de l'acteur (au singulier, car un retour d'état n'a de sens que pour un acteur unique, donc il ne peut y avoir qu'une seule A.G. liée à cet objet de communication) : activer les flags "communication", "read" , ainsi que "transmit" ; mais désactiver "update" et "write". Pour cette A.G., le flag "send" doit aussi être actif. - - - Avec cette config, il est impossible pour une visu de faire s'allumer ou s'éteindre un lampe lors du démarrage de la visu ; mais, si la visu doit aussi pouvoir commander la lampe, idéalement cela suppose que la visu propose 2 objets de communication différents par lampe : un objet "commande" et un autre objet pour l'affichage de l'état ... Je ne pense malheureusement pas que ce soit le cas de toutes les visu. :-( Dans le cas des visu qui ne proposent qu'un seul objet de communication, on peut y associer les deux A.G. (commande et retour d'état) mais il faut absolument veiller à ce que le flag "send" soit actif pour l'A.G. "commande" et non pour l'autre A.G. Maintenant, si la visu ne propose pas non plus de flag "send" et envoit d'office un télégramme sur toutes les G.A. reliées à l'objet de communication, mieux vaut ne rien commander avec cette visu ... ou bien en changer ... ;-) - - - Si l'on ne désire pas utiliser une seconde A.G., dédiée au retour d'état, c'est aussi possible mais c'est moins "propre" et il faut un petit peu modifier mon explication sur les flags. (mais la, ce sera pour une autre fois, j'ai les doigts qui fatiguent ... ;-)). N.B. : Ne pas oublier que les flags "read" et "update" sont toujours mutuellement exclusifs (= il ne faut JAMAIS les activer en même temps) sur un même objet de communication. Problème avec LINKNX - Casi - 01/05/2009 Merci pour cette explication trés complete! Je pense que ça servira a d'autres débutants du monde knx car c'est effectivement mal documenté. Cordialement, Yannick On 1 mai, 01:09, keldo <kelderm...@ibelgique.com> wrote: > (...) > D'ou l'utilité de séparer "adresse de groupe pour la commande" et > "adresse de groupe pour le retour d'état", ainsi que de correctement > configurer les flags pour CHAQUE objet de CHAQUE participant, pour > CHAQUE adresse de groupe ... > > Un exemple est sans doute plus parlant que de la théorie : > > En gros, voici la bonne config des flags pour un "bête" circuit ON/OFF > (une lampe par exemple). > Pré-requis : les objets "retour d'état" ou "information d'état" NE > doivent PAS être dans la même adresse de groupe que les objets de > commande. > > 1) Objets de communication reliés l'adresse de groupe (=A.G.) de > commande : > > - boutons poussoirs (et tout ce qui peut "envoyer" un ordre sur cette > A.G.) : activer les flags "communication", "transmit" et > "write" (ainsi, éventuellement que "update") ; mais absolument > désactiver "read". > Il faut aussi que le flag "send" soit actif pour cette A.G. > > - acteur(s) (ou tout ce qui doit "exécuter" l'ordre) : activer les > flags "communication", "read" et "write" (ainsi que, éventuellement, > "transmit") ; mais absolument désactiver "update". > En principe, le flag "send" devrait aussi être actif pour cette A.G., > sauf dans le cas ou la (ou les) A.G. est destinée à une "commande > centrale" et agit donc sur plusieurs acteurs simultanément (comme par > ex. un "Tout OFF pour le RdC") > > 2) Objets de communication reliés l'A.G. de "retour d'état" : > > - LED des boutons poussoirs (et tout ce qui peut afficher l'état, > comme un canal de visu.) : activer les flags "communication", > "update" et "write" ; mais absolument désactiver "read" et "transmit". > Pour cette A.G., le flag "send" doit aussi être actif (cet objet de > communication ne doit envoyer aucune valeur sur le bus, mais le flag > "send" est nécessaire pour pouvoir envoyer des message de type "read > request" vers l'A.G., ce qui particulièrement nécessaire dans le cas > d'une visu.). > > - état de l'acteur (au singulier, car un retour d'état n'a de sens que > pour un acteur unique, donc il ne peut y avoir qu'une seule A.G. liée > à cet objet de communication) : activer les flags "communication", > "read" , ainsi que "transmit" ; mais désactiver "update" et "write". > Pour cette A.G., le flag "send" doit aussi être actif. > > - - - > > Avec cette config, il est impossible pour une visu de faire s'allumer > ou s'éteindre un lampe lors du démarrage de la visu ; mais, si la visu > doit aussi pouvoir commander la lampe, idéalement cela suppose que la > visu propose 2 objets de communication différents par lampe : un objet > "commande" et un autre objet pour l'affichage de l'état ... > Je ne pense malheureusement pas que ce soit le cas de toutes les > visu. :-( > Dans le cas des visu qui ne proposent qu'un seul objet de > communication, on peut y associer les deux A.G. (commande et retour > d'état) mais il faut absolument veiller à ce que le flag "send" soit > actif pour l'A.G. "commande" et non pour l'autre A.G. > Maintenant, si la visu ne propose pas non plus de flag "send" et > envoit d'office un télégramme sur toutes les G.A. reliées à l'objet de > communication, mieux vaut ne rien commander avec cette visu ... ou > bien en changer ... ;-) > > - - - > > Si l'on ne désire pas utiliser une seconde A.G., dédiée au retour > d'état, c'est aussi possible mais c'est moins "propre" et il faut un > petit peu modifier mon explication sur les flags. > (mais la, ce sera pour une autre fois, j'ai les doigts qui > fatiguent ... ;-)). > > N.B. : Ne pas oublier que les flags "read" et "update" sont toujours > mutuellement exclusifs (= il ne faut JAMAIS les activer en même temps) > sur un même objet de communication. Problème avec LINKNX - Mathieu Gallissot - 01/05/2009 Normalement, une trame de lecture ne doit provoquer aucune commande, quelque soit la configuration, et quelque soit la nature du datapoint que l'on veut lire (IOO, OO...). Cela viens probablement des couches plus hautes de Linknx. 2009/4/30 jef2000 <jef2000@ouaye.net> > > Bonjour, > > Si l'objet est configuré avec les paramètres par défaut, il va > demander la valeur actuelle sur le bus en envoyant un télégramme de > lecture pour l'adresse de groupe configurée. Le problème n'est donc > probablement pas dû à linknx mais a la configuration de ton > installation. Comme tu le décris dans la discussion "Configuration > ETS", l'état de la sortie change quand tu fais une opération de > lecture avec ETS. C'est donc probablement la même chose qui se passe > lorsque linknx fais une opération de lecture. > > Bien à toi, > > Jean-François > > On 30 avr, 01:10, Casi <supp...@magikdo.com> wrote: > > Bonjour, > > > > Lorsque le serveur redémarre (et uniquement apres ça) au redémarrage > > de linknx et apres une demande d'etat du groupe ecl_ch1. Si la sortie > > est physiquement ouverte, linknx ferme cette sortie et me reponds que > > cette sortie est bel est bien fermé alors qu'avant cette demande > > d'etat la sortie etait bien ouverte. > > > > Quelq'un aurait-il deja rencontré ce probleme et comment l'avez vous > > solutionné? > > > > Cordialement, > > Yannick > Problème avec LINKNX - jef2000 - 01/05/2009 > Normalement, une trame de lecture ne doit provoquer aucune commande, quelque > soit la configuration, et quelque soit la nature du datapoint que l'on veut > lire (IOO, OO...). Une requète de lecture ne provoque aucune commande en elle même, mais la réponse à celle ci est reçue par tous les participants et, suivant la configuration des flags, peut provoquer le changement de valeur d'un actuateur. > Cela viens probablement des couches plus hautes de Linknx. Je ne pense pas, et je pense être relativement bien placé pour en juger. Bien à vous, Jean-François Problème avec LINKNX - keldo - 01/05/2009 Je ne peut que confirmer les dires de Jef2000. Voici très probablement le cas de figure auquel Casi est confronté : 1) - L'acteur est en position ON, la lampe est allumée. - L'objet de communication "commande ON/OFF" de l'acteur (=une sortie binaire, dans ce cas-ci) de la lampe a son flag "update" actif (ce qui est une erreur dans ce cas-ci), ainsi que son flag "write" (ce qui correct) , par contre, le flag "read" est probablement inactif (ce qui est une erreur, surtout si on n'utilise pas une adresse de groupe séparée pour le retour d'état). - Cet objet de comm. est relié à l'adresse de groupe 4/2/17 (exemple pris au hasard). 2) - La visu LinKNX est éteinte. - Dans la config. de la visu, un objet de communication est relié à 4/2/17. - Dans la config. de la visu, cet objet de communication a les flags "write", "transmit" et "update" actifs (ce qui correct), ainsi que le flag "read" (et ça, c'est une grosse erreur). 3) - On allume la visu. - La visu envoit un télégramme "read value" sur 4/2/17 pour mettre à jour son affichage du statut de la lampe. - L'acteur, qui est pourtant le seul à détenir une information pertinente, NE répond PAS vu que son flag "read" est inactif. - La visu, qui est la seule à avoir son flag "read" actif, se répond à elle-même en donnant sur le bus la seule valeur dont elle dispose, à savoir, "0", qui est la valeur par défaut de toutes ses variables en mémoire juste après l'initialisation du programme de visu ... - L'acteur voit sur le bus cette réponse erronée et, comme le flag "update" de son objet de comm. est actif, il met à jour la valeur de son objet, écrasant la précédente valeur ("1" = allumé), correcte, par la valeur "par défaut" de la visu ("0" = éteind). 4) - L'utilisateur se demande pour il vient de se retrouver dans le noir sans avoir touché à ses boutons poussoirs. ;-) Les flags EIB, ce n'est pas compliqué à comprendre, mais cela demande un certain temps pour bien saisir toutes les subtilités ... Problème avec LINKNX - Casi - 03/05/2009 Bonjour, Merci pour ces emplications qui ont pu me conduire à la solution. Effectivement le problème ne venait pas de LINKNX mais de la configuration de mes flags comme expliqué par keldo Cordialement, Yannick On 2 mai, 00:04, keldo <kelderm...@ibelgique.com> wrote: > Je ne peut que confirmer les dires de Jef2000. > > Voici très probablement le cas de figure auquel Casi est confronté : > > 1) > - L'acteur est en position ON, la lampe est allumée. > - L'objet de communication "commande ON/OFF" de l'acteur (=une sortie > binaire, dans ce cas-ci) de la lampe a son flag "update" actif (ce qui > est une erreur dans ce cas-ci), ainsi que son flag "write" (ce qui > correct) , par contre, le flag "read" est probablement inactif (ce qui > est une erreur, surtout si on n'utilise pas une adresse de groupe > séparée pour le retour d'état). > - Cet objet de comm. est relié à l'adresse de groupe 4/2/17 (exemple > pris au hasard). > > 2) > - La visu LinKNX est éteinte. > - Dans la config. de la visu, un objet de communication est relié à > 4/2/17. > - Dans la config. de la visu, cet objet de communication a les flags > "write", "transmit" et "update" actifs (ce qui correct), ainsi que le > flag "read" (et ça, c'est une grosse erreur). > > 3) > - On allume la visu. > - La visu envoit un télégramme "read value" sur 4/2/17 pour mettre à > jour son affichage du statut de la lampe. > - L'acteur, qui est pourtant le seul à détenir une information > pertinente, NE répond PAS vu que son flag "read" est inactif. > - La visu, qui est la seule à avoir son flag "read" actif, se répond à > elle-même en donnant sur le bus la seule valeur dont elle dispose, à > savoir, "0", qui est la valeur par défaut de toutes ses variables en > mémoire juste après l'initialisation du programme de visu ... > - L'acteur voit sur le bus cette réponse erronée et, comme le flag > "update" de son objet de comm. est actif, il met à jour la valeur de > son objet, écrasant la précédente valeur ("1" = allumé), correcte, par > la valeur "par défaut" de la visu ("0" = éteind). > > 4) > - L'utilisateur se demande pour il vient de se retrouver dans le noir > sans avoir touché à ses boutons poussoirs. > ;-) > > Les flags EIB, ce n'est pas compliqué à comprendre, mais cela demande > un certain temps pour bien saisir toutes les subtilités ... |