28/08/2010, 19:38:08
Salut,
Je vois plusieurs pistes pour essayer de savoir ce qui se passe.
1) Comme knxweb communique avec le script linknx.php qui à son tour se
connecte à linknx (sur le port 1028), tu pourrais lancer un analyseur
de paquets (du style wireshark) pour voir ce qui se passe entre le
scripts linknx.php et linknx (sur le port 1028 à moins que tu ne l'aie
modifié).
2) Utiliser le script php http://ouaye.net/linknx/other/linknx-cmd-php.txt
(copié sur le serveur web ou se trouve knxweb et renommé en linknx-
cmd.php) pour envoyer/recevoir toutes sortes de commandes à linknx et
voir les résultats.
3) Regarder quels sont les messages affichés par linknx (lorsque tu le
lance en ligne de commande, sans l'option -d). En particulier si des
messages sont affichés quand knxweb fait ses requètes de lecture
d'état toutes les secondes.
Que vois-tu exactement dans firebug quand knxweb essaie de lire
l'état? Peux-tu poster la requète exacte qu'il envoie. Que se passe-t-
il ensuite. Est-ce que le script linknx.php envoie immédiatement une
réponse vide? Ou une réponse contenant <read status='success"> ...</
read> mais pas la valeur de l'objet dedans? Ou bien est-ce-que la
requète reste en attente et se termine par un timeout?
Bien à toi,
Jean-François
On 28 août, 14:19, Nicolas Garnier <n.b.garn...@gmail.com> wrote:
> Merci pour ta réponse.
>
> je viens de re-tester comme tu me l'indiques, et c'est un peu surprenant.
>
> Test 1 : J'ai dans knxweb un design avec une seule zone, et dans cette zone
> un seul objet (une lampe, enfin, un switch). Cet objet existe bien dans
> linknx (il est défini dans le fichier conf/linknx.xml), et je peux
> l'actionner à partir de knxweb. Par contre, impossible d'avoir son vrai état
> dans knxweb. Firebug montre que les opérations imposées pas knxweb de
> commutation fonctionne bien, et je peux voir leur réponse. Par contre, il
> n'y a jamais de réponse de linknxw pour une interrogation en lecture de
> l'état.
>
> Test 2 : Suivant tes indications (mais en les déformant un peu ;-) ), j'ai
> changé le nom de l'objet dans knxweb (j'ai mis un nom qui n'existe pas dans
> linknx). Et là, j'ai un message d'erreur dans knxweb qui m'indique que
> l'objet n'existe pas. En plus, firebug montre que knxweb demande toutes les
> secondes l'état à linknx, et la réponse existe à chaque fois, et elle est
> une erreur (l'objet n'existe pas).
>
> Ce qui me surprend, c'est que dans le 2eme cas, knxweb et linknx arrivent à
> communiquer (toutes les secondes, pour avoir l'etat des objets), mais que
> dans le premier cas (quand l'objet existe), linknx n'envoie jamais l'etat...
>
> Je pensais d'abord à un problème du cote de knxweb, mais je penche
> maintenant pour un probleme de linknx. Je vais essayer de le recompiler.
Je vois plusieurs pistes pour essayer de savoir ce qui se passe.
1) Comme knxweb communique avec le script linknx.php qui à son tour se
connecte à linknx (sur le port 1028), tu pourrais lancer un analyseur
de paquets (du style wireshark) pour voir ce qui se passe entre le
scripts linknx.php et linknx (sur le port 1028 à moins que tu ne l'aie
modifié).
2) Utiliser le script php http://ouaye.net/linknx/other/linknx-cmd-php.txt
(copié sur le serveur web ou se trouve knxweb et renommé en linknx-
cmd.php) pour envoyer/recevoir toutes sortes de commandes à linknx et
voir les résultats.
3) Regarder quels sont les messages affichés par linknx (lorsque tu le
lance en ligne de commande, sans l'option -d). En particulier si des
messages sont affichés quand knxweb fait ses requètes de lecture
d'état toutes les secondes.
Que vois-tu exactement dans firebug quand knxweb essaie de lire
l'état? Peux-tu poster la requète exacte qu'il envoie. Que se passe-t-
il ensuite. Est-ce que le script linknx.php envoie immédiatement une
réponse vide? Ou une réponse contenant <read status='success"> ...</
read> mais pas la valeur de l'objet dedans? Ou bien est-ce-que la
requète reste en attente et se termine par un timeout?
Bien à toi,
Jean-François
On 28 août, 14:19, Nicolas Garnier <n.b.garn...@gmail.com> wrote:
> Merci pour ta réponse.
>
> je viens de re-tester comme tu me l'indiques, et c'est un peu surprenant.
>
> Test 1 : J'ai dans knxweb un design avec une seule zone, et dans cette zone
> un seul objet (une lampe, enfin, un switch). Cet objet existe bien dans
> linknx (il est défini dans le fichier conf/linknx.xml), et je peux
> l'actionner à partir de knxweb. Par contre, impossible d'avoir son vrai état
> dans knxweb. Firebug montre que les opérations imposées pas knxweb de
> commutation fonctionne bien, et je peux voir leur réponse. Par contre, il
> n'y a jamais de réponse de linknxw pour une interrogation en lecture de
> l'état.
>
> Test 2 : Suivant tes indications (mais en les déformant un peu ;-) ), j'ai
> changé le nom de l'objet dans knxweb (j'ai mis un nom qui n'existe pas dans
> linknx). Et là, j'ai un message d'erreur dans knxweb qui m'indique que
> l'objet n'existe pas. En plus, firebug montre que knxweb demande toutes les
> secondes l'état à linknx, et la réponse existe à chaque fois, et elle est
> une erreur (l'objet n'existe pas).
>
> Ce qui me surprend, c'est que dans le 2eme cas, knxweb et linknx arrivent à
> communiquer (toutes les secondes, pour avoir l'etat des objets), mais que
> dans le premier cas (quand l'objet existe), linknx n'envoie jamais l'etat...
>
> Je pensais d'abord à un problème du cote de knxweb, mais je penche
> maintenant pour un probleme de linknx. Je vais essayer de le recompiler.