JPI – à lui tout seul un article !

Rédaction le 14/12/2018
Mise à jour le 22/12/2018

Voilà, encore une expérience personnelle qui au même titre que Domowidget est pour moi un des must-have pour démarrer une domotique personnelle.

Oui, il impose Android, désolé pour les possesseurs d’iOS – de toutes les manières, il faut reconnaître que Jeedom est quand même très lié à l’open-source et quand ce cas, la pomme passe son chemin (il me semble avoir lu qu’il existait une solution du côté de “home remote”).

Bref, mais c’est quoi JPI ?

JPI est un logiciel développé sur la base d’un serveur PAW qui tourne sur un élément Android : téléphone, tablette.

Ces possibilités sont énormes – même si coûteuses en ressources :

  • surveillance d’éléments domotiques ;
  • utilisation de la caméra pour détection de mouvement ou streaming ;
  • affichage de design ;
  • pilotage d’une prise pour le chargement de la tablette ;
  • interaction vocale à la “Google Home” ;
  • fonctionne sur un élément Android rooté ou non ;
  • envoi de SMS ou MMS si cet élément Android a une carte SIM (comme il existe des tablettes 3/4G) ;
  • sauvegarde / restauration d’une configuration ;
  • programmation type scénario pour faire des choses ;
  • avec des événements maitrisés : wifi ; internet ; passerelle ; jeedom ; caméra ; notifications etc
  • stockage de vidéo, photo etc.

Bref de quoi transformer votre téléphone ou tablette Android en véritable passerelle intégrable à Jeedom avec le plugin du même nom : JPI Plugin.

Rendons à César ce qui lui est dû : il est l’œuvre de Djul et sincèrement pour un truc gratuit, il gagnerait d’être payant tellement il est complet et stable.

Personnellement, je l’utilise à travers un téléphone Android et 2 tablettes Android fixées au mur avec les fonctions suivantes :

  • le téléphone, un bon vieux Asus Zenfone qui pilote sa charge/décharge et est chargé d’envoyer les SMS du quotidien qui sont judicieux : généralement l’alarme, la présence et en cas de coupure quelques messages importants comme Internet, onduleur etc. A défaut, je préfère passer par Telegram. Pourquoi les SMS ? L’utilisation d’un lecteur de SMS par le Bluetooth vous affranchit de la consultation par exemple dans la voiture ;
  • les tablettes, là aussi, mon choix s’est porté depuis plus d’un an et demi sur 2 tablettes Acer Iconia A3-A40 avec une définition Full-HD ; 4 hauts-parleurs en face avant et une taille de 10.1 pouces. C’est sûr que maintenant, je ferai différemment MAIS mon expérience des tablettes chinoises m’a vite rappelé à l’ordre et le prix des tablettes de taille plus importante 13, 15 ou 22 pouces (on parle plus d’écran tactile) là encore m’a rappelé à l’ordre !
La photo date un peu pour le design ; mais un exemple de ce que permet JPI !

Il existe des alternatives comme FullyKiosk par exemple ; à vous de vous faire votre expérience, je ne fais que vous livrer la mienne.

Le matériel nécessaire

La recette :

  • Trouvez-vous un bon vieux téléphone Android ou encore mieux une tablette 4G avec carte SIM ;
  • Un forfait Free à 2€ fera l’affaire !
  • De préférence avec un Android > 5 ;
  • Rooté c’est encore mieux (inutile de vous lancer là-dedans si vous ne savez pas ce que ce mot veut dire) – JPI est plus flexible en cas de problème sur un Android rooté mais fonctionne très bien sans dans 90% des cas – mes 2 tablettes Android Acer ne le sont pas !
  • Si 3/4G, bloquez par sécurité le volume de données 4G à 50 Mo pour éviter une mauvaise surprise (jamais arrivé mais on ne sait jamais !) ;
  • Autorisez sur votre appareil l’installation de sources inconnues.

Je ne peux que vous recommander de ne pas forcément investir dans des produits hors de prix car mine-de-rien, vous allez mettre au mur un billet et ce serait peut être plus joli !

