[Projet] Goto314 accédez à votre pi (Android/PC/MacOSX/iOS)
Posté : lun. 2 mai 2016 01:09
Bonjour,
Dans la continuité d'un post que nous avions développé mon collègue kikonk & moi même (ici : viewtopic.php?f=29&t=213) inhérent à l'ouverture d'un portail/garage depuis une application téléphone/tablette/ordinateur, j'ai pour ma part pas mal travaillé sur une amélioration du projet afin de le rendre le plus générique et malléable possible.
Désormais déjà bien utile pour contrôler certains de mes pi (et autres serveurs) que je gère, je me suis dis qu'il pourrait peut-être en être de même pour vous.
Ce pourquoi ce post et ce partage qui j'espère vous permettra à vous aussi d'avancer dans vos bidouilles et projets en contrôlant votre pi depuis cette application.
En l'état actuel des choses, cette application "Goto314" fonctionne sur de multiples plateformes, à savoir :
Android, Windows et... compile/fonctionne aussi sur MacOSX et iOS.
Je ne pourrais hélas pas fournir tout de suite cette application sur MacOSX et surtout iOS du fait de leurs écosystèmes "très fermés" mais à terme et avec encore un peu de temps, je pense pouvoir rendre la chose possible.
Aucun soucis en revanche pour Android & Windows puisque, comme vous le savez tous, installer un "apk" ou exécuter un "exe" sont choses aisées et courantes sur ces plateformes.
Ceci étant dit, passons aux explications.
Son but principal est d'envoyer des commandes directement à un pi à l'aide de boutons paramétrables et recevoir éventuellement en retour des informations.
L'envoi des commandes est effectué directement en ssh et il n'y a donc pas besoin d'installer un serveur web+php sur le pi. (A noter qu'il serait possible de rajouter une telle fonctionnalité permettant de "taper" vers du web/php, puisque déjà fait lors du projet d'ouverture de portail/garage de kikonk...)
Ces commandes peuvent donc être multiples et variées. Cela peut-être le nom d'un script bash, d'un script python, d'une commande linux classique... Bref, tout est possible puisque nous communiquons comme si nous étions logué sur le Pi en ssh avec un client ssh.
L'application prend également en charge différents profils. Un profil n'étant ni plus ni moins qu'un Pi.
Chaque profils, comporte 3 boutons paramétrables qui enverront ces commandes.
L'application doit donc être paramétrée à l'aide d'un script au format texte (enregistré en utf8 ou ansi selon les plateformes...) dont la structure n'est ni plus ni moins que celle des fichiers ".ini" qui sont très simples à comprendre et à implémenter au sein de l'application.
Un script à "injecter" à l'application peut donc ressembler à ça :
[monpi1]
host=192.168.1.42
port=22
login=pi
password=raspberry
autoconnect=no
button1_visible=yes
button1_name=temperature
button1_type=textreturn
button1_action=/opt/vc/bin/vcgencmd measure_temp
button2_visible=yes
button2_name=camera
button2_type=imagereturn
button2_action=/var/www/image.jpg
button3_visible=yes
button3_name=reboot
button3_type=noreturn
button3_action=sudo reboot
Explications détaillées du script :
[monpi1]
---> nom du profil, impérativement entre crochets. Vous pouvez en mettre autant que vous voulez.
host=192.168.1.42
---> adresse ip (ou nom de domaine) de votre Pi, de ce profil.
port=22
---> Port ssh du pi, de ce profil.
login=pi
---> Votre login/user sur votre pi, de ce profil.
password=raspberry
---> Votre mot de passe du login/user du pi, de ce profil.
autoconnect=no
---> autoconnect permet (yes) ou non (no) de se connecter automatiquement au Pi à la sélection du profil.
button1_visible=yes
---> Le premier bouton (tout à gauche) est visible (yes) ou pas (no, ou vide)
button1_name=temperature
---> Nomme le premier bouton et dans ce cas là, le mot "temperature" sera affiché sur ce bouton.
button1_type=textreturn
---> Ce bouton peut retourner au choix du texte (textreturn), une image (imagereturn), de la voix (voicereturn) ou rien (noreturn).
---> Dans ce cas, textreturn, retournera le texte qu'affiche le pi à l'envoi de la commande.
button1_action=/opt/vc/bin/vcgencmd measure_temp
---> la commande ou l'action à envoyer au Pi.
---> Dans ce cas, nous lui demandons d'afficher la température du cpu du pi.
---> En appuyant donc sur ce bouton, l'application se connectera en ssh sur votre pi, enverra la commande linux, le pi affichera la température qui s'affichera donc dans votre application.
button2_visible=yes
---> Le second bouton (au milieu) est visible (yes) ou pas (no, ou vide)
button2_name=camera
---> Nomme le premier bouton et dans ce cas là, le mot "camera" sera affiché sur ce bouton.
button2_type=imagereturn
---> Ce bouton peut retourner au choix du texte (textreturn), une image (imagereturn), de la voix (voicereturn) ou rien (noreturn).
---> Dans ce cas, imagereturn, retournera une image stockée sur le pi à l'envoi de la commande.
button2_action=/var/www/image.jpg
---> la commande ou l'action à envoyer au Pi.
---> Dans ce cas, nous lui demandons d'aller chercher image.jpg localisée dans /var/www/. L'image peut être au format jpg ou png ou gif.
---> En appuyant donc sur ce bouton, l'application se connectera en ssh sur votre pi, transfèrera en stream sftp l'image du pi dans la fenêtre principale de votre application qui l'affichera. A ce stade, l'image n'est qu'affichée par l'application mais jamais enregistrée dans le stockage de votre application (mais ça pourrait-être une évolution possible...)
---> Si votre pi possède une webcam et que vous la paramétrez pour qu'elle enregistre à intervalles une image au sein de votre pi, l'application pourra donc aller la chercher et l'afficher.
button3_visible=yes
---> Le troisième bouton (tout à droite) est visible (yes) ou pas (no, ou vide)
button3_name=reboot
---> Nomme le premier bouton et dans ce cas là, le mot "reboot" sera affiché sur ce bouton.
button3_type=noreturn
---> Ce bouton peut retourner au choix du texte (textreturn), une image (imagereturn), de la voix (voicereturn) ou rien (noreturn).
---> Dans ce cas, noreturn, ne retournera rien et seule la commande sera envoyée au pi.
button3_action=sudo reboot
---> la commande ou l'action à envoyer au Pi.
---> Dans ce cas, nous lui demandons d'exécuter la commande linux sudo reboot qui reboot le pi...
---> En appuyant donc sur ce bouton, l'application se connectera en ssh sur votre pi, enverra la commande linux et le pi rebootera.
---> Attention, avec sudo, il est généralement demandé le mot de passe root pour pouvoir exécuter la commande. Or, l'application n'enverra pas cette information. Il vous faudra donc simplement attribuer au login/user (pi dans ce cas) les droits adéquats en éditant le fichier /etc/sudoers.
Si vous êtes encore là à me lire, vous aurez constaté que j'ai évoqué la possibilité de retourner de la voix.
C'est effectivement implémenté uniquement avec la version android de l'application et voici comment ça marche.
Reprenons notre exemple du bouton numéro 1 qui affiche la température.
La commande linux utilisée est : /opt/vc/bin/vcgencmd measure_temp
Qui, lorsque tapée sur votre pi (ou envoyée avec le bouton de l'application) vous donne théoriquement le résultat suivant :
temp=42.0'C
Si nous transformons la commande linux afin qu'elle nous retourne un joli texte pouvant être "parlé" par l'application, nous pourrions faire ceci :
/opt/vc/bin/vcgencmd measure_temp | sed -e "s/temp=/le processeur est a /g" | sed -e "s/\./ virgule /g" | sed -e "s/'C/ degres celcius/g"
Et aurions comme résultat :
le processeur est a 42 virgule 0 degres celcius
Donc, la configuration de notre bouton peut s'effectuer de la même manière, à savoir :
button1_visible=yes
---> Le premier bouton (tout à gauche) est visible (yes) ou pas (no, ou vide)
button1_name=temperature
---> Nomme le premier bouton et dans ce cas là, le mot "temperature" sera affiché sur ce bouton.
button1_type=voicereturn
---> Ce bouton peut retourner au choix du texte (textreturn), une image (imagereturn), de la voix (voicereturn) ou rien (noreturn).
---> Dans ce cas, voicereturn, retournera sous forme de voix le texte qu'affiche le pi à l'envoi de la commande.
button1_action=/opt/vc/bin/vcgencmd measure_temp | sed -e "s/temp=/le processeur est a /g" | sed -e "s/\./ virgule /g" | sed -e "s/'C/ degres celcius/g"
---> la commande ou l'action à envoyer au Pi.
---> Dans ce cas, nous lui demandons d'afficher "joliment" la température du cpu.
---> En appuyant donc sur ce bouton, l'application se connectera en ssh sur votre pi, enverra la commande linux, le pi retournera la jolie phrase et l'application la transformera en voix.
---> Vous entrendrez donc dans l'application une voix (féminine ou masculine, selon la configuration vocale de votre smartphone/tablette android) disant : "le processeur est a 42 virgule 0 degres celcius"
Quelques autres alternatives (plus simplistes...) :
button1_visible=yes
button1_name=ditbonjour
button1_type=voicereturn
button1_action=echo bonjour
---> l'application dira "bonjour" (commande linux echo bonjour)
button1_visible=yes
button1_name=directory
button1_type=voicereturn
button1_action=ls
---> l'application vous dictera le retour de la commande linux ls, qui liste votre répertoire courant sur votre pi...
button1_visible=yes
button1_name=update
button1_type=textreturn
button1_action=sudo apt-get update && sudo apt-get upgrade -y
---> l'application effectuera un update+upgrade de votre pi et affichera le résultat... (modifier /etc/sudoers en conséquence...)
button1_visible=yes
button1_name=directory
button1_type=textreturn
button1_action=ls
---> l'application vous affichera le résultat de la commande linux ls, qui liste votre répertoire courant sur votre pi...
button1_visible=yes
button1_name=Portail
button1_type=noreturn
button1_action=./portail.sh
---> l'application executera le script bash "portail.sh" sur votre pi (script bash ou python qui ouvre un portail par exemple) sans aucun retour d'info.
button1_visible=yes
button1_name=Garage
button1_type=voicereturn
button1_action=./garage.sh
---> l'application executera le script bash "garage.sh" sur votre pi (script bash ou python qui ouvre un garage par exemple puis sort un texte "Ouverture du garage" si le résultat est probant) et dictera le retour du texte de ce script bash, "Ouverture du garage" par exemple...
Bref... Les combinaisons possibles étant vastes et variées, l'application est donc malléable et adaptable à plus ou moins n'importe quel projet
Concernant sa composition "visuelle" :
- Il y a 4 écrans et on y accède par les flèches gauches et droites du bas.
- Sur tous les écrans, il y a, en bas, au milieu, l'accès aux profils.
- Sur le premier écran, en bas, il y a les 3 boutons des actions/commandes envoyées et, dans la partie principale les résultats/retours des commandes envoyées (texte, image...)
- Sur le second écran, on y voit quelques brèves informations sur le profils courant. On peut s'y connecter, se déconnecter. Cet écran n'est pas en soit très utile mais bon...
- Sur le 3ème écran, une fenêtre principale dans laquelle s'affiche le fichier de script ".ini". Le nom du script ".ini" doit d'ailleurs impérativement s'appeler "config.ini". Vous pouvez d'ailleurs modifier ce fichier depuis votre android (pas très pratique avec le petit clavier d'un smartphone et la petitesse de l'écran mais rapide dans le cadre de petites corrections rapides à faire...)
- Toujours sur ce 3ème écran, 3 boutons. Load config, Import config et Save config.
- Load config, charge le "config.ini" perpétuellement stocké avec l'application dans votre android. Si vous lancez l'application pour la toute première fois, j'y ai incorporé un fichier prêt à l'emploi. A vous de le compléter...
- Save config, sauvegarde le fichier "config.ini" actuellement affiché (que vous aurez éventuellement modifié) dans la fenêtre principale au sein de votre application. Le fichier "config.ini" perpétuellement stocké avec l'application dans votre android, n'est théoriquement pas accessible (et "caché") lorsque vous branchez votre smartphone sur votre pc/mac pour y voir son contenu. Si vous êtes root sur votre smartphone/tablette android, oubliez bien évidemment ce que j'ai dit...
- Import config, permet là l'import d'un fichier "config.ini" que vous aurez préalablement composé avec votre éditeur préféré depuis votre PC ou Mac et déposé dans votre smartphone/tablette android dans le répertoire RACINE du stockage INTERNE. Une fois importé, il s'affichera dans la fenêtre principale et là, vous pourrez le sauvegarder avec le bouton Save config afin qu'il soit perpétuellement au sein de l'application. Ce mode de fonctionnement est pour le moment la solution la plus "simple" que j'ai trouvé mais je suis ouvert à toute autre propositions car j'ai eu vent de soucis d'imports avec certains android... à tester, à débattre & à suivre donc...
- Concernant ce fichier "config.ini" je vous invite à l'enregistrer en ANSI pour windows et en UTF-8 pour android.
- Le 4ème écran est simplement un "about" écran... il pourrait y inclure une notice (si quelqu'un veut s'y coller...)
Concernant la suite :
Suite à mes récents tests & investigations qui sont plutôt positifs, je compte prochainement implémenter la possibilité, en plus des boutons, de parler à l'application afin qu'elle exécute des commandes (similaires à celles des boutons).
A savoir, vous parlez à l'application et cette dernière envoie les commandes au pi.
exemple :
- L'application se lance, attends une commande vocale ou vous pressez un bouton de type "micro" et vous parlez.
- Là, selon le mot ou la phrase énoncée, une commande se lance.
- Bien sûr, le mot ou la phrase énoncée sera paramétrable au même titre que les boutons paramétrables déjà en place.
Voilà.
Je vous livre ci-après quelques snapshots de l’application et les liens pour télécharger et tester tout ça.
Excusez moi également pour ce long texte et les éventuelles fautes d'orthographes/erreurs qui s'y seraient glissées.
L'application n'en étant à ses tout débuts, il se peut qu'il y ait encore de nombreux bugs et/ou qu'elle plante parfois magistralement
N'hésitez pas à me faire du retour et/ou poser vos questions dans ce même thread si possible.
Amicalement, merci de votre attention & bon tests ?
Laurent / zton.
Site (en cours) : http://goto314.com/
zip (tout est dedans) : http://goto314.com/Goto314.zip
apk (seul) : http://goto314.com/Goto314.apk
exe (seul) : http://goto314.com/Goto314.exe
config.ini (seul) : http://goto314.com/config.ini
Snapshots :
Dans la continuité d'un post que nous avions développé mon collègue kikonk & moi même (ici : viewtopic.php?f=29&t=213) inhérent à l'ouverture d'un portail/garage depuis une application téléphone/tablette/ordinateur, j'ai pour ma part pas mal travaillé sur une amélioration du projet afin de le rendre le plus générique et malléable possible.
Désormais déjà bien utile pour contrôler certains de mes pi (et autres serveurs) que je gère, je me suis dis qu'il pourrait peut-être en être de même pour vous.
Ce pourquoi ce post et ce partage qui j'espère vous permettra à vous aussi d'avancer dans vos bidouilles et projets en contrôlant votre pi depuis cette application.
En l'état actuel des choses, cette application "Goto314" fonctionne sur de multiples plateformes, à savoir :
Android, Windows et... compile/fonctionne aussi sur MacOSX et iOS.
Je ne pourrais hélas pas fournir tout de suite cette application sur MacOSX et surtout iOS du fait de leurs écosystèmes "très fermés" mais à terme et avec encore un peu de temps, je pense pouvoir rendre la chose possible.
Aucun soucis en revanche pour Android & Windows puisque, comme vous le savez tous, installer un "apk" ou exécuter un "exe" sont choses aisées et courantes sur ces plateformes.
Ceci étant dit, passons aux explications.
Son but principal est d'envoyer des commandes directement à un pi à l'aide de boutons paramétrables et recevoir éventuellement en retour des informations.
L'envoi des commandes est effectué directement en ssh et il n'y a donc pas besoin d'installer un serveur web+php sur le pi. (A noter qu'il serait possible de rajouter une telle fonctionnalité permettant de "taper" vers du web/php, puisque déjà fait lors du projet d'ouverture de portail/garage de kikonk...)
Ces commandes peuvent donc être multiples et variées. Cela peut-être le nom d'un script bash, d'un script python, d'une commande linux classique... Bref, tout est possible puisque nous communiquons comme si nous étions logué sur le Pi en ssh avec un client ssh.
L'application prend également en charge différents profils. Un profil n'étant ni plus ni moins qu'un Pi.
Chaque profils, comporte 3 boutons paramétrables qui enverront ces commandes.
L'application doit donc être paramétrée à l'aide d'un script au format texte (enregistré en utf8 ou ansi selon les plateformes...) dont la structure n'est ni plus ni moins que celle des fichiers ".ini" qui sont très simples à comprendre et à implémenter au sein de l'application.
Un script à "injecter" à l'application peut donc ressembler à ça :
[monpi1]
host=192.168.1.42
port=22
login=pi
password=raspberry
autoconnect=no
button1_visible=yes
button1_name=temperature
button1_type=textreturn
button1_action=/opt/vc/bin/vcgencmd measure_temp
button2_visible=yes
button2_name=camera
button2_type=imagereturn
button2_action=/var/www/image.jpg
button3_visible=yes
button3_name=reboot
button3_type=noreturn
button3_action=sudo reboot
Explications détaillées du script :
[monpi1]
---> nom du profil, impérativement entre crochets. Vous pouvez en mettre autant que vous voulez.
host=192.168.1.42
---> adresse ip (ou nom de domaine) de votre Pi, de ce profil.
port=22
---> Port ssh du pi, de ce profil.
login=pi
---> Votre login/user sur votre pi, de ce profil.
password=raspberry
---> Votre mot de passe du login/user du pi, de ce profil.
autoconnect=no
---> autoconnect permet (yes) ou non (no) de se connecter automatiquement au Pi à la sélection du profil.
button1_visible=yes
---> Le premier bouton (tout à gauche) est visible (yes) ou pas (no, ou vide)
button1_name=temperature
---> Nomme le premier bouton et dans ce cas là, le mot "temperature" sera affiché sur ce bouton.
button1_type=textreturn
---> Ce bouton peut retourner au choix du texte (textreturn), une image (imagereturn), de la voix (voicereturn) ou rien (noreturn).
---> Dans ce cas, textreturn, retournera le texte qu'affiche le pi à l'envoi de la commande.
button1_action=/opt/vc/bin/vcgencmd measure_temp
---> la commande ou l'action à envoyer au Pi.
---> Dans ce cas, nous lui demandons d'afficher la température du cpu du pi.
---> En appuyant donc sur ce bouton, l'application se connectera en ssh sur votre pi, enverra la commande linux, le pi affichera la température qui s'affichera donc dans votre application.
button2_visible=yes
---> Le second bouton (au milieu) est visible (yes) ou pas (no, ou vide)
button2_name=camera
---> Nomme le premier bouton et dans ce cas là, le mot "camera" sera affiché sur ce bouton.
button2_type=imagereturn
---> Ce bouton peut retourner au choix du texte (textreturn), une image (imagereturn), de la voix (voicereturn) ou rien (noreturn).
---> Dans ce cas, imagereturn, retournera une image stockée sur le pi à l'envoi de la commande.
button2_action=/var/www/image.jpg
---> la commande ou l'action à envoyer au Pi.
---> Dans ce cas, nous lui demandons d'aller chercher image.jpg localisée dans /var/www/. L'image peut être au format jpg ou png ou gif.
---> En appuyant donc sur ce bouton, l'application se connectera en ssh sur votre pi, transfèrera en stream sftp l'image du pi dans la fenêtre principale de votre application qui l'affichera. A ce stade, l'image n'est qu'affichée par l'application mais jamais enregistrée dans le stockage de votre application (mais ça pourrait-être une évolution possible...)
---> Si votre pi possède une webcam et que vous la paramétrez pour qu'elle enregistre à intervalles une image au sein de votre pi, l'application pourra donc aller la chercher et l'afficher.
button3_visible=yes
---> Le troisième bouton (tout à droite) est visible (yes) ou pas (no, ou vide)
button3_name=reboot
---> Nomme le premier bouton et dans ce cas là, le mot "reboot" sera affiché sur ce bouton.
button3_type=noreturn
---> Ce bouton peut retourner au choix du texte (textreturn), une image (imagereturn), de la voix (voicereturn) ou rien (noreturn).
---> Dans ce cas, noreturn, ne retournera rien et seule la commande sera envoyée au pi.
button3_action=sudo reboot
---> la commande ou l'action à envoyer au Pi.
---> Dans ce cas, nous lui demandons d'exécuter la commande linux sudo reboot qui reboot le pi...
---> En appuyant donc sur ce bouton, l'application se connectera en ssh sur votre pi, enverra la commande linux et le pi rebootera.
---> Attention, avec sudo, il est généralement demandé le mot de passe root pour pouvoir exécuter la commande. Or, l'application n'enverra pas cette information. Il vous faudra donc simplement attribuer au login/user (pi dans ce cas) les droits adéquats en éditant le fichier /etc/sudoers.
Si vous êtes encore là à me lire, vous aurez constaté que j'ai évoqué la possibilité de retourner de la voix.
C'est effectivement implémenté uniquement avec la version android de l'application et voici comment ça marche.
Reprenons notre exemple du bouton numéro 1 qui affiche la température.
La commande linux utilisée est : /opt/vc/bin/vcgencmd measure_temp
Qui, lorsque tapée sur votre pi (ou envoyée avec le bouton de l'application) vous donne théoriquement le résultat suivant :
temp=42.0'C
Si nous transformons la commande linux afin qu'elle nous retourne un joli texte pouvant être "parlé" par l'application, nous pourrions faire ceci :
/opt/vc/bin/vcgencmd measure_temp | sed -e "s/temp=/le processeur est a /g" | sed -e "s/\./ virgule /g" | sed -e "s/'C/ degres celcius/g"
Et aurions comme résultat :
le processeur est a 42 virgule 0 degres celcius
Donc, la configuration de notre bouton peut s'effectuer de la même manière, à savoir :
button1_visible=yes
---> Le premier bouton (tout à gauche) est visible (yes) ou pas (no, ou vide)
button1_name=temperature
---> Nomme le premier bouton et dans ce cas là, le mot "temperature" sera affiché sur ce bouton.
button1_type=voicereturn
---> Ce bouton peut retourner au choix du texte (textreturn), une image (imagereturn), de la voix (voicereturn) ou rien (noreturn).
---> Dans ce cas, voicereturn, retournera sous forme de voix le texte qu'affiche le pi à l'envoi de la commande.
button1_action=/opt/vc/bin/vcgencmd measure_temp | sed -e "s/temp=/le processeur est a /g" | sed -e "s/\./ virgule /g" | sed -e "s/'C/ degres celcius/g"
---> la commande ou l'action à envoyer au Pi.
---> Dans ce cas, nous lui demandons d'afficher "joliment" la température du cpu.
---> En appuyant donc sur ce bouton, l'application se connectera en ssh sur votre pi, enverra la commande linux, le pi retournera la jolie phrase et l'application la transformera en voix.
---> Vous entrendrez donc dans l'application une voix (féminine ou masculine, selon la configuration vocale de votre smartphone/tablette android) disant : "le processeur est a 42 virgule 0 degres celcius"
Quelques autres alternatives (plus simplistes...) :
button1_visible=yes
button1_name=ditbonjour
button1_type=voicereturn
button1_action=echo bonjour
---> l'application dira "bonjour" (commande linux echo bonjour)
button1_visible=yes
button1_name=directory
button1_type=voicereturn
button1_action=ls
---> l'application vous dictera le retour de la commande linux ls, qui liste votre répertoire courant sur votre pi...
button1_visible=yes
button1_name=update
button1_type=textreturn
button1_action=sudo apt-get update && sudo apt-get upgrade -y
---> l'application effectuera un update+upgrade de votre pi et affichera le résultat... (modifier /etc/sudoers en conséquence...)
button1_visible=yes
button1_name=directory
button1_type=textreturn
button1_action=ls
---> l'application vous affichera le résultat de la commande linux ls, qui liste votre répertoire courant sur votre pi...
button1_visible=yes
button1_name=Portail
button1_type=noreturn
button1_action=./portail.sh
---> l'application executera le script bash "portail.sh" sur votre pi (script bash ou python qui ouvre un portail par exemple) sans aucun retour d'info.
button1_visible=yes
button1_name=Garage
button1_type=voicereturn
button1_action=./garage.sh
---> l'application executera le script bash "garage.sh" sur votre pi (script bash ou python qui ouvre un garage par exemple puis sort un texte "Ouverture du garage" si le résultat est probant) et dictera le retour du texte de ce script bash, "Ouverture du garage" par exemple...
Bref... Les combinaisons possibles étant vastes et variées, l'application est donc malléable et adaptable à plus ou moins n'importe quel projet
Concernant sa composition "visuelle" :
- Il y a 4 écrans et on y accède par les flèches gauches et droites du bas.
- Sur tous les écrans, il y a, en bas, au milieu, l'accès aux profils.
- Sur le premier écran, en bas, il y a les 3 boutons des actions/commandes envoyées et, dans la partie principale les résultats/retours des commandes envoyées (texte, image...)
- Sur le second écran, on y voit quelques brèves informations sur le profils courant. On peut s'y connecter, se déconnecter. Cet écran n'est pas en soit très utile mais bon...
- Sur le 3ème écran, une fenêtre principale dans laquelle s'affiche le fichier de script ".ini". Le nom du script ".ini" doit d'ailleurs impérativement s'appeler "config.ini". Vous pouvez d'ailleurs modifier ce fichier depuis votre android (pas très pratique avec le petit clavier d'un smartphone et la petitesse de l'écran mais rapide dans le cadre de petites corrections rapides à faire...)
- Toujours sur ce 3ème écran, 3 boutons. Load config, Import config et Save config.
- Load config, charge le "config.ini" perpétuellement stocké avec l'application dans votre android. Si vous lancez l'application pour la toute première fois, j'y ai incorporé un fichier prêt à l'emploi. A vous de le compléter...
- Save config, sauvegarde le fichier "config.ini" actuellement affiché (que vous aurez éventuellement modifié) dans la fenêtre principale au sein de votre application. Le fichier "config.ini" perpétuellement stocké avec l'application dans votre android, n'est théoriquement pas accessible (et "caché") lorsque vous branchez votre smartphone sur votre pc/mac pour y voir son contenu. Si vous êtes root sur votre smartphone/tablette android, oubliez bien évidemment ce que j'ai dit...
- Import config, permet là l'import d'un fichier "config.ini" que vous aurez préalablement composé avec votre éditeur préféré depuis votre PC ou Mac et déposé dans votre smartphone/tablette android dans le répertoire RACINE du stockage INTERNE. Une fois importé, il s'affichera dans la fenêtre principale et là, vous pourrez le sauvegarder avec le bouton Save config afin qu'il soit perpétuellement au sein de l'application. Ce mode de fonctionnement est pour le moment la solution la plus "simple" que j'ai trouvé mais je suis ouvert à toute autre propositions car j'ai eu vent de soucis d'imports avec certains android... à tester, à débattre & à suivre donc...
- Concernant ce fichier "config.ini" je vous invite à l'enregistrer en ANSI pour windows et en UTF-8 pour android.
- Le 4ème écran est simplement un "about" écran... il pourrait y inclure une notice (si quelqu'un veut s'y coller...)
Concernant la suite :
Suite à mes récents tests & investigations qui sont plutôt positifs, je compte prochainement implémenter la possibilité, en plus des boutons, de parler à l'application afin qu'elle exécute des commandes (similaires à celles des boutons).
A savoir, vous parlez à l'application et cette dernière envoie les commandes au pi.
exemple :
- L'application se lance, attends une commande vocale ou vous pressez un bouton de type "micro" et vous parlez.
- Là, selon le mot ou la phrase énoncée, une commande se lance.
- Bien sûr, le mot ou la phrase énoncée sera paramétrable au même titre que les boutons paramétrables déjà en place.
Voilà.
Je vous livre ci-après quelques snapshots de l’application et les liens pour télécharger et tester tout ça.
Excusez moi également pour ce long texte et les éventuelles fautes d'orthographes/erreurs qui s'y seraient glissées.
L'application n'en étant à ses tout débuts, il se peut qu'il y ait encore de nombreux bugs et/ou qu'elle plante parfois magistralement
N'hésitez pas à me faire du retour et/ou poser vos questions dans ce même thread si possible.
Amicalement, merci de votre attention & bon tests ?
Laurent / zton.
Site (en cours) : http://goto314.com/
zip (tout est dedans) : http://goto314.com/Goto314.zip
apk (seul) : http://goto314.com/Goto314.apk
exe (seul) : http://goto314.com/Goto314.exe
config.ini (seul) : http://goto314.com/config.ini
Snapshots :