JPI – à lui tout seul un article !

Rédaction le 14/12/2018
Mise à jour 09/2020

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. En 2020, encore, j’utilise JPI partout… tellement il est fiable et que Djul fait un travail remarquable.

EDIT 09/2020 : grosse mise à jour après plus de 3 ou 4 ans d’utilisation !

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” mais bien payant).

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, box TV…

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 3 tablettes Android fixées au mur avec les fonctions suivantes :

  • le téléphone, un bon vieux Asus Zenfone (5 ans qu’il marche celui-là !) 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 ! Je les ai remplacé par des Xiaomi mipad 10 plus…
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.

EDIT 09/2020 : je suis passé depuis plus d’1 an et demi à 2 tablettes Xiaomi mipad4 plus (avec carte SIM) ainsi qu’une tablette Lenovo mtab 10 pouces. On la trouve régulièrement à 150e. Ce sont des tablettes toutes avec 4 Go de RAM et un processeur péchu pour faire tourner Netflix, Plex et JPI…

Tablette Lenovo sur support différent

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″

Support TFY mural pour tablette, noir ou blanc

Plus généralement … à fouiller ! ou à concevoir soi-même si vous êtes bon bricoleur (bois ou métal…)

  • 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 !

EDIT 09/2020 : l’excellente Lenovo Tab M10 10.3 pouces à base d’un 8 coeurs P22T, 4 Go de RAM… notez qu’il existe une version dock pratique pour la cuisine ! 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

EDIT 09/2020 : Chacon a introduit chacon mini” target=”_blank” rel=”noreferrer noopener”>n plus pratique :

CHACON 54671 Set 4 mini prises On/Off 3000W + télécommande, Blanc” target=”_blank” rel=”noreferrer noopener”>Chacon mini 4 prises + télécommandes

Vous pouvez aussi utiliser un module SONOFF et le plugin dédié si vous en êtes équipés. Ce sont des modules comparables aux modules DIO à la différence qu’il se pilote en Wifi par le plugin en mode DIY. Le prix est comparable, je recommande le mini pour l’encombrement dans les murs.

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.

EDIT 09/2020 : Djul a travaillé avec le développeur de PAW pour que PAW et JPI dialogue mieux. En effet, j’avais observé des problèmes de démarrage de PAW (qui restait en stop). Maintenant JPI le pilote tout seul, plus de problème à le configurer.

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. Vous avez aussi possibilité de faire du script par le Framwork SC de JPI…

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 ;
Configuration pour lancement de la détection dès le lancement (tablette)
  • 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.
Service OK
Passerelle Hors Ligne plus de 10 secondes
  • 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 : uniquement la clé 10 secondes est activée. Sur le JPI téléphone, j’envoie un SMS pour être sûr que tout est OK
  • 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.

Dans la configuration côté JPI voici le scénario lancé qui le relâche et passe l’information. Notez qu’il n’y a plus besoin du startmotiondetection car déjà configuré dès le départ (voir configuration plus haut ; l’APK lance la détection tout seul dès son lancement).

Mouvement détecté

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

Avec le recul, les constructeurs ont modifié Android pour gérer au mieux, selon eux, la veille de l’écran. Du coup, souvent, le fait de vouloir garder un écran allumé ou éteint marche “mal”. L’astuce réside dans le fait de ne pas utiliser le screenOn, screenOff seuls mais de piloter le temps de mise en veille. Pour avoir quelquechose de fiable, relevez dans vos paramètres Android les temps “autorisés” par votre tablette.

Temps d’extinction de l’écran autorisé

Créez ensuite côté Plugin JPI deux commandes qui modifient le sleepScreen quand vous souhaitez que l’écran s’éteigne rapidement ou reste allumé longtemps. Veillez à avoir un temps “long” plus long que le temps autorisé par le scénario de gestion côté Jeedom.

Gestion du sleepscreen

Modifiez ensuite les commandes de ScreenOn et ScreenOff en ajoutant dans les paramètres avancés, l’action correspondante précédente :

Commandes d’allumage et d’extinction

Appelez le Sleep_screenoff pour le ScreenOff qui auront pour intérêt de forcer la tablette à s’éteindre :

ScreenOff modifié

De même pour le screenOn :

ScreenOn modifié

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 (sauf celle de la cuisine ici) ;
  • 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 les tablettes avec plus de réactivité).
Scénario de gestion de l’allumage et extinction de l’écran de tablette (1)
Scénario de gestion de l’allumage et extinction de l’écran de tablette (2)

Et du coup, ce sont quoi ces scénarios de répétition ? Un exemple pour le screenOff qui se répéte toutes les 2 minutes quand activé :

