Maintenant que j’ai pu mettre en place et constater que la solution qui consistait à utiliser un smartphone Android en tant que que passerelle SMS, je me suis dit qu’il pouvait être sympathique d’utiliser cette architecture afin de proposer d’autres services à la domotique personnelle. Les différentes solutions et box domotiques du marché étant souvent capables de communiquer sur un réseau informatique, je me suis intéressé à ce qui pouvait exister comme serveur web pour un Intranet… sous Android. Et là.. : PAW!
Présentation
La passerelle SMS mise en place grâce à l’application SMS Gateway est fonctionnelle et opérationnelle. Elle permet de recevoir des ordres d’envoi de SMS de la part de ma domotique et bientôt de pouvoir transmettre des ordres à cette domotique qui auraient été reçus par SMS. Plus qu’une application, SMS Gateway est un serveur SMS Android sur mon réseau car le téléphone Android sur lequel elle est installée y est connecté en Wifi.
PAW est également une application Android. D’une interface minimaliste, sur le téléphone elle ne propose qu’un bouton ON/OFF.
En installant PAW vous pouvez ensuite reposer votre smartphone et l’administrer à distance comme… un serveur. L’administration peut également se faire en local en utilisant le navigateur du Smartphone.
Aperçu des fonctionnalités
PAW permet de gérer votre téléphone Android depuis n’importe quel navigateur internet. Par ce biais, vous avez également la possibilité :
- de passer des appels téléphoniques,
- de consulter le journal des appels,
- d’envoyer/recevoir des SMS,
- d’envoyer des mails….
- de voir les processus en cours,
- de sauvegardez ou bien d’installer des applications,
- et bien plus encore…
Paw est également un serveur web pour vos pages html ou dynamiques. En tant que serveur HTTP administrable par le web on retrouve :
- la gestion des utilisateurs/mots de passe
- la gestion des droits d’accès aux répertoires
- la gestion du serveur web
- la gestion d’applications webs créées par l’utilisateur
- la visualisation des logs
- la gestion des connexions
- …
Sa grande qualité est de proposer l’accès à toutes les capacités et fonctionnalités des téléphones ou des tablettes sous Android:
- la ligne téléphonique
- les SMS
- les mails
- La connexion internet
- le lecteur multimédia (MP3…)
- la caméra
- les photos
- le micro
- l’accéléromètre
- le GPS
- la synthèse vocale
- la reconnaissance vocale
- le Wifi, le Bluetooth, et autres NFC
- la boussole
- les capteurs de proximité, de lumière, de pression, le gyroscope
- les notifications
- le vibreur et les sonneries
- …
Tout cela fait que cette application permet donc de transformer votre téléphone en un petit peu tout ce que vous voulez!
On peut par exemple créer :
- une webcam utilisant le streaming,
- un appareil d’enregistrement audio à distance,
- un serveur de SMS (émission et réception),
- un système qui permet de déclencher un appel vers un autre de vos téléphones portables afin que vous puissiez faire une levée de doutes audio ou vidéo en cas de suspicion d’effraction,
- un diffuseur sonore multi sonneries en jouant les sonneries différentes (MP3 ou autres) en fonction d’évènements définis chez vous (ouverture de porte, sonnette, fin de la lessive, distribution du courrier…),
- un système de synthèse vocale et/ou de reconnaissance vocale
- …
Pour les autres avantages il faut savoir que PAW permet également les choses suivantes:
- compatible avec l’application Tasker
- fonctionne en HTTP mais également HTTPS
- possibilité de modifier le port utilisé
- possibilité de l’utiliser en tant que serveur proxy
- fonctionne en Wifi mais également en 3G
- possibilité proposer des fonctionnalités supplémentaires via des plug-in
- …
Parmi les plug-in disponibles, on trouve quelques fonctionnalités très intéressantes :
- le langage PHP (version 5.3.8 à 5.4.2)
- l’ordonnanceur de tâches CRON
- la gestion des puces NFC
- la fonctionnalité PirateBox
- …
Il est a noter que le plug-in CRON nécessite le langage Perl. Un interpréteur Perl doit alors être installé: il est disponible indépendamment de PAW en tant que fichier APK.
L’auteur présente ensuite sur son blog le paramétrage qu’il faut ensuite effectuer dans PAW afin de pouvoir utiliser cet interpréteur PERL pour utiliser ce langage pour générer n’importe quelle page web.
En suivant cette procédure, vous pourrez en théorie utiliser n’importe quel des langages de script proposés par le projet SL4A (Scripting Language for Android).
En un mot, SL4A est une infrastructure logicielle permettant l’interopérabilité des moteurs langage de script qui ont été portés à la plateforme Android, avec l’interface Android de programmation d’application (API) par l’intermédiaire d’appels de procédure distante (RPC) sur un serveur implémenté comme une application standard Android Java .
Même si à ce stade il faut mettre les mains dans le cambouis en modifiant les fichiers de paramétrage ce qui n’est pas compliqué en soi mais qui n’est pas non plus à la portée de tous, on peut donc espérer faire tourner des applications écrites en :
- PERL
- Python
- BSH
- LUA (le langage utilisé par les serveurs domotiques VERA de MiCasaVerde!!!)
- Ruby
Non seulement vous pouvez déployer vos propres page Web, mais vous pouvez également développer vos propres applications web dynamiques. L’API Android peut être utilisée, ce qui inclut également une connectivité pour les bases de données SQLite.
Installation
PAW est une application Android classique. Elle est donc disponible au choix:
- sur Google Play
- en tant que fichier APK sur le site de l’éditeur
- en tant que fichiers à installer manuellement sur la carte SD de son téléphone portable
L’installation de PAW est facile. Il suffit :
- d’installer l’application depuis Google Store par exemple,
- de la lancer l’application sur votre téléphone
- d’appuyer sur le bouton rond pour démarrer le serveur
C’est tout!
Il n’y a pas besoin d’avoir un téléphone dernier cri, ni trafiqué, ni “rooté”. L’installation est standard, classique et simple.
L’application affiche ensuite l’adresse IP et le port de votre téléphone. Tapez-les dans la barre d’adresse de votre navigateur Web de votre ordinateur et la page de connexion de PAW apparaît. La première fois que vous vous connectez, utilisez le nom d’utilisateur et mot de passe par défaut indiqués à savoir admin / paw. Une fois connecté je vous conseille de les changer.
Vous pouvez configurer la plupart des paramètres de l’application PAW via le navigateur Web. Deux paramètres sont configurables via l’application sur l’appareil Android. La première option sur l’appareil consiste à réinitialiser tous les paramètres aux valeurs par défaut de PAW. La deuxième option est de rendre possible le lancement automatique de PAW à chaque fois le que le téléphone démarre. C’est plutôt une options intéressante si vous voulez utiliser PAW en tant que serveur Web.
Installation des pages web
PAW est un vrai serveur web vous permettant d’héberger vos propres pages sur votre appareil Android.
Pour cela il suffit de :
- mettre votre contenu dans le répertoire: /sdcard/paw/html . Vous pouvez bien évidemment créer des sous-répertoires.
- c’est tout!
Pour placer les fichiers que vous aurez créé dans le bon répertoire, vous pouvez retirer la carte SD de votre téléphone et la mettre dans un lecteur de cartes de votre ordinateur. De manière plus simple et plus pratique je vous conseille d’utiliser l’explorateur de fichiers qui est disponible dans PAW.
Pour créer les pages dynamiques PAW comprend en standard le langage BeanShell. Si vous connaissez le Java ou le Javascript cela ne posera pas de problèmes. Le développement avec cet environnement est facilité par la mise à disposition de fonctions PAW documentées afin d’accéder aux différents composants de votre téléphone cités précédements. Sans avoir à installer de PHP ou autre langage de script cela donne accès à de très nombreuses possibilités!
Conclusion
Comme nous l’avons vu PAW est donc une petite application puissante permettant de coder en BeanShell standard (ou autre en option), n’importe quel fonctionnalité qui sera alors hébergée sur votre téléphone Android. Ce dernier devient un serveur communicant, multimédia et doté de plusieurs capteurs et caméras. il ne prends pas trop de ressources sur le téléphone.
C’est également un bonne option que de choisir un vieux smartphone Android comme serveur. En profitant comme moi d’un smartphone d’occasion afin de lui redonner une utilité on fait un recyclage intéressant et utile d’un appareil électronique qui aurais pu terminer sa vie dans un tiroir ou pire! Si l’écran est un peu “usé” ce n’est pas grave car on peut entièrement le gérer à distance. Si le haut parleur est défectueux vous pourrez pour quelques euros lui adjoindre un haut parleur externe relié par la prise jack… ou en Bluetooth! La batterie durera le temps qu’elle pourra mais vous avez là un onduleur pour votre serveur.
Cotés négatifs j’ai constaté que la batterie est mise à rude épreuve. Le serveur consomme des ressources et le téléphone devra être branché sur son alimentation. La consommation sera toujours limitée par rapport à un ordinateur classique. Vous pourrez domotiser pourquoi pas cette alimentation à l’aide d’une prise pilotée pour ne recharger le téléphone que si nécessaire en développant le script adapté!
Autre côté négatif et non des moindres: cette application est en version bêta. C’est une choses qu’il faut garder en tête si l’on veut en faire un outil central de son système domotique. Au cours de mes différentes utilisations j’ai eu à déplorer l’arrêt inexpliqué du serveur au tout début. Peut être que les scripts tâtonnants de mes débuts ainsi que mon code débutant en BeanShell ont mis à mal la stabilité de la solution. 😉 Rien de grave pour le téléphone : le simple fait de devoir appuyer à nouveau sur LE bouton ON/OFF de l’application a remis les choses en place et relancé le système. Depuis que mes scripts sont débogués je n’ai plus ces plantages à déplorer.
Je vous donne rendez-vous demain pour les premières mises en œuvres!