Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
complètementperdue
#1
Bonjour,
voilà je suis navrée de poser une question qui doit revenir souvent mais ça fait quelques temps que j'épluche le web et ce forum et plus ça va et plus je suis perdue. Je suis en BTS info et nous avons une installation domotique avec un module KNX N148/22 le but de mon projet est de réussir à commander ce module par le biais du robot Nao donc la solution la plus simple serait de créer un programme en python pour cela.
J'i installé KNXweb,Linknx et eibnetmux et eibd et pynknx....et je ne comprends RIEN à ce que j'ai fait...
Si j'ai bien compris KNXweb c'est pour avoir une interface web?
Pynknx serait comme une librairie pour commander l'installation linknx en python?
Pourriez-vous m'éclairer s'il vous plait? Parce que tout est complètement confus pour moi...Surtout que je suis la seule du lycée à faire ça et que visiblement même nôtre prof est perdu..
Répondre
#2
Il faudrait que tu nous donnes plus de billes... L'installation KNX est déjà programmée ? Tu disposes des adresses de groupes sur lesquelles lire/écrire pour dialoguer avec l'installation, c'est bien ça ?

Tu veux/dois absolument utiliser python ? Que faut-il faire depuis ce script ? Va-t-il servir à faire des choses complexes, ou est-ce juste parce que le Nao (que je ne connais pas) s'interface en python ?
Répondre
#3
alors oui l'installation a déjà été programmée avec ETS3 et j'ai les adresses