Scénario screenOff répétitif (1)

Il ne fait qu’un screenOff (avec le sleeptimeOff adapté) et si le chargeur est branché, la ré-éteint immédiatement pour éviter qu’elle ne reste allumée…

Scénario screenOff répétitif (2)

Dans le cas du screenOn, il se répéte toutes les minutes en particulier pour les tablettes qui servent d’IHM pour la musique ou la vidéo/télévision et ne fait qu’un bête screenOn (mais avec le sleeptimeOn adapté) :

Scénario screenOn répétitif

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. je vous engage à lire l’article des notifications qui gère où et comment parler.

TTS global (1)
TTS global (2)

Quelques notes

Du vrac mais bien utile …

  • Sauvegardez vos configurations JPI par l’option Backup/Import, toujours utile ;
  • Pour piloter le streaming de vos caméras de tablette, pensez à configurer la tablette pour indiquer la caméra que vous souhaitez utiliser et si paramétrage adéquat de rotation est nécessaire :
Configuration des caméras en streaming

Vous récupérerez les informations du flux et l’activation du streaming dans l’onglet Outils / Streaming Vidéo :

Pilotage du streaming

Le lien du flux vidéo est utile dans MotionEye pour afficher la caméra et sa configuration en tant que “Simple MJPEG Camera”.

Créez ensuite les commandes pilotage du streaming stopStreaming et startStreaming dans JPI :

Gestion du streaming des tablettes

De cette manière, les caméras sont désactivées par défaut et ne s’activent que si intrusion il y a (article Alarme et Sécurité).

De cette manière aussi, je peux enregistrer et filmer les caméras en cas d’intrusion par le plugin Caméra de Jeedom :

Ajout d’une caméra JPI dans le plugin Caméra

J’ai ajouté la gestion du streaming depuis la caméra plus pratique :

Gestion du streaming depuis la caméra
  • Si vous utilisez votre tablette pour envoyer de la musique sur une enceinte ou un amplificateur bluetooth, il convient de faire parler JPI non pas dans votre amplificateur mais dans la tablette… pour cela utilisait la sortie adéquate (call) :
lang=fr_FR&queue=0&wait=0&askTimeout=60&reloadEngine=auto&voice=com.google.android.tts&stream=call
  • Suivant le moment de la journée, je pilote la luminosité et l’automatisme pour forcer un faire éclairage, pratique la nuit si la tablette se réveille toute seule (perte Wifi ou autre) :
Gestion de la luminosité
  • 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”))
  • Petit bonus, après un épisode de coupure de 4 jours de fibre (merci le technicien qui n’avait pas envie de bosser à 20h et m’a débranché pour son client), j’ai mis en place une gestion à distance par SMS de la maison pour l’alarme et de mon tracker par le téléphone JPI. Rien de très poussé, mais je récupère le message, d’où vient le SMS et en fonction je lance le bon scénario et pousse à Jeedom en variable le texte à traiter et déclenche des scénarios. Un exemple d’intéraction possible entre Jeedom et JPI :
Gestion d’un SMS entrant

Si le SMS vient de mon tracker de moto et si l’alarme est mise, je lance un scénario qui traite le message.

Si le SMS vient du téléphone de madame, je lance un autre scénario. De même pour moi. A défaut, je me relaye le SMS.

Le scénario pour ma gestion par SMS est alors le suivi. J’attends que le variable ne soit pas initiée à NULL (que JPI ait bien envoyé le texte). Comme j’ai pré-formaté certains commandes type, j’élimine le problème de la casse par la fonction strtolower.

Le reste n’est que du traitement de texte et du lancement de fonction adéquate. L’utilisation des SMS me permet d’avoir une garantie en cas de coupure internet !

