ldleman / yana-server

Interface PHP de domotique Y.A.N.A (You Are Not Alone)
http://projet.idleman.fr/yana
107 stars 59 forks source link

Lire un article wikipedia #46

Open darkpisto opened 10 years ago

darkpisto commented 10 years ago

Juste pour signaler que j'ai commencé (et donc me mettre la pression pour la finir et la partager ^^) une petite fonction pour le plugin vocalinfo qui va récupérer un article en JSON via l'API de wikipedia, et qui permet à Yana de le lire.

Il reste plusieurs points à améliorer sur mon code actuel avant qu'il soit vraiment utile :

Bref j'essaierai de finir ça avant la fin du mois mais c'est pas gagné parce que je me marie et que mon indice WAF risquerait d'en pâtir fortement ;)

Et petit hors sujet mais on s'est tapé de franches rigolades avec ma copine parce que j'ai aussi ajouté à vocalinfo une action de refus inspirée du tableau d'insulte aléatoire que tu avais mis en place sur Yuri Idleman ("Je refuse", "J'ai pas envie", "Pourquoi faire ?" etc..), avec une haute sensibilité pour les tests (micro pourri). Sauf que je l'ai laissé tourner et je l'ai oublié et qu'elle a donc participé à nos conversations pendant la journée ^^ : Ma copine > "Ça te dit un ciné ce soir, la séance de 19H ?" Yana > "Non merci, je n'ai pas envie" Ma copine > "tu peux désactiver Yana stp ?" Yana > "Pourquoi faire ?"

Bref, merci beaucoup pour tes tutoriels Idleman, et merci aux contributeurs du projet Yana :) !

maditnerd commented 10 years ago

Cool j'ai hâte de voir ça ^^ Hésite pas à mettre ton plugin sur github si j'ai un moment j'essayerais d'y jeter un coup d'oeil.

darkpisto commented 10 years ago

OK j'essaierai de faire un peu de nettoyage et de le mettre sur le github dès que j'ai un peu de temps :)

valentin8709 commented 10 years ago

Wahouu trop classe!!! Je sais pas où ça en est mais j'aimerai bien voir sortir ce plugin! Je te souhaite bon courage, et si tu as besoin de quelqu'un pour tester hésite pas =)

darkpisto commented 10 years ago

Je ne suis pas fier des quelques lignes de codes intégrées, mais grâce à l'aide de Maditnerd, voici mon fork : https://github.com/darkpisto/yana-server

J'essaierai de trouver du temps pour participer plus activement :)

maditnerd commented 10 years ago

:+1: Sweet ^^ J'y jetterais un coup d'oeil un de ces quatres.

darkpisto commented 10 years ago

Rien de transcendant tu verras, à peine 30 lignes de code honteusement pompées sur le net (et encore j'ai ajouté quelques traductions pour la météo :p)

M'enfin ça me met le pied à l'étrier et je serai plus prolifique plus tard :)

Merci encore ;)

valentin8709 commented 10 years ago

Salut! Je viens de tester le fork que tu as publié sur github, je vais voir pour l'amélioration sur wikipedia si j'arrive à trouver qqch =) Le problème restant serait en fait de remplacer le "test" de "wikipedia test" par une variable c'est bien ça? As-tu déjà trouvé quelques pistes? Sinon sur les autres améliorations, à part l'interface graphique y'a-t-il d'autres choses? Il me semble que tu avais parlé d'un tableau de "refus" pour ajouter quelques interractions vocales, pourrais-tu m'en dire plus car ça m'intéresse =)

En tout cas c'est cool de travailler sur ce projet, ça fait avancer un peu la communauté et je pense que Yana-Server a un bel avenir devant soit! Le 25 févr. 2014 22:42, "darkpisto" notifications@github.com a écrit :

Rien de transcendant tu verras, à peine 30 lignes de code honteusement pompées sur le net (et encore j'ai ajouté quelques traductions pour la météo :p)

Reply to this email directly or view it on GitHubhttps://github.com/ldleman/yana-server/issues/46#issuecomment-36061765 .

darkpisto commented 10 years ago

Oui le problème est bien de remplacer le "test" par une variable (en gros il faut que Yana comprenne que "yana wikipedia" est une commande qui attend un argument : le mot à chercher). Il faut aussi activer "curl", et j'aimerai bien trouver une parade pour éviter ça. Pour le moment je ne m'y suis pas replongé par manque de temps, mais le sujet m'intéresse toujours donc je finirai par m'y remettre :)

