PAW : Serveur HTTP, PHP, Perl… pour Android et ma domotique!9 minute(s) de lecture

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.

C’est un peu léger me direz vous pour paramétrer un serveur! En effet son but est de proposer un serveur HTTP pour des smartphones ou tablettes Android. L’administration du serveur se fera alors en ligne depuis n’importe quel ordinateur ayant accès au téléphone via le réseau local.

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:

L’installation de PAW est facile. Il suffit :

  1. d’installer l’application depuis Google Store par exemple,
  2. de la lancer l’application sur votre téléphone
  3. 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 :

  1. mettre votre contenu dans le répertoire: /sdcard/paw/html . Vous pouvez bien évidemment créer des sous-répertoires.
  2. 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!

29 Comments

  1. […] PAW : Serveur HTTP, PHP, Perl… pour Android et ma domotique! Rooter son smartphone Android et changer de ROM : Introduction Zoom Annoncé en novembre 2007 par Google, Android est un système d’exploitation basé sur un noyau Linux et destiné aux smartphones, aux tablettes et plus généralement aux terminaux mobiles. Depuis le lancement du premier smartphone Android (le Dream de HTC, lancé en octobre 2008), ce système a été adopté par de très nombreux constructeurs. Rooter son smartphone Serval a été inventé par Paul Gardner-Stephen , un chercheur australien de l'université Flinders d'Adela ïde, avec l' aide d'étudiants de l'Institut national de sciences appliquées de Lyon (INSA). Selon lui, son invention restaure les vraies potentialités des téléphones mobiles : <i>"Dans les années 1980, les ingénieurs travaillant sur les premiers prototypes avaient imaginé des réseaux mesh, simples et bon marché. Mais les compagnies de téléphone les avaient empêchés de travailler dans cette direction, parce qu'elles voulaient préserver leur modèle pyramidal contrôlé par le haut, hérité du téléphone filaire – techniquement caduc mais commercialement très profitable. Aujourd'hui encore, si les mobiles ne peuvent pas se parler directement au niveau local, c'est parce qu'ils sont verrouillés par les opérateurs, qui obligent les usagers à passer par leurs relais et donc par leurs systèmes de facturation." </i> […]

    7 janvier 2013
    Reply
  2. Greg said:

    Salut ! Super trouvaille que voila et sympas les petits scripts que tu as fait jusqu’a présent 😉 (et super site par la meme occasion ^^)
    Dans ton billet, tu parle de la possibilité de créer “une webcam utilisant le streaming” … J’aimerais bien faire ce genre de chose, mais j’y connais strictement rien ! Tu as une idée ? J’ai vu dans la doc qu’on avait accès à un objet “CameraPreview” mais il semblerait que ca soit juste pour faire des captures unique, pas pour du streaming…

    11 janvier 2013
    Reply
    • Avatar photo Hervé said:

      Bonjour Greg,
      Merci!
      La possibilité est annoncée mais je n’ai pas encore testé ni mis en œuvre la partie vidéo. Je regarde et te tiens au courant.

      15 janvier 2013
      Reply
      • Greg said:

        Super 😉 Merci !

        16 janvier 2013
        Reply
  3. domstuff said:

    Waouuhh!!!

    C’est mechament genial tout ca!!!

    Cela fait un bon bout de temps que je chercher a piloter ma domotique avec la reconnaissance vocal de mon tel.
    J’ai plus qu’a tester tout ca avec mon interface Ed-win.

    Super tuto et bravo pour les scripts.

    17 janvier 2013
    Reply
    • Avatar photo Hervé said:

      Bonjour domstuff,
      Merci 🙂
      Reviens nous dire comment ça marche avec Ed-win. Et si tu as des scripts à partager également par la suite tu peux me contacter pour qu’ils soient publiés également.

      17 janvier 2013
      Reply
  4. domstuff said:

    Quelques retours:

    J’ai donc mis en place le serveur web sur mon htc ,pas de problèmes particulier.
    Pour l’instant me suis attelé sur la commande vocal vu que c’est ce qui m’intéresse le plus.
    J’ai donc un peu modifié le script pour qu’il communique avec ed-win ça passe sans soucis.
    Mais je rencontre un soucis avec mon tel,quand je lance le script le tel passe bien en reconnaissance vocal mais après avoir dis la phrase magique que j’ai simplifié (allume cuisine) j’ai systématiquement” desole je n’est pas compris”.
    J’ai donc un problème de reconnaissance du texte,:-(
    Petite remarque au passage ,la ponctuation n’est pas prise en compte en synthese vocal (désolé deviens desole).
    Est ce le script qu’il faut optimiser ou mon tel qui déconne??
    Je cherche….

    Bien sure Paw étant encore en beta,il y a quelques beug par ci par là et quelques manques: utilisations par le réseau gsm non fonctionnel,arrêt du serveur sans explications mais c’est une très bonne idée a suivre de près donc.

    17 janvier 2013
    Reply
    • Avatar photo Hervé said:

      L’histoire des accents qui ne passent pas me laissent penser qu’il y a quelque chose à faire sur ton téléphone. Es-tu sûr qu’il soit paramétré pour parler et entendre le français? J’avais lu quelque part qu’il fallait sur certain téléphone aller dans les paramétrages Android pour lui indiquer explicitement que l’on souhaite le français. Par contre je ne sais plus où 🙁 Je vais tenter de retrouver cela.
      Si tu lances le script en HTTP depuis ton PC la page doit te dire quelle est la phrase entendue et ainsi pourvoir faciliter le diagnostique.
      Toujours sur le navigateur de ton PC si tu demande à ‘voir le code source de la page’, PAW y fait figurer en VERT des informations d’erreurs. C’est plutôt pas mal pour le débug.
      J’espère que ça t’aidera.

      18 janvier 2013
      Reply
  5. domstuff said:

    Me voila de retour après de nombreux essais sur ma tablette Android.

    Le script fonctionne mais la reconnaissance vocal fonctionne tres très mal.
    Pas moyen qu’elle comprenne ce que je dis,j’ai tenté de nombreux réglages mais rien a faire.
    Certaines phrases passent mais pas d’autre ( cuisine elle comprends piscine).

    Bref,j’arrête la pour l’instant.

    20 janvier 2013
    Reply
  6. […] PAW : Serveur HTTP, PHP, Perl… pour Android et ma domotique! Notifications in the cloud inotify – get your file system supervised This program is an "inotify cron" system. It consists of a daemon and a table manipulator. You can use it a similar way as the regular cron. handleOpenURL: Shared Interapp Communication on iOS Technology @Software R&D web Tools 13 cms [+] Alfresco community download CMS alfresco source mendeley liked citation Mobile javascript Mobile/iOS/Etc | Platforms apple Web Design sencha ontology periodic Mobile/iOS/Android/Etc | WebDev – Libraries/Toolkits/Frameworks framework design plugins Web bower mobile swift HTML5 outil create touch Otras Compañias mobile development patterns FRAMEWORK jquery Web Development & HTML5 javascript Libaries media Phone Apps jquery application App Build-Create mobile iPad Development create developer resources coding javascript Ios SDK marmalade WebApp Dev awesome mobile frameworks html5 project johande framework pearltrees Dev Platforms mobile radical HTML5 please javascript rocks web technologies application multiple Crowd_Examples crowd articles group technical overview design framework développement tech dublin javascript IOS alerte iphone favorite collabo platform tools online Management source content iPad interapp CRMs and Project Management SAAS relationship manager Linux alfresco Installation install Technology scientist computing Mobile framework blackberry jquery Desktop Notizzettel onenote tomboy JS javascript interactive Frameworks javascript Inspiration resolution patterns network home • contact • blog • fb • twitter to experience pearltrees activate javascript. […]

    27 janvier 2013
    Reply
  7. JGOU78 said:

    bonjour,

    Pas mal du tout ! j’ai ressorti mon vieux téléphone !
    il y a le “Test to speech” qui fonctionne super bien ! Mais je voudrais l’utiliser pour la domotique, par une simple commande HTTP.
    Je voudrais aussi lancer un mp3 par une simple commande HTTP.
    comment dois je faire ? (ps : je suis pas informaticien)
    merci

    1 avril 2013
    Reply
    • Avatar photo Hervé said:

      Bonjour,
      Tu peux continuer ta lecture concernant PAW avec les autres articles qui lui sont dédiés:

      http://www.abavala.com/domotique/android/

      Tu pourras trouver des exemples de mises en œuvres par simple commande HTTP dont la lecture de MP3 que tu recherches.
      Bonne lecture

      1 avril 2013
      Reply
  8. JGOU78 said:

    désolé j’avais pas vu ! je suis entrain de tout lire, en tout cas c’est très bien fait ! je vais bientôt passer à l’action.

    2 avril 2013
    Reply
  9. pikat said:

    Salut jgou78, mon karotz n’étant pas toujours allumé, je me sers de PAW pour le retour vocal de quelques scènes (courrier, lumières….) et de sa commande vocale pour lancer des scénarios ( musique, lumières, télé….) bon courage jgou78, les possibilités sont énormes…… et encore merci Hervé !

    5 avril 2013
    Reply
  10. JGOU78 said:

    Salut,

    J’utilise PAW depuis 15jrs est c’est TOP ! @ pikat : Du coup mon Karotz risque de dormir pour longtemps !
    Merci à Hervé pour cette belle découverte !

    21 avril 2013
    Reply
  11. pikat said:

    Bonjour Hervé, crois-tu que PAW serait capable d’allumer l’écran de la tablette murale sur une simple requête http envoyée par la Zibase ? Tasker déverrouille l’écran et lance automatiquement Imperihome.
    Ce serait sympa (je rentre chez moi, le détecteur envoie une requête http via la zibase et mon écran s’allume pour que je puisse désactiver l’alarme….)

    5 juin 2013
    Reply
    • Avatar photo Hervé said:

      Je ne sais pas je vais investiguer. Est-ce qu’une simple alerte envoyée par la Zibase à l’appli Zodianet de la tablette murale permettrait de réveiller ta tablette?

      10 juin 2013
      Reply
  12. pikat said:

    Ah très bonne question…. je ne sais pas …..

    10 juin 2013
    Reply
  13. pikat said:

    A bien réfléchir je ne pense pas…. lorsque je reçois une alerte courrier par exemple mon écran reste éteint, même si je reçois un mail…. j’ai le son de réception de message mais l’écran reste éteint….

    10 juin 2013
    Reply
  14. pikat said:

    J’ ai testé avec la mise à jour de la zibase et de l’application zodianet pour les notifications push…. je les reçois bien mais l’écran ne s’allume pas, j’ai juste le son de notification…. peut-être que cela vient de ma version d’android (4.0.3) car je n’ai pas l’option allumer écran dans tasker…..

    11 juin 2013
    Reply
  15. pikat said:

    Bon cela n’a rien à voir avec paw mais j’ai trouvé une piste…..Lorsque je branche ma tablette sur le secteur, l’écran s’allume et tasker le déverrouille et me lance Imperihome…. Donc un détecteur de mouvement ou d’ouverture met sur on le module qui alimente la tablette et mon écran s’allume….je laisse le module sur on pendant 5 mn par exemple puis il coupe l’alim et donc l’écran….

    11 juin 2013
    Reply
    • Avatar photo Hervé said:

      Pas bête non plus. Comme quoi souvent les bonnes idées sont les plus simples.

      11 juin 2013
      Reply
  16. pikat said:

    C’est pas faux !!!!! Merci en tout cas et si tu as une autre idée je suis preneur , bonne continuation…

    11 juin 2013
    Reply
  17. Bruno said:

    Bonjour,
    Ma tante à un système domotique allumage de la chaudière via sa ligne fixe france telecom.
    Je voudrais changer d’opérateur et passer par une box tout en gardant le numéro de téléphone.
    Est ce qu’en branchant le combiné sur la box, l’allumage de la chaudière continuera ou dois je changer les paramètres du système.
    Cordialement

    22 mars 2015
    Reply
    • Avatar photo Hervé said:

      Bonjour Bruno,
      Sans références de produit il n’est pas facile de répondre… En tout cas la personne à même de pouvoir te répondre sera en premier lieu le fabricant du système en question.

      23 mars 2015
      Reply
  18. djé said:

    Bonjour,
    Félicitations pour se scrpit trop top.
    Juste une question serais t il possible se synthétisé le texte dans un fichier audio et le renvoyer d client?

    16 octobre 2017
    Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Prouvez que vous êtes humain: * Time limit is exhausted. Please reload CAPTCHA.