Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Probleme (de débutant!)avec eibd/linknx
#1
Question 
Bonjour a tous!

Je rencontre un probleme avec eibd sur mon pogoplug:
(ip du pogo=192.168.1.15)

si je fais un:
grouplisten ip:192.168.1.15 1/1/4
et en parallele un:
groupwrite ip:192.168.1.15 1/1/4 1

alors, je vois bien ma commande passer dans la fenetre du grouplisten, et mon actuateur knx réagit. Meme chose avec 0 en valeur groupwrite, bein sur.

La ou le probleme se pose, c'est quand un obket knx (en l'occurence mon z38i), envoie une info au groupe 1/1/4...la, l'actuateur knx réagit toujours, mais grouplisten ne voit pas le groupe passer...

Du coup, cela me pose evidemment un probleme avec linknx car il ne voit pas non plus les groupes, et ne peut pas appliquer les regles....

cela dit (deuxieme probleme mais surement lié...), j'ai essayé de faire écrire linknx en definissant une regle qui est toujours vraie:
linknx.html:
<?xml version="1.0" ?>
<config>
<services>
<xmlserver type="inet" port="1028" />
<knxconnection url="ip:127.0.0.1" />
</services>
<objects>
<object type="1.001" id="quad1" gad="1/1/1">quad1</object>
<object type="1.001" id="actuateur1" gad="1/1/4">actuateur1</object>
<object type="1.001" id="actuateur2" gad="1/1/5">actuateur2</object>
<object id="essai" init="off">essai off</object>

</objects>

<rules>
<rule id="declencher actuateur 2" >
<condition type="object" id="essai" value="off" />
<actionlist>
<action type="set-value" id="actuateur1" value="1"/>
</actionlist>
</rule>
</rules>

</config>


j'obtiens ceci (ce qui me parait bien!), mais l'actuateur ne se déclenche pas, et grouplisten ne voit toujours rien passer...donc j'en déduis que linknx ne peut pas non plus écrire....


root@debian:~# linknx -c -w
2011-08-31 11:56:12 [ INFO] XmlInetServer: Starting on port 1028
2011-08-31 11:56:12 [ INFO] Object: Configured object 'quad1': gad=1/1/1
2011-08-31 11:56:12 [ INFO] Object: Configured object 'actuateur1': gad=1/1/4
2011-08-31 11:56:12 [ INFO] Object: Configured object 'actuateur2': gad=1/1/5
2011-08-31 11:56:12 [ INFO] Object: Configured object 'essai': gad=0/0/0
2011-08-31 11:56:12 [ INFO] Rule: Rule: Configuring declencher actuateur 2 (active=1)
2011-08-31 11:56:12 [ INFO] Condition: ObjectCondition: configured value_m='off'
2011-08-31 11:56:12 [ INFO] Rule: ActionList: Configuring 'on-true' action list
2011-08-31 11:56:12 [ INFO] Action: SetValueAction: Configured for object actuateur1 with value on
2011-08-31 11:56:12 [ INFO] Rule: Rule: Configuration done
2011-08-31 11:56:12 [ INFO] main: Config file loaded: /var/lib/linknx/linknx.xml
2011-08-31 11:56:12 [ INFO] KnxConnection: KnxConnection: Group socket opened. Waiting for messages.



merci de votre aide, car je seche bien....Angel

Répondre
#2
(31/08/2011, 10:59:08)jphmilitaire a écrit : La ou le probleme se pose, c'est quand un obket knx (en l'occurence mon z38i), envoie une info au groupe 1/1/4...la, l'actuateur knx réagit toujours, mais grouplisten ne voit pas le groupe passer...

Du coup, cela me pose evidemment un probleme avec linknx car il ne voit pas non plus les groupes, et ne peut pas appliquer les regles....
Salut,

Tu peux essayer de lancer la commande suivante:
vbusmonitor1 ip:127.0.0.1

Cette commande devrait t'afficher une ligne pour chaque ordre qui passe sur le bus. Essaie d'envoyer une info avec le z38i pour vérifier si quelque chose est affiché.

(31/08/2011, 10:59:08)jphmilitaire a écrit : cela dit (deuxieme probleme mais surement lié...), j'ai essayé de faire écrire linknx en definissant une regle qui est toujours vraie:
....

<rules>
<rule id="declencher actuateur 2" >
<condition type="object" id="essai" value="off" />
<actionlist>
<action type="set-value" id="actuateur1" value="1"/>
</actionlist>
</rule>
</rules>
</config>