Je ne dois pas absolument utiliser python mais c'est le plus simple. En fait Nao possède des boites pour que les personnes qui ne savent pas programmer puisse le faire graphiquement.Et ces boites sont codées en python.
Le but du projet c'est de dire à Nao "allume la lumière" et qu'il l'allume, j'ai déjà réussis à le faire via Nao en ssh sur une raspberry pi mais c'est pas du tout l'idéal et je dois pouvoir le faire via un programme. Ensuite il faudra détecter si les lampes sont bien allumées ou si l'alarme incendie de l'armoire domotique s'est déclenchée.
Répondre
#4
Bonjour,
Ca m'a l'air d'être un projet intéressant. Hélas je n'ai pas de Nao à la maison :-(

Peux-tu nous dire :
- Comment Nao communique-t'il avec ton réseau local ? il est simplement connecté en Wifi ?
- Comment Nao peut-il s'interfacer avec la domotique ? on peut installer un programme python sur Nao ? Nao communique-t'il avec un ordinateur genre RPi et de là on envoie les infos sur le bus KNX ?

As-tu des liens vers une doc qui pourrait nous permettre de comprendre ce que tu dois faire ?
Répondre
#5
Ben, c'est très bien, le python Smile

Ce que tu peux faire, c'est utiliser mon framework, écrit en pure python, et qui dispose d'un outil permettant de lire/écrire de manière très simple sur le bus. L'outil s'appelle pknyx-group.py :

http://www.pknyx.org/browser/pknyx/scrip...x-group.py

Tu peux utiliser ce script en tant que module, et appeler directement les fonctions read/write. Il faudra peut-être le modifier un peu pour ne pas démarrer/arrêter la Stack à chaque fois, ce qui prend un peu de temps.

Ce qu'il faudra aussi, c'est installer/configurer eibd en mode routeur (rien de bien sorcier : il faut juste le lancer en utilisant en plus l'option -R).

Je te laisse creuser un peu si tu veux partir dans cette direction, mais n'hésite surtout pas à me contacter si tu veux plus d'infos ; je serai ravi de t'aider à intégrer tout ça. Si pKNyX peut servir dans le monde de l'éducation, ce sera cool Wink
Répondre
#6
Alors Weevil--> Nao est branché en ethernet ou communique en WiFI
Pour communiquer avec l'interface domotique il peut être programmé en python en effet d'où ma question sur le fonctionnement entre python et knx

Je n'ai pas le droit de fournir la doc entière pour l'instant mais je ferais un double post pour vous montrer ma partie.
A vrai dire déjà est-ce que quelqu'un pourrais m'expliquer clairement à quoi sert linknx? Parce que j'ai beau chercher je comprends pas, alors après j'admet que je suis peut-être idiote ^^"

fma38--> Merci beaucoup le bus est déjà configuré en mode routeur il me semble. Par contre concrètement, Pynknx sert à commander le bus KNX en python c'est bien ça? Mais est-ce que ça commande linknx? Parce que je ne vois pas à quoi sert ce logiciel/module quoi que ce soit (linknx) [/align]
voici l'extrait du projet Nao qui me concerne
"Dans ce scénario la personne à assister n'est pas lourdement handicapée mais elle a quelques
difficultés à se déplacer, que ce soit une difficulté temporaire (accident, grossesse, faiblesse
passagère) ou définitive (personne âgée). L'objectif est alors de lui faciliter la vie dans son espace
familier et éviter ainsi la présence permanente d'un aidant.
Nao est incapable de porter des charges lourdes ou de retrouver les clés ou les lunettes perdues,
mais il peut servir d'intermédiaire lors des interactions avec l'environnement : il peut ainsi
commander le système domotique en évitant les déplacements inutiles ou l'utilisation d'une
télécommande trop complexe et souvent perdue. Il peut aussi répondre au téléphone, passer des
appels ou envoyer des mails, toutes choses parfois difficiles à réaliser quand on a des difficultés à se
déplacer ou que l'on a passé un certain âge. Il doit aussi déclencher les secours en cas d'urgence
comme par exemple lors de l'activation de l'alarme incendie. Accessoirement, il peut aussi être un
compagnon capable de lire les mails reçus, jouer de la musique, diffuser des web-radio ou lire des
flux rss. La communication entre Nao et la personne se fera par la voix"



"4.4. La programmation de Nao :
Plusieurs langages de programmation sont disponibles mais l'outil principal du « final user »
est le logiciel Chorégraphe qui permet la programmation graphique des comportements de Nao.
Afin de rendre facilement utilisable les développements effectués, il est nécessaire de produire des « boîtes » qui peuvent être organisées en bibliothèques. Ces « boîtes » doivent être développées en
langage Python et leur structure doit être calquée sur un squelette défini par Aldebaran. Il est alors
possible de publier ces boîtes sur un « Aldebaran Store » et les rendre accessibles à la communauté"


"4.6. Les scénarios d'utilisation
4.6.1. Assistance à la personne
Nao est dans un endroit choisi de l'appartement pas trop loin de la personne assistée afin de pouvoir
l'entendre, il est à l'écoute et doit reconnaître un des ordres vocaux suivants : « Salon » « Séjour »
« Cuisine ». Sur réception de l'un des ordres, il doit se déplacer vers l'un de ces points de
« stationnement » pré-établis (un par pièce) il informe l'utilisateur qu'il a atteint son point de
ralliement et qu'il est prêt à recevoir un autre ordre. Ce positionnement préalable doit permettre de le
rapprocher de la personne assistée.
L'ordre suivant sera alors «Confort» ou «Communication» à chaque fois il confirme la réception de
l'ordre.
Dans le cas de la réception de «Confort» il doit être capable de comprendre et d'exécuter les ordres
suivants :
– « allumer » « éteindre » suivi du numéro de la lampe concernée ou du mot « tout » qui
désigne l'ensemble des lampes.
– « monter » « descendre » suivi du numéro du volet roulant concerné ou du mot « tout »
qui désigne l'ensemble des volets.
– « écouter » suivi du nom d'une web-radio ou d'un flux rss choisi dans une liste
pré-établie.
– « silence » qui permet de cesser la diffusion programmée précédemment.
– « stop » qui permet d'interrompre toutes les actions en cours (mouvement des volets ou
diffusion sonore)
Dans le cas de la réception du mot «Communication» il doit être capable de comprendre et
d'exécuter les ordres suivants :
– «mail » suivi du nom du destinataire. Nao se place alors en mode enregistrement et
mettra le fichier sonore comme pièce jointe du mail.
– «téléphone» suivi du nom de la personne concernée. Nao passe l'appel et sert de combiné
téléphonique. (partie complexe).
A tout moment, si Nao reçoit un appel téléphonique, il demande si il doit répondre. Si c'est le cas il
décroche et sert de combiné téléphonique. Dans ce scénario, il peut être amené à se rapprocher de la
personne assistée afin d'améliorer la communication. (partie complexe)
Le traitement des appels téléphoniques (émission et réception) est complexe et sera abordé en
dernier.
A tout moment, si une alarme est détectée (incendie par exemple) il doit en avertir la personne
assistée, lui demander si il doit avertir les secours. En cas de non réponse, il prend l'initiative de
déclencher les secours."


Voilà les trois passages qui me concernent.
Répondre
#7
Intéressant !

Je pense comprendre ton souci : pour l'instant, tu as du mal à voir les tenants et aboutissants du tout ça. Il faut arriver à comprendre l'architecture des divers composants et outils à ta disposition, et voir comment les utiliser... Au début, on est largué, et petit à petit, les choses se mettent en place. C'est un processus que tu rencontreras tout au long de ta carrière pro, ainsi que dans ta vie privée. C'est d'ailleurs souvent passionnant !

Pour répondre à ta question concernant linknx : il s'agit d'une couche logicielle qui sert essentiellement de supervision (sans interface graphique). On y définit les objets du bus physique, mais on peut aussi créer des objets purement logiciels. Un des intérêts de linknx est l'utilisation de 'rules', qui vont permettre de réagir de manière automatique à ce qui se passe sur le bus. Par exemple, tu peux modifier une consigne de température en fonction de l'heure. Ou encore faire de la logique (ET, OU...). Et plein d'autres choses.
Il permet aussi d'enregistrer dans une base de données les valeurs de certains objets (pratique pour faire du suivi de conso, ou du monitoring de température).
Etc.
Il sert beaucoup en conjonction avec knxweb, qui, lui, est une couche graphique, permettant de visualiser l'état des objets de linknx, et de modifier ceux-ci en cliquant sur des icônes depuis un navigateur.

À contrario de linknx qui est une appli monolithique, qui se configure par le biais d'une fichier xml, j'ai développé pKNyX pour être plus modulaire. C'est un framework python, c'est à dire que ce n'est pas une appli à proprement parler, mais un ensemble de classes et d'outils qui inter-agissent et facilitent le développement d'applis finales. Ces applis sont clairement orientées KNX. En fait, l'idée est de pouvoir développer des devices logiciels, chaque device étant un process (programme) à part entière, autonome, exactement comment les devices physiques. Ils peuvent tourner sur la même machine, ou pas. Ça correspond à la partie 'rules' de linknx, mais avec une approche très similaire aux vrais devices physiques (ce sont des boîtes avec des entrées et des sorties, ayant un état et un comportement).

Un des buts premiers de pKNyX était également de fournir une stack KNX complète, mais je n'ai implémenté qu'une toute petite partie, car c'est quelque chose de beaucoup plus complexe que je ne le pensais. La partie implémentée permet de faire tourner ces devices softs, mais nécessite encore eibd (ou un routeur KNX physique, qui coûte cher).

Dans ton cas, pKNyX est plus indiqué, puisque tu dois développer en python ; ce sera donc assez simple à intégrer. En gros, tout est dans le script pknyx-group.py ; il faudra juste ré-organiser ça en fonction du framework Nao.

Est-ce que tu as la doc pour développer les 'boîtes noires' de Nao, en particulier la 'structure du squelette défini par Aldebaran' ? Est-elle partageable ?

Bon, on n'est bien sûr pas là pour faire le boulot à ta place, hein, mais pas de problème pour te conseiller Wink Au passage, je trouve ton projet génial !
Répondre
#8
On est bien d'accord que personne n'est là pour faire le travail à ma place, et d'ailleurs ça me poserais problème ^^
Ceci dit un énorme MERCI parce que je comprends enfin ce à quoi j'ai à faire sinon c'était vraiment mélangé dans ma tête T___T

Du coup oui j'ai les infos pour programmer une boite Chorégraphe.
Du coup je vais essayer déjà de lui faire faire avec pknyx-group.py et ensuite je développerais une "vraie" boite. Je posterais l'avancée (déjà d'ici à demain normalement) Puisque ça t’intéresse au moins toi puis le sujet est plutôt passionnant (à mon sens en tout cas ^^")
Encore merci ^^
Répondre
#9
Ça marche.

Ton retour sur pKNyX m'intéresse beaucoup... Tes questions me permettront d'orienter la doc et les fonctionalités futures. Le projet est jeune, et donc peu utilisé, mais j'espère qu'il prendra de l'ampleur, en particulier en conjonction avec les cartes micropython (python sur micro-contrôleur).
Répondre
#10
Je trouve ce projet très intéressant également. La question que je me pose c'est s'il est possible de faire tourner eibd sur Nao directement ou s'il faut avoir un serveur qui sert d'interface ...
S'il faut un serveur alors ça rend le projet moins autonome et pas très différent de la solution ssh/RPi évoquée plus haut. Le sujet fixe-t'il des contraintes sur ce point ?
Répondre
#11
Ça reste intéressant, probablement pour bien plus de monde...

Finalement, le titre du post qui etait un peu pessimiste, devrait être démenti rapidement Wink
LUXI - Un électricien a votre service en région PACA
Répondre
#12
Tu es dans quelle région ?
Viens voir !!! La lampe s'allume, la lampe s'allume !!!!
Répondre
#13
ah je suis navrée je n'ai pas pu vous répondre avant (et je n'ai pas avancé sur le projet avec les autres épreuves à préparer pendant les vacances je n'ai pas eu le temps)
On peut faire tourner eibd sur Nao au vue des derniers tests que l'on a effectué en cours.
Et je suis en Bretagne dans le coin de Saint Brieuc.
Je reprends le projet aujourd'hui donc il y aura plus d’informations régulières dorénavant Smile
Répondre
#14
Cool !
Répondre
#15
Dommage c'est loin de mon ile de france, mais projet très intéressant
Viens voir !!! La lampe s'allume, la lampe s'allume !!!!
Répondre
#16
Bonjour tout le monde alors
la mise en place d'eib linknx et pyknx est désormais opérationnelle sur Nao ça a prit plus de temps que prévu parce que nous partageons l'armoire domotique avec une autre section qui l'avait...démontée
Donc cet après-midi je tente un script python tout bête pour allumer et éteindre les lumières et si ça fonctionne la moitié de mon projet sera faite Wink
Répondre


Atteindre :


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