10/12/2014, 23:06:02
Bonsoir à tous,
J'ai avancé un peu depuis mon dernier message, et je vous remercie encore pour votre aide.
J'ai réussi à paramétrer une visualisation simple mais complète de l'état de mes éclairages dans l'ensemble de ma maison, en consacrant une demie-heure par-ci par-là au paramétrage de cette visualisation sur linknx/knxweb2, tournant sur mon RaspberryPi, et j'allais m'intéresser à la représentation de l'état de mes volets roulants, quand j'ai eu besoin d'arrêter et relancer mon RaspberryPi.
Première mauvaise surprise : autant j'ai sauvegardé régulièrement mon design, autant j'ai totalement oublié de sauvegarder la définition de mes objets dans le fichier linknx.xml. J'ai perdu les 2/3 de mon travail. J'en apprends donc un peu plus sur le fonctionnement de l'interface et ne me ferait plus avoir comme ça !
Deuxième surprise : pour les objets qui sont restés, plus rien ne fonctionne. Enfin si, si je teste mon design, j'arrive en général à allumer une lampe depuis le design, mais son état sur ce dernier ne se met plus à jour, et plus moyen de l'éteindre donc !
J'avais paramétré mon design avec, pour chaque éclairage :
- un objet ecl_<xxx> de type EIS 1.001, correspondant à la GA du retour d'état de la commande d'éclairage de la lampe xxx. La valeur initiale de cet objet était récupérée du stockage persistant, j'ai paramétré une historisation de chaque changement de valeur de cet objet et les flags sont restés ceux par défaut (CWTU).
- un objet on_off_<xxx> de type EIS 1.001, correspondant à la GA de commande d'allumage de la lampe xxx. Paramétrage en tout point identique à l'objet ci-dessus, à ceci près que j'avais paramétré un listener dans cet objet, pointant vers le GA du retour d'état de la commande, et que j'avais coché "lire".
Bon, j'étais arrivé à ce paramétrage un peu par hasard, en tâtonnant, et tant que mon RaspberryPi était en vie, cela fonctionnait à merveille. Je pouvais me connecter de n'importe où (iPad, PC, etc ...) j'avais accès à l'état exact de mes éclairages et je pouvais les modifier par cette interface. Un seul bémol, un petit temps de latence entre l'action faite sur l'interface, et l'état de l'objet après l'action. Ceci était sans doute du au fait que le feedback-object du bouton ne pointait pas sur l'objet de commande mais sur l'objet d'état.
Constatant donc que ma façon de paramétrer ma visualisation pouvait ne pas fonctionner dès la première coupure de courant, j'ai décidé de revoir tout ça et trouver le fonctionnement qui marchera à tous les coups avant de redévelopper totalement ma visualisation.
J'ai lu dans l'historique du forum EIBD/Linknx/knweb2 sur Google groups que je ne suis pas le seul à ne pas bien comprendre la notion de listener. J'ai lu également que je n'étais pas obligé d'utiliser deux objets pour gérer mon éclairage. J'ai donc essayé de reparamétrer ma visualisation ainsi :
- un seul objet déclaré dans linknx concernant mon éclairage.
- sa GA correspond à la commande d'éclairage
- les flags restent inchangés (CWTU)
- sa valeur initiale est théoriquement mise à jour par requête sur le bus
- historisation à chaque changement de valeur
- listener sur la GA correspondant au retour d'état de la commande, case lire cochée.
En clair :
Sur le principe, lorsque je teste mon design, l'état réel de mon éclairage n'est pris en compte qu'après le premier clic sur mon bouton représentant l'éclairage, lequel est paramétré comme suit :
Par contre, plus de temps de latence, ça réagit immédiatement. On ne peut pas perdre sur tous les tableaux !
Un peu d'aide pour m'expliquer comment traiter mon problème ?
Je précise que du point de vue fonctionnement, tous mes BP se comportent à merveille, en simple point comme en multi-point.
Merci de votre aide.
Cordialement.
J'ai avancé un peu depuis mon dernier message, et je vous remercie encore pour votre aide.
J'ai réussi à paramétrer une visualisation simple mais complète de l'état de mes éclairages dans l'ensemble de ma maison, en consacrant une demie-heure par-ci par-là au paramétrage de cette visualisation sur linknx/knxweb2, tournant sur mon RaspberryPi, et j'allais m'intéresser à la représentation de l'état de mes volets roulants, quand j'ai eu besoin d'arrêter et relancer mon RaspberryPi.
Première mauvaise surprise : autant j'ai sauvegardé régulièrement mon design, autant j'ai totalement oublié de sauvegarder la définition de mes objets dans le fichier linknx.xml. J'ai perdu les 2/3 de mon travail. J'en apprends donc un peu plus sur le fonctionnement de l'interface et ne me ferait plus avoir comme ça !
Deuxième surprise : pour les objets qui sont restés, plus rien ne fonctionne. Enfin si, si je teste mon design, j'arrive en général à allumer une lampe depuis le design, mais son état sur ce dernier ne se met plus à jour, et plus moyen de l'éteindre donc !
J'avais paramétré mon design avec, pour chaque éclairage :
- un objet ecl_<xxx> de type EIS 1.001, correspondant à la GA du retour d'état de la commande d'éclairage de la lampe xxx. La valeur initiale de cet objet était récupérée du stockage persistant, j'ai paramétré une historisation de chaque changement de valeur de cet objet et les flags sont restés ceux par défaut (CWTU).
- un objet on_off_<xxx> de type EIS 1.001, correspondant à la GA de commande d'allumage de la lampe xxx. Paramétrage en tout point identique à l'objet ci-dessus, à ceci près que j'avais paramétré un listener dans cet objet, pointant vers le GA du retour d'état de la commande, et que j'avais coché "lire".
Bon, j'étais arrivé à ce paramétrage un peu par hasard, en tâtonnant, et tant que mon RaspberryPi était en vie, cela fonctionnait à merveille. Je pouvais me connecter de n'importe où (iPad, PC, etc ...) j'avais accès à l'état exact de mes éclairages et je pouvais les modifier par cette interface. Un seul bémol, un petit temps de latence entre l'action faite sur l'interface, et l'état de l'objet après l'action. Ceci était sans doute du au fait que le feedback-object du bouton ne pointait pas sur l'objet de commande mais sur l'objet d'état.
Constatant donc que ma façon de paramétrer ma visualisation pouvait ne pas fonctionner dès la première coupure de courant, j'ai décidé de revoir tout ça et trouver le fonctionnement qui marchera à tous les coups avant de redévelopper totalement ma visualisation.
J'ai lu dans l'historique du forum EIBD/Linknx/knweb2 sur Google groups que je ne suis pas le seul à ne pas bien comprendre la notion de listener. J'ai lu également que je n'étais pas obligé d'utiliser deux objets pour gérer mon éclairage. J'ai donc essayé de reparamétrer ma visualisation ainsi :
- un seul objet déclaré dans linknx concernant mon éclairage.
- sa GA correspond à la commande d'éclairage
- les flags restent inchangés (CWTU)
- sa valeur initiale est théoriquement mise à jour par requête sur le bus
- historisation à chaque changement de valeur
- listener sur la GA correspondant au retour d'état de la commande, case lire cochée.
En clair :
Code :
<object type="1.001" id="on_off_bureau" gad="1/0/9" init="request" log="true">Eclairage bureau
<listener gad="1/1/9" read="true" />
</object>
Sur le principe, lorsque je teste mon design, l'état réel de mon éclairage n'est pris en compte qu'après le premier clic sur mon bouton représentant l'éclairage, lequel est paramétré comme suit :
Code :
<control type="button" picture="32x32_lightOff2.png" picture-active="32x32_lightOn2.png" display-picture="no" text="Bureau" size="12" color="#000000" align="" text-padding="0" text-padding-left="0" confirm="no" feedback-object="on_off_bureau" feedback-compare="eq" feedback-value="on" inactive-goto="" inactive-action="" active-goto="" active-action="" x="808" y="545" width="32" height="32" desc="Eclairage du bureau">
<actionlist id="inactive-action">
<action type="set-value" id="on_off_bureau" value="on"/>
</actionlist>
<actionlist id="active-action">
<action type="set-value" id="on_off_bureau" value="off"/>
</actionlist>
</control>
Par contre, plus de temps de latence, ça réagit immédiatement. On ne peut pas perdre sur tous les tableaux !
Un peu d'aide pour m'expliquer comment traiter mon problème ?
Je précise que du point de vue fonctionnement, tous mes BP se comportent à merveille, en simple point comme en multi-point.
Merci de votre aide.
Cordialement.