j'obtiens ceci (ce qui me parait bien!), mais l'actuateur ne se déclenche pas, et grouplisten ne voit toujours rien passer...donc j'en déduis que linknx ne peut pas non plus écrire....
Le problème ici est tout autre.
Dans linknx, l'actionlist que tu définis ici ne sera exécutée que si l'évaluation de la règle est "déclenchée" et que la condition devient vraie (c-à-d quand elle passe de "faux" à "vrai").
Tu pourrais utiliser <actionlist type="if-true">, qui elle est exécutée si l'évaluation de la règle est "déclenchée" et que la condition est vraie (peu importe si elle l'était déjà avant).
Mais cela ne garantit pas pour autant que l'évaluation de la règle sera "déclenchée".
Le déclenchement de l'évaluation d'une règle se produit dans les cas suivants:
- Si la condition contient un timer avec le paramètre trigger="true" et que ce timer atteint le moment ou il doit changer d'état
- Si la condition (avec le paramètre trigger="true") concerne un objet et que cet objet change de valeur
- Si la condition (avec le paramètre trigger="true") concerne un objet défini avec le flag 's' et que cet objet reçoit une valeur (peu importe si cette valeur reçue est égale à la valeur précédente ou pas)

J'espère que ça va un peu clarifier ce fonctionnement. Il faudrait probablement que j'explique tout ça sur le wiki.

Dans ton cas, si tu veux tester une actionlist, le plus simple est d'utiliser un timer:
<rule id="test">
<condition type="timer" trigger="true">
<every>10s</every>
</condition>
<actionlist>
<action type="set-value" id="xyz" value="on" />
</actionlist>
</rule>

Jean-François
Répondre
#3
merci!!

c'est effectivement plus clair...

et, par exemple, j'ai cherché partout sur les forums une action "simple" pour tester si linknx réagissait, et je n'ai trouvé nul part celle ci :
<every>10s</every>

du coup, j'essaye de suite, avec aussi:
vbusmonitor1 ip:127.0.0.1

Tongue

bon, vbusmonitor1 ip:127.0.0.1 ne m'affiche rien quand je change les valeurs avec le z38i...(bien que l'actuateur réagisse hein!)

par contre, quand je change les valeurs avec groupswrite, j'obtiens:
knxuser@debian:~$ vbusmonitor1 ip:127.0.0.1
LPDU: BC 00 00 09 04 F2 00 80 00 3C :L_Data low from 0.0.0 to 1/1/4 hops: 07 T_DATA_XXX_REQ A_GroupValue_Write 00


ce que je ne comprends pas aussi, c'est pourquoi le pc a une adresse de 0.0.0? d'ailleurs, je ne l'ai jamais déclaré dans ets, mais peut etre que j'aurais du non??


Pour linknx, effectivement, avec la regle des 10s, ca fonctionne (enfin, linknx exécute la regle...)

seulement, quand linknx envoie l'ordre, ca ne marche pas...
alors que par groupwrite ca fonctionne...Angry


knxuser@debian:~$ vbusmonitor1 ip:127.0.0.1
[/b]recu apres l'action de eibd. pourquoi "(small)"??, la, l'actionneur ne réagit pas...
LPDU: BC 00 00 09 04 F1 00 81 3E :L_Data low from 0.0.0 to 1/1/4 hops: 07 T_DATA_XXX_REQ A_GroupValue_Write (small) 01

recu apres un groupwrite, la, l'actionneur réagit...
LPDU: BC 00 00 09 04 F2 00 80 01 3D :L_Data low from 0.0.0 to 1/1/4 hops: 07 T_DATA_XXX_REQ A_GroupValue_Write 01




....Help!!Confused
Répondre
#4
Le message "A_GroupValue_Write (small)" correspond à ce qu'envoie la commande groupswrite.
Donc si tu dois utiliser groupwrite pour que l'actuateur réagisse, il te faudra probablement configurer le type de l'objet sur autre chose que "1.001" dans la config de linknx.
C'est difficile de répondre sans connaître l'actuateur que tu utilises et quelle est la config ETS de l'objet de cet actuateur qui est configuré avec l'adresse 1/1/4.

Pour la réception par EIBD de ce qui provient du bus KNX, il semble que quelque chose ne tourne pas rond.
L'adresse 0.0.0 est normale. C'est l'interface au bus qui à sa propre adresse et EIBD ne la connait pas donc il met 0.0.0 pour indiquer sa propre adresse physique.
Quel interface utilises tu pour connecter eibd au bus?

Jean-François
Répondre
#5
merci jeff!!

alors, je réponds en vitesse, ma femme m'attend...

l'actuateur est un actuateur de chauffage, l' abb es 4.1.2.1.
il réagit avec une donnée entrée entre 0 et 255 qu'il traduit en % d'ouverture de la vanne...

qule type d'objet mettrait tu dans la conf de linknx alors??

oui, y'a un truc qui tourne pas rond avec la reception d'eibd...

j'utilise une interface usb ABB DRS/1....

dans l'attente de ta réponse...Angel

