Bonjour,
Cela fait une semaine que je tente désespérément de construire ma Gateway KNX sur le Raspberry que j'ai acheté.
J'ai été bloqué à de nombreux endroits. Je vais partager avec vous ces points de blocage et vous me direz peut-être comment débloquer mon utlime problème...
Après une 2ème installation du script, j'ai constaté dans les logs que knxd ne s'était pas installé.
La raison est double.
J'ai du commenter la ligne "mv knxd-master knxd" et une librairie manquait "libev-dev". Je l'ai installée avec la ligne de commande suivante: sudo apt-get install libev-dev
J'ai donc relancé uniquement la partie du script qui concernait knxd, avec la ligne de commande suivante:
sudo sh ./install-trio.sh --raspberry --with-mysql --login=knx --password=mon_password --groups=adm --with-webmin --knxweb-cvsversion --linknx-cvsversion
Précision importante: j'ai un module Busch/Jaeger USB connecté d'une part sur le BUS EIB et d'autre part sur un des ports USB du Raspberry.
Après installation et redémarrage, linknx fonctionne, knxweb fonctionne, knxd.socket est démarré.
Par contre knxd est à l'arrêt (alors qu'il devrait être démarré au boot).
Et sans son démarrage presque rien ne fonctionne...
Lorsque je le démarre en ligne de commande avec ceci: sudo /usr/bin/knxd -e 1.1.128 -t1023 -f9 -DTRS -b usb:1:4:1:0:0
(sans le mode -d daemon), je vois passer tous les messages sur le bus (heure, on/off d'une lampe avec interrupteur physique).
Un ps -aux me donne ceci:
root 10464 0.0 0.3 6780 3196 pts/0 S+ 09:04 0:00 sudo /usr/bin/knxd -e 1.1.128 -t1023 -f9 -DTRS -b usb:1:4:1:0:1
root 10471 0.0 0.3 13936 3268 pts/0 Sl+ 09:04 0:00 /usr/bin/knxd -e 1.1.128 -t1023 -f9 -DTRS -b usb:1:4:1:0:1
Jusque là tout semble fonctionner...
A part le ait de voir 2 ligne presque identiques (avec privilièges user et root...)
J'ai aussi fait le test de démarrer en tant que root et alors je n'ai qu'une ligne dans ps -aux.
Dans le fichier /etc/knxd.conf, seule une ligne est présente (les autres sont commentées):
KNXD_OPTS="-e 1.1.128 -t1023 -f9 -u /tmp/eib -DTRS -b usb:1:4:1:0:0"
Puis je démarre linknx (en mode daemon ou pas) et à nouveau tout se passe bien...
Mais impossible depuis mon ETS, ma page web ou le knxweb de réellement envoyer des commandes de type write ou read...
Pas de messages d'erreur jusqu'à ce que je découvre ceux-ci dans /var/log/syslog:
Feb 16 09:23:12 linknx2 systemd[1]: Starting KNX Daemon...
Feb 16 09:23:12 linknx2 knxd[12273]: knxd: Layer 8 [ 2:/tmp/eib 0.000] OpenLocalSocket /tmp/eib
Feb 16 09:23:12 linknx2 knxd[12273]: knxd: Layer 8 [ 2:/tmp/eib 0.003] LocalSocket opened
Feb 16 09:23:12 linknx2 knxd[12273]: knxd: Layer 3 [ 3:layer3 0.005] Open
Feb 16 09:23:12 linknx2 knxd[12273]: knxd: Layer 3 [ 3:layer3 0.008] L3 started
Feb 16 09:23:12 linknx2 knxd[12273]: knxd: W00000049: knxd is unable to assign addresses to clients (option -E).
Feb 16 09:23:12 linknx2 knxd[12273]: knxd: Layer 3 [ 3:layer3 0.009] registerLayer2 2:/tmp/eib
Feb 16 09:23:12 linknx2 knxd[12273]: knxd: Layer 3 [ 3:layer3 0.009] registerLayer2 2:/tmp/eib = 1
Feb 16 09:23:12 linknx2 knxd[12273]: knxd: Layer 8 [ 4:mcast:knxd 0.009] Open
Feb 16 09:23:12 linknx2 knxd[12273]: knxd: Layer 0 [ 4:mcast:knxd 0.009] Open
Feb 16 09:23:12 linknx2 knxd[12273]: knxd: Layer 0 [ 4:mcast:knxd 0.009] Openend
Feb 16 09:23:12 linknx2 knxd[12273]: knxd: Layer 8 [ 4:mcast:knxd 0.009] OpenD
Feb 16 09:23:12 linknx2 knxd[12273]: knxd: Layer 8 [ 4:mcast:knxd 0.009] OpenedD
Feb 16 09:23:12 linknx2 knxd[12273]: knxd: Layer 8 [ 4:mcast:knxd 0.009] Opened
Feb 16 09:23:12 linknx2 knxd[12273]: knxd: Layer 3 [ 3:layer3 0.009] registerLayer2 4:mcast:knxd
Feb 16 09:23:12 linknx2 knxd[12273]: knxd: Layer 3 [ 3:layer3 0.009] registerLayer2 4:mcast:knxd = 1
Feb 16 09:23:12 linknx2 systemd[1]: knxd.service: main process exited, code=exited, status=1/FAILURE
Feb 16 09:23:12 linknx2 systemd[1]: Failed to start KNX Daemon.
Feb 16 09:23:12 linknx2 systemd[1]: Unit knxd.service entered failed state.
Feb 16 09:23:12 linknx2 knxd[12273]: knxd: Layer 1 [ 5:usb:1:4:1:0:0 0.015] Detect
Feb 16 09:23:12 linknx2 knxd[12273]: initialisation of backend 'usb:1:4:1:0:0' failed: Permission denied
Concernant l'adresse du port USB, je me base sur cette commande: sudo cat /sys/kernel/debug/usb/devices | grep -E "^([TSPD]:.*|)$"
qui me renvoie ceci (uniquement partie intéressante):
T: Bus=01 Lev=02 Prnt=02 Port=02 Cnt=02 Dev#= 4 Spd=12 MxCh= 0
D: Ver= 1.01 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=145c ProdID=1330 Rev= 1.01
S: Manufacturer=Busch-Jaeger Elektro GmbH
S: Product=KNX-USB Interface (Flush mounted)
Ce qui m'amène à donner l'adresse 1:4:1:0:0
Je suis sûr des 2 premiers chiffres.
Sous EIBD, la règle était usb:[bus[:device[:config[:interface]]]]
Je n'ai pas trouvé quelle était la syntaxe avec knxd mais j'ai constaté que l'adresse était composée de 5 valeurs.
Et j'ai encore moins trouvé comment les déterminer (commandes à exécuter et valeurs à récupérer)...
J'ai également essayer de démarrer knxd avec cette commande: knxd -e 1.1.128 -E 7.0.100:28 -t1023 -f9 -u /tmp/eib -DTRS -b usb:1:4:1:0:0
Je n'ai plus d'erreur dans le log syslog, je vois passer tout ce qui se passe sur le bus mais je n'arrive toujours pas à exécuter des commande on/off...
Etant donné que je me retrouvais dans une voie sans issue, j'ai installé eibd, en espérant de meilleurs résultats.
eibd est installé mais c'est la galère...
La commande: /usr/local/bin/eibd -d -D -T -R -S -i -u --eibaddr=1.1.128 usb:1:4:1:0:0
me renvoie ceci:
Segmentation fault
Et lorsque je le démarre: sudo /usr/local/bin/eibd -d -D -T -R -S -i -u --eibaddr=1.1.128 usb:1:4:1:0:0
Pas d'erreur, nulle part, comande exécutée mais rien dans ps -aux ni ailleurs...
Je ne sais donc plus vraiment quoi faire... Si quelqu'un a une idée, ou plusieurs, elles sont les bienvenues...
Merci.