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

amélioration de la table pilotant les GPIO #157

Open juliendiotworldtour opened 8 years ago

juliendiotworldtour commented 8 years ago

Bonjour Idleman, j'aimerai pouvoir ajuster d'autres paramètres lorsque je veux piloter mes GPIO: Pouvoir sélectionner plusieurs GPIO pour une seule commande vocale Décider si l'état initial de mon GPIO est Actif ou Inactif (c'est déja le cas pour l'instant pour 1 seul GPIO à la fois) Pouvoir lancer deux fonctions différentes avec une seule commande vocale (par exemple lorsque je dis "Yana, douche" ma temporisation pour la pompe lance ses cycles et une temporisation différente pour allumer une lampe se lance en parallèle) Permettre de temporiser les GPIO selon des cycles en seconde ON/OFF prenant en compte l'état initial de mon GPIO. Ainsi la première durée entrée commence soit OFF, soit ON.

Parce qu'un dessin vos 1000mots, voici un petit tableau pour résumer cela! evolution commande vocale

Merci!!!

ldleman commented 8 years ago

Peux tu préciser le plugin sur lequel tu aimerais cette feature?

juliendiotworldtour commented 8 years ago

Oui, je l'aimerai sur le plugin "commandes vocales", bien que je ne puisse pas l'utiliser avec la voix dans mon cas avec mon Androphone.

Si c'est plus simple pour toi de copier une partie de ce plugin pour le modifier à ta façon afin d'en créer un nouveau qui s'appelle "VCLC" pour "Voice Controlled Logic Controller" (pas de risque d'endommager celui qui marche ! ), voici ce que j'aimerai :

Pouvoir écrire une commande vocale/cliquable sous la forme "Yana, allume la douche" (existe déjà)