merci!
Répondre
#6
(01/09/2011, 19:52:41)jphmilitaire a écrit : il réagit avec une donnée entrée entre 0 et 255 qu'il traduit en % d'ouverture de la vanne...
qule type d'objet mettrait tu dans la conf de linknx alors??
Tu peu utiliser le type "5.xxx" ou "5.001"
Si tu veux que la valeur 100 corresponde à l'ouverture totale, il faut utiliser "5.001". Exemple:
<action type="set-value" id="actuateur1" value="100"/>
Si tu veux que la valeur 255 corresponde à l'ouverture totale, il faut utiliser "5.xxx". Exemple:
<action type="set-value" id="actuateur1" value="255"/>

Plus de détails ici:
http://sourceforge.net/apps/mediawiki/li...ion_Syntax

(01/09/2011, 19:52:41)jphmilitaire a écrit : j'utilise une interface usb ABB DRS/1....
Je suppose que tu voulais dire USB/S 1.1.
Il semble que cet interface a un comportement un peu particulier.
Normalement, certaines interfaces nécessitent d'utiliser la commande
bcuaddrtab -w 0
pour vider la table d'adresses de l'interface. Ce n'est que si cette table est vide que l'interface transmet tout ce qu'elle reçoit du bus vers l'USB.
Normalement, on ne doit faire cette opération qu'une seule fois, mais avec l'interface ABB, il semble que ce soit nécessaire de le refaire après chaque mise sous tension de l'interface.
Pour plus de détails, voir:
http://sourceforge.net/apps/trac/bcusdk/wiki/ABB_USB

Le mieux est de lancer systématiquement cette commande juste avant de démarrer EIBD.

Jean-François
Répondre
#7
ok pour le type 5.xxx, ca marche nickel!!

Pour bcuaddrtab -w 0, j'obtiens "url expected"...et mon grouplisten ne "listen" toujours rien...


et pour continuer,

bcuaddrtab -w 0 usb:
me donne "initialisation failedl"....Dodgy

bon, je redémarre le pogo...
Répondre
#8
Salut,

Plusieurs idées qui me viennent à l'esprit.
Essayer:
bcuaddrtab -w0 usb:
bcuaddrtab --write=0 usb:

Exécuter la commande findknxusb pour connaitre tous les paramètres de l'interface usb. Exemple:
-bash-3.2# findknxusb
Possible addresses for KNX USB devices:
device: 1:3:1:0:0 (Siemens AG:KNX/EIB-USB Interface (DIN rail))
-bash-3.2# bcuaddrtab -w 0 usb:1:3:1:0
Size 0 written
-bash-3.2#

As tu bien stoppé EIBD avant de lancer la commande?

Jean-François
Répondre
#9
Bon, tant qu'on est dans les pb de connexions, j'ai aussi un probleme de reconnaissance de cette fameuse interface ABB...

En effet, les dels usb et knx sont bien allumés, mais le pogoplug ne le reconnait pas a chaque fois, ou met u certain temps a le reconnaitre...

Du coup, je epux lancer eibd, mais les commandes suivantes style "groupswrite" me donnent un "Open failed: Connection refused"....

Je suis en train d'essayer de voir quand mon pogo reconnait l'interface, mais vous avez peut etre une procédure a suivre:
-allumer le pogo avant/apres relier l'usb?
-couper l'alim du réseau knx avant d'allumer le pogo???

bref, je tatonne....Sad

Merci de ta réponse ultra-rapide!!

j'ai bien un pb de reconnaissance de l'usb, car
"findknxusb" me retourne...rien!

je redémarre le pogo et le réseau knx, et je tente de brancher l'usb tout a la fin....

et oui, au début, je n'avais pas arreté eibd...
(dis, comment on arrete eibd sans tout redémarrer?? je me souviens de la commande kill, et du pid...mais sans plus...)