Gestion par SMS et JPI
Emilie Absent ON : bascule Emilie en absente forcée
Emilie Absent OFF : bascule Emilie en automatique (clé, téléphone, wifi)
Benjamin Absent ON : bascule Benjamin en absent forcé
Benjamin Absent OFF : bascule Benjamin en automatique (clé, téléphone, wifi)
Alarme OFF code : désactive l'alarme même s'il n'y a personne
Alarme ON code : active l'alarme même s'il n'y a personne

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 😉

  5. [quote=dJuL post_id=629133 time=1529516987 user_id=4552]
    Je ne sais pas avec le plugin, mais si tu n’y arrives pas tu peux également le faire facilement avec un bloc code et le framework SC :

    [code]//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énere 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’);[/code]
    [/quote]

    bonjour les gens,
    excusez-moi j’essaie désespérément de mettre en place ce scénario

    [code]//Charge la librairie JPI
    $jpi = $sc->load(‘jpi’, ‘http://xxx.xxx.xx.xx:xxxx’);
    //Charge la librairie files
    $files = $sc->load(‘files’);

    //Récupère le chemin du fichier image dans une variable
    $filePath = $sc->getVar(‘config.json’);

    //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($filePath, 30);

    //Envoie le MMS
    $jpi->sendMms(‘{DAVID}’, $url, ‘Message de test’);[/code]
    je coince sur la variable surtout sur le l’adresse du fichier “config.json”.
    Il faut le mettre sous qu’elle forme ?

    [code][2019-09-28 15:56:15][SCENARIO] Lancement du scénario en mode synchrone
    [2019-09-28 15:56:15][SCENARIO] Start : Scénario lancé manuellement.
    [2019-09-28 15:56:15][SCENARIO] Exécution du sous-élément de type [action] : code
    [2019-09-28 15:56:15][SCENARIO] Exécution d’un bloc code
    [2019-09-28 15:56:15][SCENARIO] – —————————————-
    [2019-09-28 15:56:15][SCENARIO] – – Framework sc v0.98d –
    [2019-09-28 15:56:15][SCENARIO] – – Vos scenarios en PHP –
    [2019-09-28 15:56:15][SCENARIO] – – by dJuL –
    [2019-09-28 15:56:15][SCENARIO] – —————————————-
    [2019-09-28 15:56:15][SCENARIO] – INFO: DOCUMENTATION DISPONIBLE EN LOCAL EN CLIQUANT ICI
    [2019-09-28 15:56:15][SCENARIO] – – –
    [2019-09-28 15:56:15][SCENARIO] – /* – Execution du Bloc code n°1 – DEBUG NATIF ACTIF (php >= v7) */
    [2019-09-28 15:56:15][SCENARIO] – – –
    [2019-09-28 15:56:15][SCENARIO] – Tentative de chargement de la librairie: sc_jpi.class.php
    [2019-09-28 15:56:15][SCENARIO] – SUCCÈS: sc_jpi chargée
    [2019-09-28 15:56:15][SCENARIO] – INFO: Lancement de l’initialisation de la classe sc_jpi
    [2019-09-28 15:56:15][SCENARIO] – —————————————-
    [2019-09-28 15:56:15][SCENARIO] – – Librarie sc_jpi v0.97 –
    [2019-09-28 15:56:15][SCENARIO] – – fonctions dédiées à JPI –
    [2019-09-28 15:56:15][SCENARIO] – —————————————-
    [2019-09-28 15:56:15][SCENARIO] – INFO: Lancement de la fonction automatique au chargement de sc_jpi
    [2019-09-28 15:56:15][SCENARIO] – SET_URL – Url JPI: http://192.168.0.58:17580
    [2019-09-28 15:56:15][SCENARIO] – Tentative de chargement de la librairie: sc_files.class.php
    [2019-09-28 15:56:15][SCENARIO] – SUCCÈS: sc_files chargée
    [2019-09-28 15:56:15][SCENARIO] – INFO: Lancement de l’initialisation de la classe sc_files
    [2019-09-28 15:56:15][SCENARIO] – —————————————-
    [2019-09-28 15:56:15][SCENARIO] – – Librarie sc_files v0.5c –
    [2019-09-28 15:56:15][SCENARIO] – – fonctions supp. liées aux fichiers –
    [2019-09-28 15:56:15][SCENARIO] – —————————————-
    [2019-09-28 15:56:15][SCENARIO] – Récupération valeur => variable JEEDOM: [config.json] = ’emulated/0/paw/JPI/config/config.json’
    [2019-09-28 15:56:15][SCENARIO] – ERREUR: makeDownloadUrl() – Le fichier emulated/0/paw/JPI/config/config.json n’existe pas !
    [2019-09-28 15:56:15][SCENARIO] – ERREUR: JPI Action() – Le paramètre imagePath de l’action sendMms est requis !
    [2019-09-28 15:56:15][SCENARIO] – – –
    [2019-09-28 15:56:15][SCENARIO] – /* – Fin du Bloc code n°1 – */
    [2019-09-28 15:56:15][SCENARIO] – – –
    [2019-09-28 15:56:15][SCENARIO] Fin correcte du scénario[/code]
    Merci d’avance

  6. 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…

    Est-ce que tu peux nous en dire plus sur ce que tu ferais différemment ? Autre modèle de tablette ou approche différente ?

  7. [quote=dJuL post_id=629133 time=1529516987 user_id=4552]
    Je ne sais pas avec le plugin, mais si tu n’y arrives pas tu peux également le faire facilement avec un bloc code et le framework SC :

    [code]//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énere 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’);[/code]
    [/quote]

    bonjour les gens,
    excusez-moi j’essaie désespérément de mettre en place ce scénario

    [code]//Charge la librairie JPI
    $jpi = $sc->load(‘jpi’, ‘http://xxx.xxx.xx.xx:xxxx’);
    //Charge la librairie files
    $files = $sc->load(‘files’);

    //Récupère le chemin du fichier image dans une variable
    $filePath = $sc->getVar(‘config.json’);

    //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($filePath, 30);

    //Envoie le MMS
    $jpi->sendMms(‘{DAVID}’, $url, ‘Message de test’);[/code]
    je coince sur la variable surtout sur le l’adresse du fichier “config.json”.
    Il faut le mettre sous qu’elle forme ?

    [code][2019-09-28 15:56:15][SCENARIO] Lancement du scénario en mode synchrone
    [2019-09-28 15:56:15][SCENARIO] Start : Scénario lancé manuellement.
    [2019-09-28 15:56:15][SCENARIO] Exécution du sous-élément de type [action] : code
    [2019-09-28 15:56:15][SCENARIO] Exécution d’un bloc code
    [2019-09-28 15:56:15][SCENARIO] – —————————————-
    [2019-09-28 15:56:15][SCENARIO] – – Framework sc v0.98d –
    [2019-09-28 15:56:15][SCENARIO] – – Vos scenarios en PHP –
    [2019-09-28 15:56:15][SCENARIO] – – by dJuL –
    [2019-09-28 15:56:15][SCENARIO] – —————————————-
    [2019-09-28 15:56:15][SCENARIO] – INFO: DOCUMENTATION DISPONIBLE EN LOCAL EN CLIQUANT ICI
    [2019-09-28 15:56:15][SCENARIO] – – –
    [2019-09-28 15:56:15][SCENARIO] – /* – Execution du Bloc code n°1 – DEBUG NATIF ACTIF (php >= v7) */
    [2019-09-28 15:56:15][SCENARIO] – – –
    [2019-09-28 15:56:15][SCENARIO] – Tentative de chargement de la librairie: sc_jpi.class.php
    [2019-09-28 15:56:15][SCENARIO] – SUCCÈS: sc_jpi chargée
    [2019-09-28 15:56:15][SCENARIO] – INFO: Lancement de l’initialisation de la classe sc_jpi
    [2019-09-28 15:56:15][SCENARIO] – —————————————-
    [2019-09-28 15:56:15][SCENARIO] – – Librarie sc_jpi v0.97 –
    [2019-09-28 15:56:15][SCENARIO] – – fonctions dédiées à JPI –
    [2019-09-28 15:56:15][SCENARIO] – —————————————-
    [2019-09-28 15:56:15][SCENARIO] – INFO: Lancement de la fonction automatique au chargement de sc_jpi
    [2019-09-28 15:56:15][SCENARIO] – SET_URL – Url JPI: http://192.168.0.58:17580
    [2019-09-28 15:56:15][SCENARIO] – Tentative de chargement de la librairie: sc_files.class.php
    [2019-09-28 15:56:15][SCENARIO] – SUCCÈS: sc_files chargée
    [2019-09-28 15:56:15][SCENARIO] – INFO: Lancement de l’initialisation de la classe sc_files
    [2019-09-28 15:56:15][SCENARIO] – —————————————-
    [2019-09-28 15:56:15][SCENARIO] – – Librarie sc_files v0.5c –
    [2019-09-28 15:56:15][SCENARIO] – – fonctions supp. liées aux fichiers –
    [2019-09-28 15:56:15][SCENARIO] – —————————————-
    [2019-09-28 15:56:15][SCENARIO] – Récupération valeur => variable JEEDOM: [config.json] = ’emulated/0/paw/JPI/config/config.json’
    [2019-09-28 15:56:15][SCENARIO] – ERREUR: makeDownloadUrl() – Le fichier emulated/0/paw/JPI/config/config.json n’existe pas !
    [2019-09-28 15:56:15][SCENARIO] – ERREUR: JPI Action() – Le paramètre imagePath de l’action sendMms est requis !
    [2019-09-28 15:56:15][SCENARIO] – – –
    [2019-09-28 15:56:15][SCENARIO] – /* – Fin du Bloc code n°1 – */
    [2019-09-28 15:56:15][SCENARIO] – – –
    [2019-09-28 15:56:15][SCENARIO] Fin correcte du scénario[/code]
    Merci d’avance

Laisser un commentaire

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