Pour le tableau de refus je m'étais inspiré du tableau d'Idleman qu'il avait codé pour les insultes aléatoires dans Yuri, et j'avais mis plusieurs réponses aléatoires. Je ne pensais pas que ça pourrait intéresser quelqu'un du coup je ne l'ai pas commit dans le fork. Puisque ç'a l'air de t'intéresser, je le mettrai au propre et je l'ajouterai ASAP (là je suis en plein déménagement ^^) :)

Je pense aussi que Yana a un bel avenir, suffit qu'on y mette tous un petit peu du notre pour faire vivre ce super projet :)

HS mais je compte également voir s'il est possible de coupler mon RPI avec un arduino + shield ethernet + micro. A terme, en plus de pouvoir recevoir/envoyer des infos entre le RPI et les arduino, ça me servira à faire transiter ma voix de n'importe quelle pièce de la maison vers le PC sous windows qui gère la voix (en attendant de trouver une solution qui tourne directement sur le RPI sans tomber sur google parce que je rejoins Idleman sur ce sujet ^^). Du coup on aurait le cerveau de la domotique, le RPI, qui gère tous les arduino (probablement un par pièce). Ça reste un peu vague parce que je n'ai pas encore le RPI : il ne devrait plus tarder.

valentin8709 commented 10 years ago

Pourquoi veux-tu utiliser curl? Pour les infos à récupérer sur wikipedia? Si c'est ça, un petit script python pourrait faire l'affaire pour recup le code source de la page et formater le texte (je dis ça comme ça hein). Parfait pour le tableau de refus et merci =D Pour passer l'argument à yana, il faudrait modifier le code côté client je pense, et je n'arrive pas à faire fonctionner le client windows (on est en train de voir avec idleman le pourquoi du comment car c'est anormal).

Un shield ethernet + arduino + micro reviendrait chère non? Si j'ai bien compris, c'est simplement pour récupérer la voix. Peut être simplement essayer un micro bluetooth (voir même intégré dans une enceinte BT relié au pc windows)? Sinon carrément mettre un raspberry pi dans chaque pièce (moins chère certainement qu'un kit arduino). Aussi pour faire les faire communiquer, comment ferais-tu? J'ai 2 RPi qui communique via un petit soft en C avec socket mais existe-t-il un moyen plus simple?

Aussi pourrais-tu me dire où trouver des relais radio? Je n'en ai jamais utilisé, ni même jamais vu en fait x) est-ce simplement un émetteur / récepteur 433Mhz relié à un relais classique?

darkpisto commented 10 years ago

Pour curl en fait oui, je me suis basé en grande partie sur un code existant qui utilisait curl. J'aimerai que la récupération se fasse complètement en PHP (donc éviter python) afin que ce soit uniquement le serveur web qui s'en charge.

Pour le tableau de refus je ne suis toujours pas chez moi (déménagement), mais ne t'en fais pas ça reste dans ma todolist ^^

Pour modifier le code côté Yana-client, Idleman a publié les sources : j'installerai un visual studio un de ces 4 pour mettre un peu les mains dans le cambouis et voir si la modification est à ma portée. Au pire on s'y mettra à plusieurs parce que pouvoir avoir des commandes à arguments est dans l’intérêt de pas mal de monde ^^.

Comme mon projet c'est de faire une maison sur un terrain nu, je vais intégrer tout par câble pour m'éviter les inconvénients des communications radio/bluetooth. Je vais d'abord me faire la main chez mes parents (avec du radio, vu que pour le coup on ne va pas câbler). Du coup le choix de faire arduino + micro + shield, c'est qu'en fait je vais aussi avoir besoin d'un arduino par pièce pour gérer lampes/volets/baffles/prises murales/etc... avec des relais/sondes/etc... Donc tant qu'à faire, autant investir dans des shield ethernet (même si effectivement ça fait vite grimper le prix par pièce) et pouvoir avoir des communications complexes entre mes arduinos et mon RPI.

Enfin à l'heure actuelle c'est très théorique : j'ai reçu mon RPI et mon arduino à l'instant et je n'ai pas encore pu tester tout ça en pratique (même si j'ai lu avidement les tutos d'Idleman et que je suis impatient de m'y mettre :) ). En fonction de mes résultats je verrais si je passe par radio / ethernet, ou autre :p.

