22/06/2010, 17:23:58
On dimanche 20 juin 2010, bidongenial wrote:
> J'ai créé une VM (VMWare) Ubuntu 10.04 dans laquelle j'ai installé le
> BCU SDK et LINKNX, tous les 2 avec succès (apparemment, après
> résolution de quelques messages d'erreurs de make/install).
> J'ai une interface N148/22 pour parler ua bus EIB à partir d'une
> connexion LAN, testée avec succès dans ETS3.
>
> Je démarre eibd: OK
> Je démarre Linknx: OK
> Je visionne dans KNXWEB: OK
> Mais je n'arrive pas à actionner ne serait-ce qu'une loupiotte!
Bon, comme j'en suis aussi à peu près par là (avec des problèmes
différents, dont je vous parlerai plus tard), je vais essayer de te
répondre, puisque ces manipes sont toute fraiches pour moi...
> Je ne suis donc pas sûr que Linknx "parle" bien au bus EIB via eibd et
> la connexion Ethernet - N148/22.
> Comment puis-je m'assurer que je lance eibd avec la bonne adresse IP?
> Le bon port?
>
> Existe-t-il un moyen (très) simple d'envoyer un "ON" / "OFF" sur une
> adresse de groupe à partir d'une ligne de commande shell, via eibd ?
En shell, je ne sais pas trop (il faut pouvoir dialoguer sur un socket),
mais voici ce que j'utilise en python :
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('localhost', 1028))
s.send("<write><object id=\"contact\" value=\"on\"/></write>" + chr(0x04))
print s.recv(255)
> Et qu'indiquer dans linknx.xml comme adresse de connexion?
>
> Je crains de mélanger un peu tout:
> - adresse de mon N148/22
> - adresse de ma VM
> - localhost 127.0.0.1
Alors, si ton N148/22 est à l'adresse 192.168.0.148 (mnémotechnique), voici
ce qu'il faut utiliser pour lancer eibd :
$ eibd -D -S -T -i ipt:192.168.0.148
(tu peux ajouter -d pour lancer en tant que démon, mais c'est pas mal de le
laisser attaché à la console, pour voir d'éventuels messages).
Ensuite, dans linknx, il faut la config minimale suivante :
<?xml version="1.0" ?>
<config>
<objects>
<object id="contact" gad="1/1/1">Contact</object>
</objects>
<rules />
<services>
<knxconnection url="ip:localhost" />
<xmlserver type="inet" port="1028" />
</services>
</config>
Et le script python ci-dessus devrait te permettre de commuter le contact
(à ajuster avec ta config KNX ; il faut peut-être aussi donner son IP,
plutôt que 'localhost', au moins dans le script python si il est exécuté en
dehors de la VM).
> Par ailleurs, qui offre la fonctionnalité "eibserver"? Ma VM ou le
> N148/22?
Ici, eibd (dans ta VM). Mais tu as la version 22 de la passerelle, qui, si
je ne dis pas de conneries, permet d'avoir plusieurs connexions. Donc eibd
en a pris une, il en reste 3. Mais je n'ai peut-être rien compris sur ce
coup, car je n'ai pas encore lu une seule explication claire sur ce point
(avec les histoires de routing/tuneling, etc...).
--
Frédéric
> J'ai créé une VM (VMWare) Ubuntu 10.04 dans laquelle j'ai installé le
> BCU SDK et LINKNX, tous les 2 avec succès (apparemment, après
> résolution de quelques messages d'erreurs de make/install).
> J'ai une interface N148/22 pour parler ua bus EIB à partir d'une
> connexion LAN, testée avec succès dans ETS3.
>
> Je démarre eibd: OK
> Je démarre Linknx: OK
> Je visionne dans KNXWEB: OK
> Mais je n'arrive pas à actionner ne serait-ce qu'une loupiotte!
Bon, comme j'en suis aussi à peu près par là (avec des problèmes
différents, dont je vous parlerai plus tard), je vais essayer de te
répondre, puisque ces manipes sont toute fraiches pour moi...
> Je ne suis donc pas sûr que Linknx "parle" bien au bus EIB via eibd et
> la connexion Ethernet - N148/22.
> Comment puis-je m'assurer que je lance eibd avec la bonne adresse IP?
> Le bon port?
>
> Existe-t-il un moyen (très) simple d'envoyer un "ON" / "OFF" sur une
> adresse de groupe à partir d'une ligne de commande shell, via eibd ?
En shell, je ne sais pas trop (il faut pouvoir dialoguer sur un socket),
mais voici ce que j'utilise en python :
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('localhost', 1028))
s.send("<write><object id=\"contact\" value=\"on\"/></write>" + chr(0x04))
print s.recv(255)
> Et qu'indiquer dans linknx.xml comme adresse de connexion?
>
> Je crains de mélanger un peu tout:
> - adresse de mon N148/22
> - adresse de ma VM
> - localhost 127.0.0.1
Alors, si ton N148/22 est à l'adresse 192.168.0.148 (mnémotechnique), voici
ce qu'il faut utiliser pour lancer eibd :
$ eibd -D -S -T -i ipt:192.168.0.148
(tu peux ajouter -d pour lancer en tant que démon, mais c'est pas mal de le
laisser attaché à la console, pour voir d'éventuels messages).
Ensuite, dans linknx, il faut la config minimale suivante :
<?xml version="1.0" ?>
<config>
<objects>
<object id="contact" gad="1/1/1">Contact</object>
</objects>
<rules />
<services>
<knxconnection url="ip:localhost" />
<xmlserver type="inet" port="1028" />
</services>
</config>
Et le script python ci-dessus devrait te permettre de commuter le contact
(à ajuster avec ta config KNX ; il faut peut-être aussi donner son IP,
plutôt que 'localhost', au moins dans le script python si il est exécuté en
dehors de la VM).
> Par ailleurs, qui offre la fonctionnalité "eibserver"? Ma VM ou le
> N148/22?
Ici, eibd (dans ta VM). Mais tu as la version 22 de la passerelle, qui, si
je ne dis pas de conneries, permet d'avoir plusieurs connexions. Donc eibd
en a pris une, il en reste 3. Mais je n'ai peut-être rien compris sur ce
coup, car je n'ai pas encore lu une seule explication claire sur ce point
(avec les histoires de routing/tuneling, etc...).
--
Frédéric