Pouvoir lancer cette commande sur plusieurs GPIO (par exemple le GPIO qui lance ma pompe et le GPIO qui allume la lumière dans ma douche, les 2 s'effectuant uniquement avec la seule commande "Yana, lance la douche" ) et, suivant cette logique, que ces GPIO lancent des programmes différents (le cycle douche pour le GPIO 1 et le cycle éclairage pour le GPIO 2)

Pouvoir déterminer des cycles ON/OFF en seconde, l'état initial étant défini par une case qu'on coche ou décoche: Par exemple pour le GPIO 1 qui gère ma pompe de douche, j'ai 2 cycles ON (20 et 60 secondes) et 2 cycles OFF (5 et 40 secondes). Dans la colonne "cycle en seconde", j'écris ces valeurs comme suit : 5,20,40,60 (ici, je choisi l'état initial du GPIO 1 sur OFF) une fois le dernier cycle accompli, le GPIO 1 passe à l'état suivant (si la dernière valeur rentrée correspond à un cycle ON, le GPIO 1 passe ensuite à OFF)

J'espère que tu vois où je veux en venir avec ce charabia !

Je n'utiliserai pas plus de 2 GPIO en même temps pour te simplifier le codage. J'ai regardé de mon côté pour écrire le plugin moi même, je pense que je n'y arriverai pas car je n'ai aucune base en c++, css, php, javascript,... Je sais seulement lire et appliquer se que je trouve sur les forums !

Une fois que tout est en place, je te fais une vidéo et rédige un article sur mon blog !!!

Merci beaucoup Idleman !

Charal commented 8 years ago

Salut,

Ensuite si tu veux, j'ai un plugin qui permet de faire des groupes de GPIO sur une seule commande vocale par exemple, mais ca ne gère pas les tempos, il s'agit de Switchi, par contre la version du market ne doit pas être récente, et surement encore buger. Si ça peux t'intéresses, je peux essayer de te sortir ma version de dev de chez moi.

Chez moi je gère avec ce plugin plus de 50 Pins, dont 32 sorties qui pilotent des relais... Il est purement orienter commutation, le but est de pouvoir changer une sortie ou un ensemble de sorties, par commutation manuelle, commande vocal, ou par les widgets. Et sur plusieurs RPI de façon centralisée si besoin.

Dit moi si ça pourrait convenir à ton besoin. A ta dispo.

juliendiotworldtour commented 8 years ago

Tu as un multiplicateur pour gérer autant de sorties ? Ce plugin m'intéresse mais à termes j'aimerai vraiment pouvoir gérer 2 GPIO (douche et éclairage) avec des cycles de temporisations différents (5s off, 25s on, 40off, 60on pour la douche et 130s on pour l'éclairage )

Je viens d'essayer yana V2, il ne m'autorise pas de connexion hors internet (je me connecte à YANA en hot spot depuis mon android)

Merci !!!

Charal commented 8 years ago

Non comme je te l'ai dit, mon plugin peux s'installer sur plusieurs rpi, et un seul sert de maitre pour gérer les pins des autres RPI, donc j'en ai 2 pour gérer tout l’éclairage, les interrupteurs et les prises électriques chez moi, soit un peu plus de 50 Pins au total.

Dans tous les cas même les PI2 comme les miens, avec 40 pins, n'en dispose réellement que de 28 utilisable, dont 2 à préconiser en sortie à cause d'une résistance interne plus forte, du au protocole SDA/SCL (GPIO 8 et 9).

Sinon tu as des circuits qui permettent de monter jusqu’à 128 pins, via des composants type MCP23017 et le protocole I2C, ou des cartes toutes faite comme celle-ci : https://www.abelectronics.co.uk/p/18/IO-Pi?CatName=0&c=0 La librairie wiringPi est compatible en plus.

Cependant de mémoire, tu n’as qu’un seul type de résistance interne, pull up ou pull_down je ne sais plus, donc en fonction de ton besoin ca peux être bloquant.

Pour la partie tempo il faut que je regarde, c’est un bon bout de code en plus, je ne te garantis rien. Pour le client v2, je n’ai pas eu l’occasion de la tester, mais ça reste du réseau, donc si je comprends bien, tu essayes de te connecter avec une ip public vers chez toi, donc il faut sur ta box que tu crées une règle de NAT.

Le socket d’Idle pour le moment fonctionne sur le port 9999 (ce qui va surement énerver ton firewall si tu en as un), donc tu devras créer une règle NAT dans ce genre : Port Externe 9999 Port Interne 9999 IP Interne : l’ip de ton Rpi serveur socket.

Et au niveau du client Yana v2, il faudra que tu fournisses l’adresse ip public de ta box, toujour sur le port 9999. Voilà a ta dispo si besoin @lex

juliendiotworldtour commented 8 years ago

Merci pour toutes ces infos. En effet je ne pense pas venir à utiliser la même configuration que toi comme je n'utilise qu'un seul RPI2. Cependant si SWITCHI est utilisable sur un seul RPI2 pour activer/désactiver plusieurs GPIO simultanément ça m'intéresse .

Pour yana v2, je suis tout le temps hors ligne. Je n'utilise pas de box Internet mais directement le hotspot de mon téléphone pour communiquer avec mon RPI2. Ainsi j'accède directement à yana server en tapant l'URL de mon RPI2 dans mon browser Chrome. Toutefois yana V2 m'impose de me connecter à internet sans quoi il me bloque d'entrée de jeu

Charal commented 8 years ago

Switchi tourne très bien sur un seule rpi, le principe est simple, tu as plusieurs sortie, par exemple le néon de ta salle de bain, le spot au-dessus de ta douche, et une ampoule au plafond en plus.

Tu vas donc créer trois « association » (dans ton cas avec seulement des sorties vu que n’as pas d’interrupteur en entrée) dans switchi, avec le nom et le GPIO, et ensuite tu crées un groupe « salle de bain » ou tu intègres les trois précédentes « associations ».

A partir de là, ça te crée un widget sur le dashboard du groupe « salle de bain », ou tu vois les trois point lumineux, que tu peux activer/désactiver un par ou, ou les trois ensemble, et pareil pour les commande vocales.

Chaque association a une commande vocale, donc dans notre exemple tu auras : Yana allume le néon de la salle de bain, Yana eteint le néon de la salle de bain Yana allume le spot de la douche, Yana éteint le spot de la douche, Yana allume l’ampoule au plafond Yana éteint l’ampoule au plafond (Sachant que tu peux désactiver n’importe quelles commandes vocales dans le plugin si elles te gênent) Et aussi une commande vocale pour le groupe complet, Yana allume la salle de bain Yana éteint la salle de bain Ces commandes agissent sur les trois associations d’un coup.

Pour la partie réseau, je pensais que tu souhaitais accéder au serveur socket par internet, ce qui devrait fonctionner. Mais s’il s’agit d’une spécificité de l’application Android, voit directement avec les développeurs qu’Idle t’a cité. Bonne soirée @lex

juliendiotworldtour commented 8 years ago

Salut Alex, comment vas tu? je viens d'installer Switchi mais je n'arrive pas à enregistrer mes associations ou groupe lorsque je clique sur "ajouter" Une idée du problème? Merci!

Charal commented 8 years ago

Salut Julien,

Pour commencer, je ne sais même plus qu'elle version bugger de Switchi est en ligne sur le market, mais tu devrais le désactiver :D, et je te préviens quand j'ai mis en ligne ma version.

Bizarre concernant l'ajout, dans les dernières versions, c'est du full Ajax, donc ça ne recharge plus les pages, ça actualise les éléments. Encore une fois tu as surement une version bugger.

Pour info, tu as une doc d'installation pdf aussi dans le plugin qui peu te donner des exemples, des impressions écrans etc.

Concernant le Pin d'entrée et de sortie, il faut comprendre un peu le fonctionnement, si le but est seulement d'allumer ou déteindre des pins qui allument des relais par exemple, tu n'auras cas renseigner le GPIO de sortie, celui qui doit changer lors de tes commandes vocales etc.

Le pin d'entrée est à fournir si tu souhaites qu'un interrupteur puisse aussi déclencher ce pin. Je m'explique, j'ai développé ce plugin pour ma maison, avec un câblage un peu particulier, le but est que je puisse par exemple, allumer la lumière de mon Salon, par commande vocale, par l'interface web, mais aussi par les interrupteurs du salon prévu à cet effet à la base dans la maison(ça semble logique :) ).

En gros, tous mes interrupteurs sont alimentés en 3,3v, et les retours sont connectés sur des GPIO d’entrée du rpi.

Donc le rpi « sait » quand j’actionne un interrupteur (via le service de scan que le plugin te pousse a installer), et il centralise ainsi tous les moyens de commutation, que je le fasse par interrupteur, interface web, commandes vocales, c’est le RPI qui gère la lumière (et les prises aussi chez moi). Donc comme tu as du le comprendre, le champ GPIO d’entrée n’est a renseigné que si tu veux aussi commuter le GPIO de sortie par un ou des interrupteurs.

Car pour finir, tu peux aussi paramétrer 10 interrupteurs qui allument une lumière ou plusieurs lumière, ou un seul qui alimente 10 lumières, tout le câblage de la maison devient dynamique, et si demain je veux embêter ma copine (une grande passion :D ), je peux paramétrer en quelques secondes que l’interrupteur de la salle de bain, allume la lumière du salon, de la chambre ainsi que 3 prises électrique dans le garage et électrocuter le chat du voisin.

Et je ne vais pas rentrer dans les possibilités de grouper les associations, par pièce ou par besoin, genre « le coin jour », comme ça tu pourras dire « Yana allume le coin jour », et toutes les associations du coin jour s’allumeront.

Je sais que ce n’est pas intuitif au premier coup d’œil, mais une fois que tu as le concept c’est plus facile. 

J’essaie de trouver le temps ce soir d’envoyer une version à jour sur le market et je te préviens. A ta dispo @lex

Charal commented 8 years ago

Julien,

Je viens de publier ma version qui fonctionne chez moi, dit moi si tu rencontres des difficultés. Regarde la doc si besoin, l'une des premières chose à faire est de rendre le Script d'installation dans le plugin exécutable, et de le lancer. Si tu avais une version précédente du plugin, penses à lancer le script de désinstallation de l'ancien plugin, avant de charger le nouveau. Dans tout les cas le plugin te donneras les commandes à exécuter si il détecte que le scan n'est pas actif.

A ta dispo @lex

juliendiotworldtour commented 8 years ago

Salut Idleman, j'ai essayer le plugin STORY et voici ce que j'ai fait avec (GPIO 3 = douche) exemple yana douche sans lumiere

je ne sais pas à quelle moment je peux ajouter ma commande "write GPIO 0 1", pause 130 secondes, "write GPIO 0 0" au sein de ce scénario pour piloter ma lampe de douche comme je veux la garder allumée toute la durée de la douche.

Une idée? Merci

juliendiotworldtour commented 8 years ago

Merci Alex, tu n'as pas trainé dis donc! Je te tiens au courant si j'ai des problèmes.

juliendiotworldtour commented 8 years ago

et bien Alex, je suis toujours dans l'impossibilité d'ajouter mon association... J'ai beau cliquer sur "ajouter", rien ne charge ou ne se passe... D'ailleurs aucun boutons ne fonctionnent (je ne peux pas par exemple activer/désactiver les commandes vocales) est-ce que cela peut venir du navigateur qui bloque quelque chose? switchi impossible ajouter

Charal commented 8 years ago

Julien,

Ne serais tu pas un adepte de vielle version d'internet explorer :)? C'est le javascript qui ne se lance pas apparemment... Essaye avec un google Chrome ou Mozilla si tu peux, dans tout les cas tu auras une meilleur expérience utilisateur ^^.

juliendiotworldtour commented 8 years ago

J'utilise Google chrome. Après peut être qu'adblock plus le bloque mes contenues javascript... J'essayerai avec Firefox et je te dis

Charal commented 8 years ago

Salut Julien,

Sinon fait aussi un ctrl+f5 pour vider le cache, il a peu être garder la javascript de la version bugger du plugin. Et sinon regarde dans Google Chrome> le bouton en haut à droite qui t'ouvre le menu déroulant>Plus d'outil>Outil de développement. Et tu verras si il y a des erreurs Javascript qui apparaissent.

A ta dispo @lex

----- Mail original -----

De: "juliendiotworldtour" notifications@github.com À: "ldleman/yana-server" yana-server@noreply.github.com Cc: "Charal" alex.rault@laposte.net Envoyé: Jeudi 7 Janvier 2016 01:05:13 Objet: Re: [yana-server] amélioration de la table pilotant les GPIO (#157)

J'utilise Google chrome. Après peut être qu'adblock plus le bloque mes contenues javascript... J'essayerai avec Firefox et je te dis

— Reply to this email directly or view it on GitHub .

ldleman commented 8 years ago

@juliendiotworldtour peux tu me donner le scénario fonctionnel exacte que tu souhaite executer ? ex : 1) Phrase blahblah 2) on allume la douche 5 sc 3) on allume la lampe de douche 2sc etc...

Charal commented 8 years ago

Salut Julien,

As tu pu faire le test? J'ai un deuxième utilisateur qui me remonte un problème de formulaire pour ajouter des associations. J'aimerais vous aidez, mais je manque d'info. Bonne journée et a ta dispo.

----- Mail original -----

De: "juliendiotworldtour" notifications@github.com À: "ldleman/yana-server" yana-server@noreply.github.com Cc: "Charal" alex.rault@laposte.net Envoyé: Jeudi 7 Janvier 2016 01:05:13 Objet: Re: [yana-server] amélioration de la table pilotant les GPIO (#157)

J'utilise Google chrome. Après peut être qu'adblock plus le bloque mes contenues javascript... J'essayerai avec Firefox et je te dis

— Reply to this email directly or view it on GitHub .

juliendiotworldtour commented 8 years ago

Salut Alex, j'ai essayé avec Firefox et je suis face au même problème. Le service Switchiscan marche bien. je ne sais pas trop quelles informations te donner car moi même je ne sais pas où chercher n'étant point développeur pour un sous... J'ai bien fait ctrl+f5 avec chrome, désactivé AdblockPlus mais je ne peux ni sélectionner une icône différente, et rien ne se passe lorsque je clique sur "ajouter"

Penses-tu qu'un "Git-pull" pourrais aider?

juliendiotworldtour commented 8 years ago

Bonjour Idleman, désolé pour mon absence mais j'ai bien été pris sur les pistes avec les fortes chutes de neige que nous avons à Chamonix!

Voici le scénario exact que je souhaiterai avec GPIO 0 pour ma lampe et GPIO 3 pour la pompe

Phrase d'activation: "Yana, lance la douche" GPIO 0 On pendant 130 secondes GPIO 3 Off pendant 5 secondes GPIO 3 On pendant 25 secondes GPIO 3 Off pendant 40 secondes GPIO 3 On pendant 60 Seconde GPIO 0 Off GPIO 3 Off

Et pour laver mon VTT voici le scénario:

Phrase d'activation: "Yana, lavage VTT" GPIO 3 On pendant 120 secondes GPIO 3 Off

Merci beaucoup pour votre aide les gars, j'aimerai tellement être autonome pour ne pas vous donner du travail en plus mais hélas, j'ai trop à rattraper pour être capable de suivre le mouvement!

juliendiotworldtour commented 8 years ago

Alex, voici l'erreur que je rencontre sur les icônes. Toutefois aucune erreur n'apparaît lorsque je clique sur "ajouter" bien que je clique dessus comme un âne! erreur switchi

Charal commented 8 years ago

Salut Julien,

Il te suffit dans un des deux navigateur ,(je connais plus Google Chrome), d'aller dans l'onglet d'option en haut à droite puis "Plus d'outil">"Outil de développement" Et tu devrais voir lorsque tu essayes d'ajouter une association, si une erreur s'inscrit en bas, ou si une crois rouge apparaît sur la fenêtre, ce qui indique une erreur JavaScript Comme les exemples d'image ci-dessous. Je pourrais ainsi savoir quelles sont les erreurs que rencontre ton navigateur. Merci

Charal commented 8 years ago

Super, donc apparemment le fichier Javascript ne se charge pas, tu pourrais m'envoyer, ou regarder, le code lorsque tu fais un clic droit >afficher le code source. A la fin, il doit y avoir trois ligne qui importe mes fichiers Javascript. Tu as cas me le transférer je ferais le trie, tu vas t’embêter sinon... merci

juliendiotworldtour commented 8 years ago

voici le code source javascript js

Après est-ce que le soucis peut venir de l'emplacement de mon Yana-server? car je ne suis pas dans /var/www/yana-server mais bien /var/www/html/yana-server

Charal commented 8 years ago

Super Julien,

Je vais pouvoir râler après Idleman, les fichiers JS que déclarent mon plugin à Yana -server ne sont pas chargé par Yana-Server. Je pense qu'il y a peut être eu une erreur lors de l’installation du Plugin. Je regarde de mon coté avec Idleman, si tu veux tu peux tenter ça en attendant, ça peux fonctionner : Désactive le plugin Switchi, Supprimer le dossier Switchwirevocal dans yana-server/plugins/, Re-Télécharge le depuis Yana-server>Configuration>Plugins>Market Et réactive le.

Tu es sur de repartir sur de bonne base coté plugin.

Tient moi au courant si tu as le temps de faire le test. Merci

Charal commented 8 years ago

Bonjour Julien,

Nous avons fait des tests avec Idleman, et sur nos différents environnements, et nous n'arrivons pas à reproduire tes problèmes JS.

Pour le moment nous avons deux pistes à explorer, celle de la réinstallation du plugin que je tes envoyé dans mes précédant Email, et la mise à jour de ton navigateur.

J'ai aussi une idée, sauf erreur j'ai vu que tu testais "Story" ‘Idleman, qui inclus aussi du JS et du CSS sur les pages du plugin.

Si tu pouvais comme tu l’as fait sur la page de mon plugin, m'envoyer le code source de fin où les JS sont chargés.

Le but est de déterminer si c'est seulement sur mon plugin, ou sur tous.

Si le JS n'est pas chargé non plus, tu rencontreras des problèmes sur la plupart des plugins...

Merci de tes tests.

@lex

----- Mail original -----

De: "juliendiotworldtour" notifications@github.com À: "ldleman/yana-server" yana-server@noreply.github.com Cc: "Charal" alex.rault@laposte.net Envoyé: Mardi 12 Janvier 2016 13:06:48 Objet: Re: [yana-server] amélioration de la table pilotant les GPIO (#157)

voici le code source javascript

— Reply to this email directly or view it on GitHub .

juliendiotworldtour commented 8 years ago

C'est bon, je viens de désinstaller réinstaller switchi et ça marche!!!

juliendiotworldtour commented 8 years ago

Par contre j'ai été con... j'ai voulu désinstaller et réinstaller STORY sauf qu'il n'est pas présent sur le market. Je sens que je vais devoir faire un git pull pour le récuperer!

ldleman commented 8 years ago

Voilà une belle erreur ICC :D ! T'es bon pour payer une bière a @Charal pour te faire pardonner XD !

Charal commented 8 years ago

Va pour une tournée avec Idleman, vu que je me suis retourné sur lui injustement :p

juliendiotworldtour commented 8 years ago

Je vous la paye sur Chamonix les gars, pas de soucis ! Dans tous les cas, lorsque Story sera près à l'oeuvre, je fais la vidéo !

Je test switchi sur la carte relais ce soir !!! (comme elle est dans le camion, je préferais faire l'installation des plugins au chaud !)

Charal commented 8 years ago

Ce camion ne passera pas dans la région Bordelaise un jour? Tient moi au courant pour Switchi, bonne soirée.

----- Mail original -----

De: "juliendiotworldtour" notifications@github.com À: "ldleman/yana-server" yana-server@noreply.github.com Cc: "Charal" alex.rault@laposte.net Envoyé: Jeudi 14 Janvier 2016 17:11:56 Objet: Re: [yana-server] amélioration de la table pilotant les GPIO (#157)

Je vous la paye sur Chamonix les gars, pas de soucis ! Dans tous les cas, lorsque Story sera près à l'oeuvre, je fais la vidéo !

Je test switchi sur la carte relais ce soir !!! (comme elle est dans le camion, je préferais faire l'installation des plugins au chaud !)

— Reply to this email directly or view it on GitHub .

juliendiotworldtour commented 8 years ago

Je pense qu'il y a des chances, je bouge plutôt pas mal !

juliendiotworldtour commented 8 years ago

Salut @Charal , voici un petit retour sur SWITCHI: Peux tu rendre les commandes vocales cliquables depuis YANA Server comme Idleman l'a fait s'il te plaît?

Pour le moment, on me renvoi l'erreur suivante: Fatal error: Call to undefined function talk() in /var/www/html/yana-server/plugins/switchwirevocal/switchwirevocal.plugin.disabled.php on line 1130

Et concernant ma demande d'avant (pouvoir changer le verbe), oublie là. C'est moi qui n'est pas réfléchi à la façon logique d'utiliser SWITCHI.

Charal commented 8 years ago

Salut Julien,

J'ai trouvé ce bug hier, j'utilise depuis plusieurs semaines pour mes tests le client V2, et les fonctions clicable sont en mode URL (fonctionnement du client v1) et j'avais modernisé les réponses sans testé.

Donc si tu utilises le client V2 ça doit fonctionner, mais pas le V1 tant que je n’ai pas fait la mise à jours, ça va poser problème.

J’essaye de mettre à jour le plugin rapidement.

En attendant tu peux remplacer dans le fichier /var/www/html/yana-server/plugins/switchwirevocal/switchwirevocal.plugin.disabled.php

Les bout de code :

talk(Personality::response('ORDER_CONFIRMATION'))

par :

Personality::response('ORDER_CONFIRMATION')

Normalement dans les lignes 1130, 1164 et 1181.

Bonne soirée ----- Mail original -----

De: "juliendiotworldtour" notifications@github.com À: "ldleman/yana-server" yana-server@noreply.github.com Cc: "Charal" alex.rault@laposte.net Envoyé: Jeudi 14 Janvier 2016 19:06:54 Objet: Re: [yana-server] amélioration de la table pilotant les GPIO (#157)

Salut @Charal , voici un petit retour sur SWITCHI: Peux tu rendre les commandes vocales cliquables depuis YANA Server comme Idleman l'a fait s'il te plaît?

Pour le moment, on me renvoi l'erreur suivante: Fatal error: Call to undefined function talk() in /var/www/html/yana-server/plugins/switchwirevocal/switchwirevocal.plugin.disabled.php on line 1130

— Reply to this email directly or view it on GitHub .

juliendiotworldtour commented 8 years ago

ça marche nickel! (merci pour les petites phrases sympathiques ^^) Seule la ligne 1130 était à modifier

Charal commented 8 years ago

Le client de reconnaissance vocale, le v1 c'est celui que tu peux télécharger directement depuis ton interface Yana, sur le Widget "connecté", en bas du widget "installer Yana Windows".

Le V2 c'est celui qu'Idleman a publié en beta depuis quelques jours, qui est expliqué ici, plus réactif, avec plus de possibilité coté plugin, mais ça reste une béta avec potentiellement quelque bug, et un lancement un peu lourd pour le moment :

http://blog.idleman.fr/yana4all-0-1-beta-cest-par-ici/

Plus généralement on parle de Yana server, la partie sur RPI, et de Yana client pour la partie vocale...

Si tu suis les échanges sur Git, tu as un client Windows, un pour IOS (Apple) et un Android (enfin deux, vu qu'il y a une nouvelle version équivalent V2 en socket si j'ai bien compris).

----- Mail original -----

De: "juliendiotworldtour" notifications@github.com À: "ldleman/yana-server" yana-server@noreply.github.com Cc: "Charal" alex.rault@laposte.net Envoyé: Jeudi 14 Janvier 2016 19:58:25 Objet: Re: [yana-server] amélioration de la table pilotant les GPIO (#157)

Qu'appelles tu le client V1 V2? Merci!

— Reply to this email directly or view it on GitHub .

juliendiotworldtour commented 8 years ago

Capiche! j'avais oublié Yana Windows vu que je ne l'utilise plus. Toutes mes commandes sont lancées depuis YANA Server directement depuis mon mobile en Hot Spot (c'est pour cela que j'avais demandé à Idleman s'il pouvait rendre les commandes cliquables directement depuis Yana Server).

Alors autre soucis avec SWITCHI:

Chose étonnante, lorsque je rentre une association dans SWITCHI avec ma carte relai connectée, celui-ci m'active la sortie GPIO lorsque je clique sur "ajouter". C'est donc que la communication s'opère de A à Z ce qui est merveilleux!

En revanche, lorsque je clique sur la commande vocale de mon groupe d'association, seul le retour json de la commande vocale enclenchée marche.

quelles sont donc les fichiers et lignes que je dois modifier désormais? :D

Merci @Charal !!! (c'est un fut de bière que je vais devoir t'envoyer à ce rythme là!)

ldleman commented 8 years ago

Chamonix c'est parfait j'ai deux cousines la bas tu peux leurs livrer ton fût elle me le feront passer a l'occas :D (enfin si elles le picolent pas avant ces pochtronnes)

Charal commented 8 years ago

Salut Julien,

A partir du moment où tu attribues un pin au plugin, il redémarre le Scan des pins, et initialise son état, (entrée, sortie, résistance pull up etc).

Mais si je comprends bien ce n’est pas ça qui te pose problème ?

Normalement la seule chose qu'il faut savoir sur les groupes, c'est qu'il force un état sur tous les pins qui se trouvent dedans, soit tu dis « éteint » et tous les pins qui sont dedans passe à 0, (donc si ils sont déjà a 0, ils ne bougent pas), et inversement sur « allume ».

Si je comprends bien, tu as créé des associations, puis un ou plusieurs groupes, tu as rangé les associations dedans, mais lorsque tu déclenches une commande vocale associée, il ne se passe rien ?

Est-ce que tu as le même comportement coté Widget ?

Normalement le plugin te crée des nouveaux Widget par groupe lorsque tu souhaites en ajouter un. (Ils ne sont pas ajoutés sur le dashboard directement, mais dans la liste des widgets disponibles, tu trouveras des widgets avec un nom du genre Plugin Switchi_Nom_De_Ton_groupe.

De base tu as un widget nommé « autres », qui comprends toutes les associations non rangée dans un groupe.

Et en haut de ces Widget, tu as les commandes On et Off pour le groupe complet (équivalent des commande "allume/éteint"), et dedans, tu peux commuter toutes tes associations.

Est-ce que cette partie fonctionne bien ?

Les pins que tu as mis dans les associations sont bien utilisés seulement par Switchi ?

A ta dispo.

@lex

----- Mail original -----

De: "juliendiotworldtour" notifications@github.com À: "ldleman/yana-server" yana-server@noreply.github.com Cc: "Charal" alex.rault@laposte.net Envoyé: Jeudi 14 Janvier 2016 20:27:40 Objet: Re: [yana-server] amélioration de la table pilotant les GPIO (#157)

Capiche! j'avais oublié Yana Windows vu que je ne l'utilise plus. Toutes mes commandes sont lancées depuis YANA Server directement depuis mon mobile en Hot Spot (c'est pour cela que j'avais demandé à Idleman s'il pouvait rendre les commandes cliquables directement depuis Yana Server).

Alors autre soucis avec SWITCHI:

Chose étonnante, lorsque je rentre une association dans SWITCHI avec ma carte relai connectée, celui-ci m'active la sortie GPIO lorsque je clique sur "ajouter". C'est donc que la communication s'opère de A à Z ce qui est merveilleux!

En revanche, lorsque je clique sur la commande vocale de mon groupe d'association, seul le retour json de la commande vocale enclenchée marche.

quelles sont donc les fichiers et lignes que je dois modifier désormais? :D

Merci @Charal !!! (c'est un fut de bière que je vais devoir t'envoyer à ce rythme là!)

— Reply to this email directly or view it on GitHub .

Charal commented 8 years ago

Forcement, si c'est la même famille... je lui donne pas une durée de vie très longue... On en tirera peux être quelque chose au prix du métal...

----- Mail original -----

De: "Idleman" notifications@github.com À: "ldleman/yana-server" yana-server@noreply.github.com Cc: "Charal" alex.rault@laposte.net Envoyé: Vendredi 15 Janvier 2016 08:25:45 Objet: Re: [yana-server] amélioration de la table pilotant les GPIO (#157)

Chamonix c'est parfait j'ai deux cousines la bas tu peux leurs livrer ton fût elle me le feront passer a l'occas :D (enfin si elles le picolent pas avant ces pochtronnes)

— Reply to this email directly or view it on GitHub .

juliendiotworldtour commented 8 years ago

faut donner l'adresse @ldleman! (une préférence pour les bières? je te prends un pack de 20 ou 6 si tu veux des bières qui n'existe pas sous un plus grand format de vente!)

@Charal , je te tiens au courant si j'ai le même comportement niveau widget dans 30min. Ce que je peux déjà te dire c'est que j'ai déjà des commandes vocales existantes pour ce groupe (j'ai donc des doublons). Si je comprends comme il faut, il me suffit de supprimer les anciennes commandes vocales dont j'ai créé des doubles avec SWITCHI et le tour est joué?

juliendiotworldtour commented 8 years ago

C'est bon @Charal tout marche tip top. Il ne me reste plus qu'à inverser les commandes "Yana, allume"/ "Yana, éteind" car j'utilise une carte relai inversée plus pratique dans le camion (envoyer le courant coupe le relai). Dans quel fichier se trouve ces phrases? Je me débrouille pour trouver les lignes! :')

Charal commented 8 years ago

Julien,

Content que tu es trouvé, normalement mon plugin ne crée pas de doublons dans les commandes vocales, tu devais avoir créé les mêmes phrases dans un autre plugin ?

Ça risque d’être compliqué de modifier les sorties cotés plugin vers tes relais.

Par contre si tu as les relais qu'on trouve partout sur internet, avec trois entrées en frontal (coté 220v), tu peux jouer là-dessus, normalement le "trou" du milieu, c'est ton arrivé électrique, et donc si tu veux inverser le fonctionnement, tu passes ton câble de sorties s’il était à droite, sur l’entrée de gauche et inversement.

Les phrases sont générées dynamiquement quand les clients les demandes a Yana-server, elles ne sont pas stockées dans un fichier.

Mais ça doit pouvoir fonctionner de seulement inverser les phrases.

Je pense que ça risque d’être incohérent à un moment, par exemple si tu utilises les widgets qui vont être allumé lorsque tu auras dit « éteint » etc.

Si tu utilises seulement les commandes vocales pourquoi pas…

Tu me diras…

Pour changer les commandes vocales générées pour chaque association, le code se trouve de la ligne 990 à 1010, le premier block « response » concerne la commande « allume », dont tu peux modifier le verbe d’ailleurs à la ligne 991, entre la variable du non de l’entité (Yana), et la variable de description qui est ajouté après (ex : la lumière du camion).

De la même manière pour les groupes, il s’agit des lignes 1021 à 1040.

Dans tous les cas je te préconise de garder le plugin cohérent entre les phrases et de jouer sur les sorties relais, ou des inverseurs quelques choses comme ça…

Tu n’utilises pas les Widget sur le Dashboard ?

----- Mail original -----

De: "juliendiotworldtour" notifications@github.com À: "ldleman/yana-server" yana-server@noreply.github.com Cc: "Charal" alex.rault@laposte.net Envoyé: Vendredi 15 Janvier 2016 18:38:36 Objet: Re: [yana-server] amélioration de la table pilotant les GPIO (#157)

C'est bon @Charal tout marche tip top. Il ne me reste plus qu'à inverser les commandes "Yana, allume"/ "Yana, éteind" car j'utilise une carte relai inversée plus pratique dans le camion (envoyer le courant coupe le relai). Dans quel fichier se trouve ces phrases? Je me débrouille pour trouver les lignes! :')

— Reply to this email directly or view it on GitHub .

juliendiotworldtour commented 8 years ago

Le widget est une très bonne idée, je l'ai mis d'ailleurs. Mais je pense utiliser principalement les commandes vocales lorsque YANA client V2 Android fonctionnera.

Le soucis d'inverser les connexions sur mes relais c'est que lorsque je débranche mon RPI, toutes les lumières sont allumées et je ne peux plus utiliser mes interrupteurs. Je suis aussi branché ainsi pour ne pas imposer au RPI d'envoyer du courant en permanence H24 vers les GPIO même lorsque je ne me sert pas de mes lumières. Je vais créer une sauvegarde de ton fichier au cas où je me plante total.

Merci @Charal !

Charal commented 8 years ago

Il te faudrait plus d’électronique pour bien gérer tout ça sinon...

Pense que si tu alimentes tes interrupteurs en 3,3 volt avec les pins 3,3v du rpi par exemple, tu peux connecter le retour sur un pin et le mettre en entrée sur tes associations, comme ça tu centralise tous dessus…

J’imagine que ce que tu veux faire c’est alimenter tes interrupteurs avec les relais 220v, et que c’est toi qui allumera manuellement ta lumière sur l’interrupteur, et que si tu souhaites le commander vocalement, ton interrupteur doit toujours être en position « on » ?

Si c’est le cas, pense au mode que je t’ai donné au-dessus, c’est ce que je fais chez moi, c’est beaucoup moins une prise de tête…

Tout est en parallèle comme ça, tu peux allumer avec ton interrupteur, et avec l’interface web dans les widgets, et par commande vocale.

@lex

----- Mail original -----

De: "juliendiotworldtour" notifications@github.com À: "ldleman/yana-server" yana-server@noreply.github.com Cc: "Charal" alex.rault@laposte.net Envoyé: Vendredi 15 Janvier 2016 21:10:26 Objet: Re: [yana-server] amélioration de la table pilotant les GPIO (#157)

Le widget est une très bonne idée, je l'ai mis d'ailleurs. Mais je pense utiliser principalement les commandes vocales lorsque YANA client V2 Android fonctionnera.

Le soucis d'inverser les connexions sur mes relais c'est que lorsque je débranche mon RPI, toutes les lumières sont allumées et je ne peux plus utiliser mes interrupteurs. Je suis aussi branché ainsi pour ne pas imposer au RPI d'envoyer du courant en permanence H24 vers les GPIO même lorsque je ne me sert pas de mes lumières. Je vais créer une sauvegarde de ton fichier au cas où je me plante total.

Merci @Charal !

— Reply to this email directly or view it on GitHub .

juliendiotworldtour commented 8 years ago

oui c'est clair qu'il faudrait que je reprenne un peu tout ça pour que ce soit au top. ton installation oblige néanmoins d'aboir la raspberry PI alimentée afin de jouer le rôle de télérupteur. J'opterai pour cet option lorsque je me déplacerai régulièrement mais comme je ne roule pas du tout et que ma batterie n'est pas d'une puissance extraordinaire pour le 2.2L qu'elle doit lancée, je préfère avoir la carte branchée ainsi. Pour le moment je suis avec mes interrupteurs branchés en parallèle du RPI. ainsi je peux choisir la source d'alimentation: directement la RPI ou directement ma batterie. Mais comme tu dis, si je lance une commande vocale mon bouton ne pourra pas la désactiver alors que dans ton cas si. :')

Autre problème dans mon cas, je n'ai pas d'interrupteur à impulsion mais à verrouillage et éclairé. en les branchant en télérupteur avec le RPI, mon code couleur pour les boutons sera un vrai méli mélo avec des interrupteurs enfoncés et rétro éclairés pour éteindre la lumière et vice versa.

Cependant une fois que tout sera fonctionnelle avec STORY d'Idleman et Switchwi grâce à toi, je ferai l'aménagement de mes véhicules en considérant ces nouvelles possibilités génialissimes!!!!

Est ce que les ports GPIO peuvent être In et Out ou y a t il des GPIO spécifiquement In et spécifiquement Out?

Charal commented 8 years ago

Oui il faut avoir un RPI alimenté en permanence, ensuite j’ai vu des mecs qui faisait ça avec une batterie et un petit panneau solaire si ça te tente de le rendre indépendant en terme d’alim.

Y a pas mal de personne qui touche à l’électronique ou l’électricité dans les lecteurs d’Idle, et donc sur le forum, si tu veux des infos ça peux être intéressant d’en parler.

Je me dit aussi qu’un rpi, par rapport à la capacité d’une batterie de voiture, ça doit pas consommer beaucoup, mais ça durera pas des mois J

Tous les GPIO peuvent être In ou Out, mais sur les 40 disponibles sur un RPI 2 par exemple, seuls 28 sont réellement utilisable, et deux que je te préconiserais en sortie, ils ont des résistance pull en interne trop forte pour certaine utilisation.

Si tu veux je te donnerais la liste.

----- Mail original -----

De: "juliendiotworldtour" notifications@github.com À: "ldleman/yana-server" yana-server@noreply.github.com Cc: "Charal" alex.rault@laposte.net Envoyé: Vendredi 15 Janvier 2016 21:50:16 Objet: Re: [yana-server] amélioration de la table pilotant les GPIO (#157)

oui c'est clair qu'il faudrait que je reprenne un peu tout ça pour que ce soit au top. ton installation oblige néanmoins d'aboir la raspberry PI alimentée afin de jouer le rôle de télérupteur. J'opterai pour cet option lorsque je me déplacerai régulièrement mais comme je ne roule pas du tout et que ma batterie n'est pas d'une puissance extraordinaire pour le 2.2L qu'elle doit lancée, je préfère avoir la carte branchée ainsi. Pour le moment je suis brancher avec mes interrupteurs branchés en parallèle du RPI. ainsi je peux choisir la source d'alimentation: directement la RPI ou directement ma batterie. Mais comme tu dis, si je lance une commande vocale mon bouton ne pourra pas la désactiver alors que dans ton cas si. :')

Est ce que les ports GPIO peuvent être In et Out ou y a t il des PIN spécifiquement In et spécifiquement Out?

— Reply to this email directly or view it on GitHub .

juliendiotworldtour commented 8 years ago

Merci @charal pour ton aide. Pour le moment je vais garder mon Rpi monté en parallèle mais si plus tard je m'occupe de l'aménagement d'un utilitaire je l'équiperai en bouton à impulsion sans rétro éclairage (en raison de la faible tension d'alimentation) afin d'utiliser les pins d'entrée du Rpi. L'intégration sera ainsi plus logique et l'utilisation plus ergonomique.

En tout cas toutes ces possibilités sont fascinantes! J'aimerai apprendre à développer comme idleman et toi, tu connais des bons tutoriels/sites qui me permettraient d'apprendre "rapidement", genre en 1 an à raison de 2 à 4h/semaine ? Ahah

Voici mon schéma électrique avec un automate le temps qu'idleman finalise STORY avec les tempos pour plusieurs gpio à la fois screenshot_2016-01-18-10-53-45 (j'ai hâte même si rien ne presse !!!)

Charal commented 8 years ago

Salut Julien,

Je n’ai pas forcement compris l’interrupteur a impulsion, a par si tu souhaites passer par un télérupteur, mais mon plugin fonctionne avec des interrupteurs standard… C’est aussi pour ça que j’ai créé ce plugin, si j’avais dû m’acheter un télérupteur pour chaque point lumineux, et prise électrique de ma maison, à une 30aine d’€ par télérupteur, je n’aurais pas la maison lol.

Le php ce n’est pas compliqué, mais malheureusement il est rarement seul, il faut aussi avoir des bases en HTML et CSS.

Le Javascript n’est pas une obligation, ça permet juste une meilleure expérience utilisateur.

Yana Server te permet d'éviter de connaitre du langage de base de données type SQL par des fonctions assez simple compris dans les class de Yana.

A l'inverse, quand tu développes sur Yana, tu développes des plugins dans un environnement avec certaine règles, et ces peux être ça le plus compliqué.

Déjà de trouver ces règles ;) et ensuite, Idle, c’est son boulot de tous les jours, donc entre ce que tu trouves dans des cours sur Internet, et ce que tu trouves dans le code d’Idle, ça peut paraitre plus compliqué.

En gros, il faut avoir des bonnes notions sur les objets PHP, les class, les objets stocké direct en bdd, des choses qui sont peut-être légère dans les tutoriaux.

Pour ma part je ne suis pas développeur ni de formation, ni dans ma vie professionnel, donc y a pas de raison que tu y arrives pas, mais il faudra un peu de temps, et de le patience en essayant de comprendre le code de Yana et d’autre plugin.

Si tu penses passer 4 heures par semaine, ça devrais rentrer petit à petit.

Le principale je pense, c’est d’avoir de la patience, sur le long terme, le code ca peux être prise de tête, et tu peux je pense facilement te décourager au début.

Courage et persévérance doivent devenir tes leitmotive !! J

----- Mail original -----

De: "juliendiotworldtour" notifications@github.com À: "ldleman/yana-server" yana-server@noreply.github.com Cc: "Charal" alex.rault@laposte.net Envoyé: Lundi 18 Janvier 2016 10:49:21 Objet: Re: [yana-server] amélioration de la table pilotant les GPIO (#157)

Merci @charal pour ton aide. Pour le moment je vais garder mon Rpi monté en parallèle mais si plus tard je m'occupe de l'aménagement d'un utilitaire je l'équiperai en bouton à impulsion sans rétro éclairage afin d'utiliser les pins d'entrée du Rpi. L'intégration sera ainsi plus logique et l'utilisation plus ergonomique.

En tout cas toutes ces possibilités sont fascinantes! J'aimerai apprendre à développer comme idleman et toi, tu connais des bons tutoriels/sites qui me permettraient d'apprendre "rapidement", genre en 1 an à raison de 2 à 4h/semaine ? Ahah

— Reply to this email directly or view it on GitHub .