Un raspberry dans chaque pièce, d'après ce que j'ai compris ça ne me permettra pas de gérer aussi bien les relais que des arduinos (et la baisse de prix n'est pas énorme vu que les RPI ont pas mal augmenté dernièrement) : j'essaie de tirer au mieux avantages des 2 solutions.

Pour les communications RPI/RPI ou RPI/Arduino, comme je disais, jusque là c'est très théorique, je verrais bien une fois que je testerai en pratique ^^.

Sinon pour les relais radio, apparemment le mieux c'est de prendre un couple émetteur/récepteur sur ebay (amazon c'est plus cher et avec très peu de choix). Si je ne dis pas de bêtises, il me semble bien comme toi que "relais radio" c'est un émetteur/récepteur reliés à un relais classique, mais ce n'est qu'une hypothèse qu'il vaudrait mieux faire confirmer par Idleman ou un connaisseur ;).

maditnerd commented 10 years ago

Pour les arduino tu peux les câbler en ethernet avec ça :http://hobbycomponents.com/index.php/enc28j60-ethernet-lan-network-module-for-arduino.html Y a moyen de faire moins de choses mais c'est compatible avec la bibliothèque Ethercard (qui est fourni avec Arduino avec pas mal d'exemples) j'ai pas trop eu le temps de tester mais y a moyen de faire deux trois choses avec.

darkpisto commented 10 years ago

Merci pour l'info :) En lisant les commentaires des acheteurs on dirait qu'on peut faire circuler des infos réseaux "normales" : pourquoi tu penses qu'on peut faire "moins de choses" ?

maditnerd commented 10 years ago

Pas rapport au shield ethernet, il n'y a pas de carte SD et une connexion en 10mbits au lieu de 100mbits Mais à part ça,doit pas y avoir trop de limitations, j'ai testé l'exemple "backSoon" et mine de rien il a réussi à se connecter avec le DHCP et à me fournir une page web basique ^^

En plus y a même une PIN WOL (pour gérer le Wake on lan) ce qui permet de réveiller un atmega/arduino en veille avec un paquet magique. http://smarturl.it/enc28j60

darkpisto commented 10 years ago

Ha c'est génial ça, tu vas me faire économiser pas mal : ça m'évitera de prendre un shield ethernet juste pour une communication rpi/arduino (10mbits c'est largement suffisant à mon avis pour ce qu'on veut en faire). Par contre faudra voir si on peut faire remonter efficacement du son en 10mbits via des micros ^^

darkpisto commented 10 years ago

@valentin8709 : finalement je n'ai pas conservé le tableau des refus, mais je t'ai quand même mis un petit exemple "Yana comment vas-tu ?" sur mon fork

J'ai aussi modifié les fréquences de rafraichissement des blocs de la page index : ça faisait ramer mon RPI si je restais sur la page.

@maditnerd : j'ai commandé un enc28j60, je testerais ça d'ici quelques semaines, je te ferais un retour :)

valentin8709 commented 10 years ago

Super je te remercie! Je vais voir ça rapidement je pense =) Le 9 mars 2014 01:19, "darkpisto" notifications@github.com a écrit :

@valentin8709 https://github.com/valentin8709 : finalement je n'ai pas conservé le tableau des refus, mais je t'ai quand même mis un petit exemple "Yana comment vas-tu ?" sur mon fork

J'ai aussi modifié les fréquences de rafraichissement des blocs de la page index : ça faisait ramer mon RPI si je restais sur la page.

Reply to this email directly or view it on GitHubhttps://github.com/ldleman/yana-server/issues/46#issuecomment-37114805 .