en fait, je crois que le pogo ne cherche pas à actualiser ses ports usb... (quand je déconnecte et reconnecte le cable usb de l'interface knx, la clé usb du pogo ne "réfléchit" pas...)
y'a pas une commande pour ca??

Bon, 4eme édition de mon post...

J'ai fait ceci:
laisser le réseau knx en fonction
coupure de jus du pogo
debrancher l'usb
redémarrer le pogo
se logger en tant que root (je crois que ca joue aussi...)
brancher l'usb
et la miracle, la clé usb du pogo a bien clignotée, et j'ai bien mon interface:

root@debian:~# findknxusb
Possible addresses for KNX USB devices:
device: 1:4:1:0:0 (ABB STOTZ-KONTAKT GmbH:KNX-USB Interface (MDRC))


je tente maintenant la suite...
bcuaddrtab -w0 usb: fonctionne nickel:
Size 0 written

je passe en utilisateur,
je lance eibd..
et impec, le grouplisten me donne bien les t° de mon zennio quad toute les 10 secondes!!
Write from 1.1.1: 0D 00
Write from 1.1.1: 0C FB
Write from 1.1.1: 0D 00


grande victoire! (mais pas de moi!!), et encore merci!!

par contre, sais tu comment lancer eibd en étant root?

(02/09/2011, 21:22:21)jef2000 a écrit : Salut,

Plusieurs idées qui me viennent à l'esprit.
Essayer:
bcuaddrtab -w0 usb:
bcuaddrtab --write=0 usb:

Exécuter la commande findknxusb pour connaitre tous les paramètres de l'interface usb. Exemple:
-bash-3.2# findknxusb
Possible addresses for KNX USB devices:
device: 1:3:1:0:0 (Siemens AG:KNX/EIB-USB Interface (DIN rail))
-bash-3.2# bcuaddrtab -w 0 usb:1:3:1:0
Size 0 written
-bash-3.2#

As tu bien stoppé EIBD avant de lancer la commande?

Jean-François

Répondre
#10
Il faut que le câble USB soit branché avant de démarrer EIBD.
Ce n'est pas comme sous windows où on branche et c'est détecté automatiquement. La détection de la passerelle USB se fait au démarrage de EIBD.

Pour tuer eibd, le plus simple est probablement "killall eibd"

Si tu démarres eibd avec l'option -t65535 à la place de l'option -d , il devrait t'afficher toute sorte de messages permettant de mieux comprendre ce qui se passe entre EIBD et l'interface USB.


Répondre
#11
ok, merci de ces précisions!

entre temps, j'ai édité mon post du dessus:

Bon, 4eme édition de mon post...

J'ai fait ceci:
laisser le réseau knx en fonction
coupure de jus du pogo
debrancher l'usb
redémarrer le pogo
se logger en tant que root (je crois que ca joue aussi...)
brancher l'usb
et la miracle, la clé usb du pogo a bien clignotée, et j'ai bien mon interface:

root@debian:~# findknxusb
Possible addresses for KNX USB devices:
device: 1:4:1:0:0 (ABB STOTZ-KONTAKT GmbH:KNX-USB Interface (MDRC))

je tente maintenant la suite...
bcuaddrtab -w0 usb: fonctionne nickel:
Size 0 written

je passe en utilisateur,
je lance eibd..
et impec, le grouplisten me donne bien les t° de mon zennio quad toute les 10 secondes!!
Write from 1.1.1: 0D 00
Write from 1.1.1: 0C FB
Write from 1.1.1: 0D 00


grande victoire! (mais pas de moi!!), et encore merci!!

par contre, sais tu comment lancer eibd en étant root?
j'en conclus qu'il faut brancher le cable apres que le pogo est fini de démarrer, mais avant de lancer eibd....


je note dans un coin le killall eibd
Répondre
#12
Bonjour!

j'ai décidément un pb de connexion avec eibd...
de maniere générale:
-findknxusb me trouve tj mon interface (mais seulement si je suis root...)
-bcuaddrtab -w0 usb: fonctionne aussi (mais tj en tant que root)
-et, la ou ca merdouille, c'est eibd -S -T -i -e 0.1.100 -t65535 usb: qui en tant que root ne veut pas se lancer (comment faire??), et en tant qu'utilisateur me mets souvent:

knxuser@debian:~$ eibd -S -T -i -e 0.1.100 -t65535 usb:
Layer 10(00057020,4E6345D1) USBLoop-Create
Layer 1(00077B78,4E6345D1) Detect
Layer 1(00077B78,4E6345D1) Close
Layer 1(00077B78,4E6345D1) Release
Layer 1(00077B78,4E6345D1) Close
initialisation of the backend failed


à force d'insiter, ca finit par marcher, mais ca me plait pas....

une solution? (le plus simple serait de tout lancer en tant que root...)
Répondre
#13
Tu es sûr qu'il ne se lance pas en tant que root? Chez moi il affiche un warning mail il démarre quand même:

-bash-3.2# /opt/bin/eibd -i -e 0.1.100 -d usb:
W00000001: EIBD should not run as root
-bash-3.2#
-bash-3.2# ps | grep eibd
911 root 4160 S /opt/bin/eibd -i -e 0.1.100 -d usb:
-bash-3.2#
Répondre
#14
merci jeff....

EDIT : ne t'emebetes pas à me répondre sur les deux prochains posts, J'ai résolu mon probleme tout seul, a force de m'arracher les cheveux...voir 3eme post plus bas, vers 22h45...
mais je laisse les logs pour aider les futurs newbies...Angel

nan, il ne se lance pa en tant que root...Sad

root@debian:~# eibd -i -e 0.1.100 -d usb:
W00000001: EIBD should not run as root
root@debian:~# ps | grep eibd
root@debian:~# ps
PID TTY TIME CMD
1270 pts/0 00:00:00 bash
1286 pts/0 00:00:00 ps
root@debian:~#


j'ai un vrai probleme avec eibd, je crois....

Meme quand j'arrive a le lancer...(et je ne sais pas comment il se lance, mais meme apres bcuaddrtab -w0 usb:, ca n'arrange rien...), et bien un grouplisten ne me donne en gros que 50% du trafic knx...mais c'est tres aléatoire....