Quelques produits que je peux vous recommander après 1 an d’essai de différents produits :

  • j’utilise un support réglable de 9 à 11 pouces, tournant et assez compact je trouve et surtout pas hors de prix ! Vogel est une référence mais le porte-monnaie aussi !

Brateck Support mural pour tablette iPadAir/1/2/3/4 de 8,9″ à 10,4″

  • concernant un téléphone ou une tablette, je dois dire qu’il faut – à mes yeux – éviter les marques de matériel “légères” comme Archos, Wiko et le noname chinois rarement fiable sur le long terme (il y a du positif, du négatif dans les forums – là encore votre choix !)
  • j’ai fait le choix de l’Acer mais pourquoi ? car les hauts-parleurs sont en face avant donc plus pratique si votre tablette sert aussi de player vidéo : TV, PLEX, etc et plus audible en cas de synthèse vocale.
  • A choisir investir dans du matériel d’occasion comme un bon vieux S3 ou S4 mini de chez Samsung ou autre chose ou une tablette 4G ! Tout dépend l’opportunité et ce que vous voulez en faire ! Les produits Acer sont un bon compromis j’ai trouvé et pas hors de prix entre 100 et 200€ ! Lenovo, Huawei en promotion ou du Samsung aussi … mais les prix grimpent vite et je trouve dommage de mettre 300€ sur un mur… surtout quand on veut vite multiplier les points de lecture muraux.

L’Acer Iconia A3 se trouve encore d’occasions sur Amazon à un prix “correct” :

Acer Iconia Tab A3-A40 Tablette Tactile 10″ Full HD Noir/Or (MediaTek Quad-Core, Mémoire 32 Go, Android) [Ancien Modèle]

Mais la B3 lui fait de l’ombre et est mieux

Acer Iconia One 10 B3-A40FHD-K0TC Tablette Tactile 10,1″ Full HD Blanc (MediaTek MT8167, 2 Go de RAM, SSD 32 Go, Android 7.0)

Du côté des tablettes 4G, je dois dire que le choix se restreint vite pour avoir quelque chose de fiable. Pour moi, Samsung et Huawei reste les références :

Samsung Galaxy Tab A T585 10.1 LTE /4G (2016) blanc 32 Giga

HUAWEI MediaPad M5 Lite 10 4G LTE Tablette Tactile 10.1″ Gris (32Go, 3Go de RAM, Android 8.0, Bluetooth, Quatre haut-parleurs)

