Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Problème avec LINKNX
#1
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
#2
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
#3
(...)
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.
#4
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.
#5
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
>
#6
> 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
#7
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 ...
#8
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 ...


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)