du coup, linknx fait aussi a moitié n'importe quoi....

Bref, est ce que c'est mon interface ABB USB/S1.1 qui est responsable de ca? (bien que ca marche nickel sous ets et que je vois tous les paquets knx...)

pour info, je me souviens avoir installé:
wget http://www.auto.tuwien.ac.at/~mkoegler/p...0.8.tar.gz
http://www.auto.tuwien.ac.at/~mkoegler/e...0.5.tar.gz
et linknx 0.1.28...[i]




et la, d'un coup, ca fonctionne (meme en root, effectivement...)

par contre, y'a un truc qui me plait pas:


root@debian:~# eibd -S -T -i -e 0.1.100 -t65535 usb:
Layer 7(00000000,4E6378CD) EIBD should not run as root
W00000001: EIBD should not run as root
Layer 10(00057020,4E6378CD) USBLoop-Create
Layer 1(00077B78,4E6378CD) Detect
Layer 1(00077B78,4E6378CD) Using 1:4:1:0:0 (2:129)
Layer 1(00077B78,4E6378CD) Open
Layer 1(00077B78,4E6378CD) Close
Layer 1(00077B78,4E6378CD) Release
Layer 1(00077B78,4E6378CD) Close
initialisation of the backend failed


mais grouplisten, encore une fois, ne me donne pas tous les paquets qui passent sur le réseau knx...

exemple, T° de la piece : 25°.
je définis ,via l'écran tactile du z38i la t° de consigne à 28° (du coup, lz e38i doit envoyer toutes les 30secondes actuateur on puis 30secondes apres actuateur off)

extrait de grouplisten:
Write from 1.1.2: 01
Write from 1.1.2: 01
Write from 1.1.2: 00
Write from 1.1.2: 01
Write from 1.1.2: 01


il n'a donc pas affiché deux fois la valeur 00, alors qu'elle a bien été envoyée par le z38i (vérifié sous ets, et vérifié par l'extinction de l'actuateur...)

Bref, je comprends vraiment pas pourquoi ca marche qu'a moitié....Dodgy

pour préciser la "panne", il y a encore une chose bizarre:
si je change via le z38i la t° de consigne en passant en dessous puis au dessus de la t° de la piece, grouplisten me renvoie bien chaque commande envoyé par le z38i a l'actuateur sans en oublier une, avec une alternance de 00 et 01, donc....
je viens de faire un killall eibd pour le relancer...

et la, j'obtiens tout ce charabiat...
je ne sais pas si ca peux aider...