HUAWEI MediaPad T5 10 4G LTE Tablette Tactile 10.1″ Noir (32Go, 3Go de RAM, Écran Full HD 1080p, Android 8.0

Il existe des solutions à base d’écran tactile Viewsonic 22 pouces ou d’autres tablettes mais je trouve que cette solution reste le meilleur rapport qualité-prix. On a tous une tablette ou un vieux téléphone pour démarrer dans un coin !

Quelques conseils

  • J’ai fait le choix de séparer l’élément qui gère les notifications SMS/MMS (téléphone) des éléments qui affichent. Le prix n’est pas un facteur important car un téléphone rooté correct tourne entre 50 et 100€ (et je l’avais déjà !) et une tablette correcte à 150€ là où une tablette 4G coûte 200/250€ ;
  • Veillez à avoir la même résolution, diagonale sur vos tablettes sinon il faudra faire plusieurs designs ! Pas pratique…
  • Pensez à indiquer à Android que vous souhaitez le Wifi toujours actif même en veille – Paramètres avancés du Wifi. Attention suivant les téléphones aux optimisation de batterie et aux surcouches opérateur qui dépassent les droits d’Android…
  • Histoire d’optimiser la durée de vie de votre batterie, je vous conseille de piloter le chargeur par une prise ou un module Chacon – simple, efficace et peu cher ! Donc soit ajouter une prise en série sur votre prise d’alimentation secteur, soit ajouter un module derrière la prise électrique. Ni vu ni connu ! Astuce, mettez une petite étiquette pour éviter qu’un petit malin utilise la prise surtout si elle est OFF lors de la décharge ! Mon expérience : j’utilise un module Chacon depuis 2 ans sur mon Asus Zenfone 2 qui a déjà 5 ans pour dire … voilà l’intérêt et tout cela avec la batterie d’origine. Le téléphone tient entre 10 et 21h en décharge suivant l’utilisation que Jeedom en fait. Pareil sur les tablettes.

Relisez l’article sur le pilotage des éclairages si besoin pour l’intégration de ces modules DIO – Chacon.

DiO Connected Home 3 prises télécommandées ON/OFF 2300W + télécommande 3 canaux DI-O First (Chacon 54795)

Getdio 54755,Module Luminaire On/Off

Alternative avec du matériel vendu Chacon mais qui ne sont que des prises “chinoise” no-name – le mode d’emploi pour les intégrer :

Chacon 54660 Lot de 3 Prises télécommandées

L’installation de JPI

Djul étant régulièrement absent mais son logiciel très stable à ce jour et depuis plusieurs mois je dois dire, passez par le forum pour récupérer la dernière version. De toutes les manières, je vous indiquerai comme intégrer les éventuelles mises à jour plus bas.

http://rulistaff.free.fr/JPI/getJPI/

https://www.jeedom.com/forum/viewtopic.php?f=27&t=18283&p=328034#p328034

Premier lien pour télécharger l’APK
Second lien pour se documenter …

La méthode :

  • Ouvrez le lien depuis le navigateur Internet de son téléphone ou tablette Android ;
  • Fixez son IP par votre serveur DHCP de préférence (voir l’article) ;
  • Télécharger l’APK en cliquant sur ce lien ;
  • L’installer sur votre tablette ou téléphone Android ;
  • La séquence d’installation lance PAW, JPI puis vous demande des autorisations, à vous de faire !
  • Veillez à cocher Auto-restart dans le menu Settings de PAW !
  • Prenez quelques secondes pour éteindre et rallumer votre téléphone et vérifiez que le couple PAW/JPI démarre tout seul. Cela peut être un peu long mais ça marche.

L’intégration dans Jeedom

Téléchargez depuis le market JPI plugin pour interfacer Jeedom avec votre élément Android :

Installer la version stable, puis Activer le plugin
Ensuite il est accessible !

Créez l’objet correspond à votre élément Android (il faut faire F5 après avoir nommé l’élément), vous n’avez besoin de que de l’adresse IP et le port 8080 sauf si vous allez le changer ensuite.

Configuration de l’objet JPI correspondant dans Jeedom

Les possibilités sont immenses à partir de là mais je vous conseille d’abord de bien paramétrer le côté serveur JPI. RDV dans votre navigateur internet à l’adresse : http://ipandroid:8080 :

Par défaut : admin/admin

Réglages de base

Voici ce que j’ai réglé, mais vous avez compris qu’il y a plusieurs possibilités ! J’écarte la partie interaction car je souhaite passer par SNIPS et non Google pour cette partie ; mais il existe aussi cette possibilité…

  • Application
    • J’active la vérification et l’installation automatique des mises à jour au démarrage ;
    • Je garde l’écran allumé sur la page de l’application ;
    • Je ne garde pas l’écran allumé en permanence (ça vide la batterie – je gère ça par mouvement) ;
    • Je ne garde pas l’application au premier plan – car mes tablettes me servent aussi à diffuser du contenu audio et vidéo ;
    • Je génère une notification lors des erreurs (plus pratique pour relire les notifications Android après plusieurs jours) ;
  • Contrôleurs actifs – Jeedom dans mon cas ;
  • Surveillance du réseau
    • J’ai tout activé – passerelle – internet – appareils personnalisés (voir plus bas) ;
  • Streaming … Mouvement
    • J’utilise la caméra frontale pour l’nsemble ;
    • J’active les fonctions de streaming et détection de mouvement ;
    • J’active la fonction de détection de mouvement (voir plus bas) pour savoir si j’ai du mouvement devant la tablette ;
    • MAIS je ne le démarre pas au démarrage du service – attention, forcément cela vide la batterie. Comme expliqué dans l’article sur la vidéo-surveillance, je l’active par le plugin JPI lors d’une intrusion ;
  • Jeedom : entrez l’IP, port et l’API. Je reste en HTTP étant en local ;
  • Appareils personnalisés : l’intérêt est d’être informé en cas de “chute” d’un des mes équipements clés même si Jeedom le fait, je préfère avoir un doublon SMS. J’ai ajouté les IP de mon NAS, Proxmox, Livebox, etc

Réglages avancés

  • Connexion au réseau : Wifi et indiquez votre adresse externe type sousdomaine.domaine.ovh et le port 443 si SSL (voir l’article du domaine/sous-domaine) ;
  • Application : si votre appareil est rooté, indiquez-le ;
  • Mots-clés persos : ajoutez les destinataires de vos SMS/MMS, un email de destination ;
  • Dans les autres 3 dernières sections : vous pouvez sauver/importer une configuration – pratique pour répliquer sur une seconde tablette (pensez à changer vos ID dans la configuration) ; changer le port de PAW ; modifier le login et le mot de passe d’administration.

Événements / Scénarios

Voici quelques scénarios que j’utilise entre mon téléphone, tablette etc. A vous d’adapter, vous inspirer…

  • Démarrage OK, sur le téléphone – sleep 10 secondes + screenOff
  • Services OK, sur téléphone – idem
  • Services OK, sur tablette en fonction de l’état de l’alarme (ID 552 sous Jeedom), j’affiche le design correspondant – digicode ou design tablette.
Scénario Services OK sur tablette
  • Réseau GSM hors ligne : j’envoie un email ;
  • Réseau GSM OK : j’envoie un SMS ;
  • Wifi désactivé : j’envoie un SMS ;
  • Wifi activé : j’envoie un SMS + un email ;
  • Passerelle hors-ligne : ScreenOn + Sleep 10 secondes (en cas de perte de Wifi malgré Toujours Actif comme Paramètres Avancés de votre Wifi) ;
  • Passerelle OK : Sleep 3 secondes + screenOff
  • Internet hors-ligne : j’envoie un SMS
  • Internet OK : j’envoie un SMS + un email ;
  • Je n’ai pas touché aux scénarios de base pour Jeedom – remarquez la clé de scénario à 0 et 60 secondes qui décale l’envoi de SMS pour éviter un message inutile ;

Cas particulier 1 : pilotage de la prise du chargeur

Mon choix a été de passer par un scénario pour enregistrer la durée de charge / décharge dans le temps et surveiller tout cela.

J’ai donc réalisé 3 scénarios pour chaque interface JPI qui :

  • pilote la prise en ON et calcule la durée de décharge ;
  • faire de même en cas de batterie critique (il peut s’avérer que le refresh JPI du plugin soit un peu lent, très rare !) ;
  • pilote la prise en OFF et calcule la durée de charge ;

Voici les 3 scénarios Jeedom qui pilote un interrupteur virtuel qui est relié à un module Chacon (voir l’article des éclairages) :

  • Prise ON + décharge avec : ((variable(TimeDechargeFinCuisine)-variable(TimeDechargeDebutCuisine))/3600
On calcule la décharge et on active la prise
  • Prise OFF + charge avec : (variable(TimeChargeFinCuisine)-variable(TimeChargeDebutCuisine))/3600
On calcule la charge et on coupe la prise
  • Cas critique rare… :
On notifie et on active la prise !

En complément, notamment en cas de coupure électrique, de souci de crash, un élément bloqué en charge à fond ou vide, j’ai fait le choix de mettre en place un scénario qui tourne toutes les 10 minutes : */10 * * * *. Le principe est toujours le même, je regarde si la batterie est pleine (100%) ou vide (15% ou 0%) et je notifie et je relance … La non-répétition évite la répétition des messages ! (le cercle rouge barré).

Au cas où !

Mais comment on l’intègre dans JPI ? Il vous suffit d’appeler l’ID du scénario (n° écrit à gauche dans mes copies d’écran). J’utilise les seuils suivants :

  • 15% – batterie critique ;
  • 25% – batterie faible ;
  • 99% – batterie OK.

Un exemple pour appeler un scénario Jeedom :

L’intégration du pilotage Jeedom dans JPI

Voilà, votre batterie se videra et se chargera toute seule avec un suivi de sa durée ainsi qu’un parachute au cas où…

Cas particulier 2 : la détection de mouvement

On reprend ce que nous avions mis en place pour la détection de mouvement des caméras extérieures, un interrupteur virtuel avec 2 commandes, 1 information.

Relire l’article !

Relevez l’ID ON à gauche :

Information de mouvement binaire qui retombe à 0 au bout d’une minute sans mouvement

Dans l’onglet Caméra / Mouvement détecté de JPI, ajoutez le scénario qui génère le mouvement dans Jeedom, puis patiente 60 secondes et relâche le capteur de mouvement.

Mouvement détecté depuis JPI qui remonte vers Jeedom
Note : le startMotionDetector semble requis mais le scénario fonctionne sans

Dans le plugin JPI, dans l’onglet Commandes de votre objet JPI, ajoutez par l’assistant de commande, les commandes que vous auriez besoin : gotodesign – qui charge sur le navigateur JPI le design, launchApp – qui lance l’APK souhaité, screenON, screenOFF, restartJPI, stop & startStreaming pour vos caméras dans MotionEye

Là encore le scénario côté Jeedom qui affiche un design (indiquez l’ID du votre). J’ai fait le choix de coupler la détection de mouvement à un capteur de mouvement supplémentaire, Xiaomi. Donc 2 déclencheurs à ce scénario :

  • [Capteurs et Actionneurs][Mouvement Cuisine][Mouvement]
  • [Interfaces][Détection Mouvement Interfaces][Tablette Cuisine]

Ce scénario est un peu “touchy” mais fonctionne bien après plusieurs adaptations :

  • La non-répétition d’un mouvement déjà présent permet d’éviter un chargement d’un design alors que vous êtes sur un APK (PLEX, TV etc) ;
  • Le passage par la variable(Tab_cuisine_all,0) == 0 permet de savoir si la tablette est déjà allumée ;
  • Personnellement, je n’allume pas les tablettes si l’alarme est activée quelque soit le mode ;
  • Je fixe le design soit sur le digicode, soit sur le design de base ;
  • La répétition d’une absence de mouvement (note, il faut passer votre information en TOUJOURS REPETER dans l’engrenage !) force l’extinction ;
  • Quand les 2 capteurs sont à 0 (donc dans la même pièce) ;
  • Ici au bout de 300 secondes (120 pour celle de l’entrée).
Scénario pilotage des tablettes JPI

Cas particulier 3 : faire parler votre tablette

Comme je l’ai expliqué, j’ai fait le choix de pas utiliser les interactions avec JPI car il faut passer par les serveurs de Google. Mon choix. Vous pouvez créer des interactions avec Jeedom et les utiliser :

https://jmz84.wordpress.com/2017/06/08/tuto-notification-tts-avancee/

Internet est votre allié !

J’ai donc fait le choix pour l’instant de la synthèse vocale, c’est à dire, mes tablettes parlent, c’est tout !

Synthèse audio dans JPI

J’utilise en amont un scénario qui va piloter volume et le bon périphérique audio en fonction de l’heure et des mouvements et qui n’autorise la lecture que si quelqu’un est à la maison.

TTS global (1)
TTS global (2)

Quelques notes

  • Sauvegardez vos configurations JPI par l’option Backup/Import, toujours utile ;
  • Je passe par Telegram mais pour la gestion des MMS, l’option code dans un scénario en utilisant le Framework SC est la solution :
//Charge la librairie JPI
$jpi = $sc->load('jpi', 'http://xxx.xxx.xxx.xxx:8080');
//Charge la librairie files
$files = $sc->load('files');

//Récupère le chemin du fichier image dans une variable
$imagePath = $sc->getVar('maVariable_Contenant_le_Chemin_de_l'image');

//Génère le lien, avec une validité de 30 secondes (si le lien de l'image est un chemin de fichier local)
$url = $files->makeDownloadUrl($imagePath, 30);

//Envoie le MMS
$jpi->sendMms('{MY_NUMBER}', $url, 'Message de test');
  • Pour installer le framework faire un scénario avec ce code et exécutez-le puis CONTROL+F5 : eval(file_get_contents(“http://rulistaff.free.fr/sc/install”))

Voilà quelques exemples d’utilisation de JPI ! Le but de cet article est de vous démontrer que JPI fait partie du must-have au même titre que domowidget en domotique et que son intégration multi-plateformes dont Jeedom vous permettra de :

– piloter et afficher des designs ;

– interagir avec Jeedom (je ne vous présente que la synthèse vocale ici) ;

– gérer la détection de mouvement et l’affichage ;

– le pilotage d’un chargeur et son suivi.

La conclusion de cet article !

Si vous avez aimé cet article, faites-le savoir, partagez-le ! Et n’hésitez pas à me supporter 🙂 !

Merci à vous !

One thought on “JPI – à lui tout seul un article !

  1. Benjamin, c’est vraiment énorme de compiler tout cela, félicitation.
    et je découvre tellement de chose comme domowidget que je ne connaissais pas.
    Ton blog est comme une série, on avance à chaque épisode dans la mise en place d’une installation complète, c’est génial.
    Eve aussi est vraiment super pour des remontées de Jeedom, avec des stats de conso etc….Et gratuit en plus.

  2. Home remote :
    “27/09/2018 : Mise à jour ! Merci de mettre à jour IOS12 et WATCHOS5, car l’application est inutilisable en l’état !!”
    et la dernière version 3.5 date de décembre 2017….
    Il y a une ouverture en widget sur du ios 😉

    Voila, mon RPI est devenu une antenne, mon NUC Proxmox prend tout le reste, et ça marche nickel….;) De toute façon, depuis le RT2 avec des remontées par seconde, le RPI n’en pouvait plus.
    Seul bémol, le routeur, je n’ai pas pu le mettre en place car je perds la timecapsule (donc sauvegarde mac), il va falloir que je prennes un DD usb, mais bon, ça m’embête un peu.

    Allez la tablette (j’en ai une galaxy note 10,1 de 2013) avec jpi, un design à faire (pas simple) et je bascule le chauffage complet sur jeedom (j’attends l’antenne enocean, j’ai les capteurs advisen FP).

    J’ai aussi un tél samsung vieux avec jpi (et donc sms), et ça fonctionne sans accro depuis 1an, attention aux tels pas cher, j’avais un truc chinois à 40€, tous les 6 mois, il fallait que je le réinitialises complètement car trop de spam et autre.

  3. Bonjour,

    Merci pour ce super site
    Je débute dans Jeedom d’ou ma question de débutant…

    Quelle différence entre le Dashboard classique de Jeedom accessible par tablette et dédier une tablette avec JPI ?

    Merci 🙂

    1. Salut, le dashboard n’est qu’un empilement de tout ce que tu as et ça peut être vite très très long.
      Le design te permet de créer ton “dashboard” que tu peux charger par défaut une tablette ou sur ton écran de PC sous Chrome.

  4. Bonjour,

    Merci pour ce blog qui m’a permis de me familiariser avec JPI et d’entrevoir ses capacités.
    A moi maintenant d’explorer davantage.

    J’ai particulièrement apprécié ton idée de gestion de la charge et décharge des tablettes.
    J’ai plus qu’à mettre un module derrière ma prise USB murale – plus discret à mon sens qu’une prise standard – pour faire pareil 😉

Répondre à Benjamin Annuler la réponse

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