root@debian:~# eibd -S -T -i -e 0.1.100 -t65535 usb:
Layer 7(00000000,4E637BDD) EIBD should not run as root
W00000001: EIBD should not run as root
Layer 10(00057020,4E637BDD) USBLoop-Create
Layer 1(00077B78,4E637BDD) Detect
Layer 1(00077B78,4E637BDD) Using 1:4:1:0:0 (2:129)
Layer 1(00077B78,4E637BDD) Open
Layer 1(00077B78,4E637BDD) Claimed
Layer 1(00077B78,4E637BDD) Opened
Layer 1(00077B78,4E637BDD) Send(064): 01 13 09 00 08 00 01 0F 01 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Layer 10(00057020,4E637BDD) LoopStart
Layer 10(00057020,4E637BDD) LoopBegin
Layer 10(00057020,4E637BDD) LoopWait
Layer 0(00077B78,4E637BDD) StartRecv
Layer 0(00077B78,4E637BDD) Send(064): 01 13 09 00 08 00 01 0F 01 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Layer 0(00077B78,4E637BDD) StartSend
Layer 10(00057020,4E637BDD) LoopProcess
Layer 10(00057020,4E637BDD) LoopEnd
Layer 10(00057020,4E637BDD) LoopBegin
Layer 10(00057020,4E637BDD) LoopWait
Layer 0(00077B78,4E637BDD) SendComplete 64
Layer 10(00057020,4E637BDD) LoopProcess
Layer 10(00057020,4E637BDD) LoopEnd
Layer 10(00057020,4E637BDD) LoopBegin
Layer 10(00057020,4E637BDD) LoopWait
Layer 0(00077B78,4E637BDD) RecvComplete 64
Layer 0(00077B78,4E637BDD) RecvUSB(064): 01 13 0B 00 08 00 03 0F 02 00 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Layer 0(00077B78,4E637BDD) StartRecv
Layer 1(00077B78,4E637BDD) Recv(064): 01 13 0B 00 08 00 03 0F 02 00 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Layer 1(00077B78,4E637BDD) Send(064): 01 13 0A 00 08 00 02 0F 03 00 00 05 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Layer 0(00077B78,4E637BDD) Send(064): 01 13 0A 00 08 00 02 0F 03 00 00 05 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Layer 0(00077B78,4E637BDD) StartSend
Layer 1(00077D38,4E637BDD) EMI1
Layer 2(00078B90,4E637BDD) Open
Layer 2(00078B90,4E637BDD) Opened
Layer 3(00078F20,4E637BDD) Open
Layer 2(00078B90,4E637BDD) OpenL2
Layer 0(00077D38,4E637BDD) Send-EMI(005): 46 01 00 60 12
Layer 1(00077B78,4E637BDD) Send(064): 01 13 0D 00 08 00 05 01 01 00 00 46 01 00 60 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Layer 10(00057020,4E637BDD) LoopProcess
Layer 10(00057020,4E637BDD) LoopEnd
Layer 10(00057020,4E637BDD) LoopBegin
Layer 10(00057020,4E637BDD) LoopWait
Layer 0(00077B78,4E637BDD) SendComplete 64
Layer 0(00077B78,4E637BDD) Send(064): 01 13 0D 00 08 00 05 01 01 00 00 46 01 00 60 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Layer 0(00077B78,4E637BDD) StartSend
Layer 10(00057020,4E637BDD) LoopProcess
Layer 10(00057020,4E637BDD) LoopEnd
Layer 10(00057020,4E637BDD) LoopBegin
Layer 10(00057020,4E637BDD) LoopWait
Layer 0(00077B78,4E637BDD) SendComplete 64
Layer 8(00077C48,4E637BDD) OpenInetSocket 6720
Layer 8(00077C48,4E637BDD) InetSocket opened
Layer 8(000781B8,4E637BDD) Open
Layer 0(00079AF0,4E637BDD) Open
Layer 0(00079AF0,4E637BDD) Openend
Layer 3(00078F20,4E637BDD) registerBroadcast 000781B8
Layer 3(00078F20,4E637BDD) registerBroadcast 000781B8 = 1
Layer 3(00078F20,4E637BDD) registerGroup 000781B8
Layer 3(00078F20,4E637BDD) registerGroup 000781B8 = 1
Layer 3(00078F20,4E637BDD) registerIndividual 000781B8 0
Layer 3(00078F20,4E637BDD) registerIndividual 000781B8 = 1
Layer 8(000781B8,4E637BDD) Opened
Layer 4(0007A288,4E637BDD) GroupCacheInit

la, ca reste bloqué, meme si je lance dans une autre fenetre un grouplisten ca me renvoie que eibd n'est pas lancé...je fais donc un ctrlC
^CLayer 8(00077C48,4E637BFB) StopServer
Layer 8(00077C48,4E637BFB) Server ended
Layer 8(000781B8,4E637BFB) Close
Layer 3(00078F20,4E637BFB) deregisterBroadcast 000781B8 = 1
Layer 3(00078F20,4E637BFB) deregisterGroupCallBack 000781B8 = 1
Layer 3(00078F20,4E637BFB) deregisterIndividual 000781B8 = 1
Layer 0(00079AF0,4E637BFB) Close
Layer 4(0007A288,4E637BFB) GroupCacheDestroy
Layer 4(0007A288,4E637BFB) GroupCacheClear
Layer 3(00078F20,4E637BFB) Close
Layer 2(00078B90,4E637BFB) CloseL2
Layer 0(00077D38,4E637BFB) Send-EMI(005): 46 01 00 60 C0
Layer 1(00077B78,4E637BFB) Send(064): 01 13 0D 00 08 00 05 01 01 00 00 46 01 00 60 C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Layer 0(00077B78,4E637BFB) Send(064): 01 13 0D 00 08 00 05 01 01 00 00 46 01 00 60 C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Layer 0(00077B78,4E637BFB) StartSend
Layer 10(00057020,4E637BFB) LoopProcess
Layer 10(00057020,4E637BFB) LoopEnd
Layer 10(00057020,4E637BFB) LoopBegin
Layer 10(00057020,4E637BFB) LoopWait
Layer 0(00077B78,4E637BFB) SendComplete 64
Layer 2(00078B90,4E637BFB) Destroy
Layer 1(00077B78,4E637BFB) Close
Layer 1(00077B78,4E637BFB) Release
Layer 1(00077B78,4E637BFB) Close
Layer 10(00057020,4E637BFB) LoopProcess
Segmentation fault
Répondre
#15
Encore une autre variante...
avec ca, je peux envoyer une commande groupswrite, mais la commande n'arrive pas sur le réseau knx....
J'ai bien fait un bcuaddrtab -w0 usb: avant....

root@debian:~# eibd -S -T -i -e 0.1.100 -t65535 usb:
Layer 7(00000000,4E63BA10) EIBD should not run as root
W00000001: EIBD should not run as root
Layer 10(00057020,4E63BA10) USBLoop-Create
Layer 1(00077B78,4E63BA10) Detect
Layer 1(00077B78,4E63BA10) Using 1:5:1:0:0 (2:129)
Layer 1(00077B78,4E63BA10) Open
Layer 1(00077B78,4E63BA10) Claimed
Layer 1(00077B78,4E63BA10) Opened
Layer 1(00077B78,4E63BA10) Send(064): 01 13 09 00 08 00 01 0F 01 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Layer 10(00057020,4E63BA10) LoopStart
Layer 10(00057020,4E63BA10) LoopBegin
Layer 10(00057020,4E63BA10) LoopWait
Layer 0(00077B78,4E63BA10) StartRecv
Layer 0(00077B78,4E63BA10) Send(064): 01 13 09 00 08 00 01 0F 01 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Layer 0(00077B78,4E63BA10) StartSend
Layer 10(00057020,4E63BA10) LoopProcess
Layer 10(00057020,4E63BA10) LoopEnd
Layer 10(00057020,4E63BA10) LoopBegin
Layer 10(00057020,4E63BA10) LoopWait
Layer 0(00077B78,4E63BA10) SendComplete 64
Layer 10(00057020,4E63BA10) LoopProcess
Layer 10(00057020,4E63BA10) LoopEnd
Layer 10(00057020,4E63BA10) LoopBegin
Layer 10(00057020,4E63BA10) LoopWait
Layer 0(00077B78,4E63BA10) RecvComplete 64
Layer 0(00077B78,4E63BA10) RecvUSB(064): 01 13 0B 00 08 00 03 0F 02 00 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Layer 0(00077B78,4E63BA10) StartRecv
Layer 1(00077B78,4E63BA10) Recv(064): 01 13 0B 00 08 00 03 0F 02 00 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Layer 1(00077B78,4E63BA10) Send(064): 01 13 0A 00 08 00 02 0F 03 00 00 05 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Layer 0(00077B78,4E63BA10) Send(064): 01 13 0A 00 08 00 02 0F 03 00 00 05 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Layer 0(00077B78,4E63BA10) StartSend
Layer 1(00077D38,4E63BA10) EMI1
Layer 2(00078B90,4E63BA10) Open
Layer 2(00078B90,4E63BA10) Opened
Layer 3(00078F20,4E63BA10) Open
Layer 2(00078B90,4E63BA10) OpenL2
Layer 0(00077D38,4E63BA10) Send-EMI(005): 46 01 00 60 12
Layer 1(00077B78,4E63BA10) Send(064): 01 13 0D 00 08 00 05 01 01 00 00 46 01 00 60 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Layer 10(00057020,4E63BA10) LoopProcess
Layer 10(00057020,4E63BA10) LoopEnd
Layer 10(00057020,4E63BA10) LoopBegin
Layer 10(00057020,4E63BA10) LoopWait
Layer 0(00077B78,4E63BA10) SendComplete 64
Layer 0(00077B78,4E63BA10) Send(064): 01 13 0D 00 08 00 05 01 01 00 00 46 01 00 60 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Layer 0(00077B78,4E63BA10) StartSend
Layer 10(00057020,4E63BA10) LoopProcess
Layer 10(00057020,4E63BA10) LoopEnd
Layer 10(00057020,4E63BA10) LoopBegin
Layer 10(00057020,4E63BA10) LoopWait
Layer 0(00077B78,4E63BA10) SendComplete 64
Layer 8(00077C48,4E63BA10) OpenInetSocket 6720
initialisation of the eibd inet protocol failed

Bon, désolé de remplir le post tout seul, mais j'ai réussi a "cibler" le probleme....

En fait, quand eibd ne lit pas l'info knx(par grouplisten ou vbusmonitor), j'obtiens par le -t65535 d'eibd ceci:

Layer 10(00057020,4E63C023) LoopProcess
Layer 10(00057020,4E63C023) LoopEnd
Layer 10(00057020,4E63C023) LoopBegin
Layer 10(00057020,4E63C023) LoopWait
Layer 10(00057020,4E63C023) LoopProcess
Layer 10(00057020,4E63C023) LoopEnd
Layer 10(00057020,4E63C023) LoopBegin
Layer 10(00057020,4E63C023) LoopWait
Layer 0(00077B78,4E63C023) RecvError 2????
Layer 0(00077B78,4E63C023) StartRecv


quand ca fonctionne (soit 3 fois sur 4, et donc parfois juste apres le message du dessus...), j'ai bien :

Layer 0(00077B78,4E63BF33) StartRecv
Layer 10(00057020,4E63BF4E) LoopProcess
Layer 10(00057020,4E63BF4E) LoopEnd
Layer 10(00057020,4E63BF4E) LoopBegin
Layer 10(00057020,4E63BF4E) LoopWait
Layer 0(00077B78,4E63BF4E) RecvComplete 64
Layer 0(00077B78,4E63BF4E) RecvUSB(064): 01 13 11 00 08 00 09 01 01 00 00 49 BC 11 02 09 04 E1 00 81 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Layer 0(00077B78,4E63BF4E) StartRecv
Layer 1(00077B78,4E63BF4E) Recv(064): 01 13 11 00 08 00 09 01 01 00 00 49 BC 11 02 09 04 E1 00 81 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Layer 0(00077D38,4E63BF4E) RecvEMI(009): 49 BC 11 02 09 04 E1 00 81
Layer 2(00078B90,4E63BF4E) Recv L_Data low from 1.1.2 to 1/1/4 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write (small) 01
Layer 2(00078B90,4E63BF4E) Recv LPDU: BC 11 02 09 04 E1 00 81 3D :L_Data low from 1.1.2 to 1/1/4 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write (small) 01
Layer 3(00078F20,4E63BF4E) Recv LPDU: BC 11 02 09 04 E1 00 81 3D :L_Data low from 1.1.2 to 1/1/4 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write (small) 01
Layer 7(000EF890,4E63BF4E) Send Busmonitor-Packet
Layer 8(0007B8A0,4E63BF4E) SendMessage(122): 00 14 4C 50 44 55 3A 20 42 43 20 31 31 20 30 32 20 30 39 20 30 34 20 45 31 20 30 30 20 38 31 20 33 44 20 3A 4C 5F 44 61 74 61 20 6C 6F 77 20 66 72 6F 6D 20 31 2E 31 2E 32 20 74 6F 20 31 2F 31 2F 34 20 68 6F 70 73 3A 20 30 36 20 54 5F 44 41 54 41 5F 58 58 58 5F 52 45 51 20 41 5F 47 72 6F 75 70 56 61 6C 75 65 5F 57 72 69 74 65 20 28 73 6D 61 6C 6C 29 20 30 31 20 00
Layer 2(00078B90,4E63BF4E) Recv L_Data low from 1.1.2 to 1/1/4 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write (small) 01
Layer 3(00078F20,4E63BF4E) Recv L_Data low from 1.1.2 to 1/1/4 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write (small) 01




Une idée sur ce "recverror2"??

cela peut venir de mon cablage??(tous les éléments knx sont a 20 cm les uns des autres?
de la position dans le réseau de l'interface usb??(situé juste apres l'alim, et en début du réseau....)

Je vais essayer de la placer entre l'actuateur et le z38i, bien que je sois sceptique....
edit: évidement, ca ne fonctionne pas mieux...(logique car ets et l'actuateur voient bien toutes les commandes...)
Répondre
#16
YESSSHEU!

Bon, ben j'ai trouvé!!!

en fait, jeff, encore une fois, tu as eu la bonne parole...

Le mieux est de lancer systématiquement cette commande juste avant de démarrer EIBD.

effectivement...

sauf que j'avais compris le "juste apres" comme un "tu as le temps de tapper/de coller la commande eibd apres avoir lancé bcuadrrtab"...

et du coup, pendant ces quelques secondes, et ben l'interface usb avait déja des données qui arrivaient du bus knx et qui venaient mettre le bazard ensuite....(pourquoi comment, j'en sais rien du tout!!)

Donc, recherche sur google, et découverte des deux caractere magiques "&&", permettant de lancer deux lignes de commande a la suite...

la formule magique est donc:

bcuaddrtab -w0 usb: && eibd -S -T -i -e 127.0.0.1 -t65535 usb:

et la tout fonctionne nickel!!
je perds plus de paquets, je vais donc enfin pouvoir commencer plus sérieusement les rules de linknx...

jeff, si tu passes ici, c'est quoi la formule pour attendre avant d'exécuter une action??

merci...

EDIT encore: Ca y est, j'ai trouvé tout seul comme un grand comment faire attendre une action!! (mais c'est bien caché ici hein!)
http://sourceforge.net/apps/mediawiki/li...27s_syntax
All actions in the list are started at the same time, but you can delay some of them using the delay="x" parameter like on any action.Big Grin

donc, pour infos pour les autres (!), ma regle devient ca, pour commuter sur on le contacteur 2, 3 secondes apres que le commutateur 1 est commuté par le z38i...
(l'idée finale est de déclencher ma pompe a chaleur seulement 2 minutes apres que au moins une des 8 thermovannes de plancher chauffant soit ouverte...)

<rule id="allumer actuateur 2" >
<condition type="object" id="actuateur1" value="on" trigger="true">
</condition>

<actionlist>
<action type="set-value" id="actuateur2" value="on" delay="3000ms"/>
</actionlist>
</rule>

Répondre


Atteindre :


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