[JPI-APK android] Tel Android dedié domotique

bonjour @jlb, as tu réussi à envoyer tes snapshots via MMS en script?
il y a aussi la solution url avec le lien généré par JPI, ça marche mais je ne sais pas comment lui dire d’aller chercher la dernière photo prise sans avoir à la nommer dans le lien.

http://192.168.86.###:8080/?action=sendMms&number=00336########&imagePath=%7BROOT_FOLDER%7D%2Fdownloads%2FCamIP-30_2020-04-14_16-18-02.jpg&message=test+mms+script

Pourrais tu aussi me dire stp comment tu fais tes captures? J’ai l’impression que les miennes ne se font plus sans avoir une commande MMS valide. J’utilise cette fonction du plugin camera :

merci!

Edit : j’ai trouvé c’est l’URL de la cam avec une extension, dans mon cas (Wanscam) :

192.168.86.30/web/tmpfs/snap.jpg

Par contre, @dJuL si tu veux bien me consacrer un moment, quand je mets cette URL dans l’assistant de générateur de lien URL, il me renvoie une erreur :
Capture

ERREUR : Impossible de télécharger le fichier à partir de http://192.168.86.30/web/tmpfs/snap.jpg !

J’ai lu qu’il fallait déclarer ce snap en variable mais je coince… :sweat:

merci!

Bonjour @Seb54
Non pas réussi…
Maintenant je suis passé en Jeedom V4 et sur les conseils du système
j’ai désinstallé le plugin jpi
Si tu as une solution, je suis preneur
Merci.

Bonjour à tous,
Je cherche un moyen de récupérer l’activité en cours (application) de l’android pour l’utiliser dans des scénarios.
Auriez vous une idée de la méthode?
Merci à vous

1 « J'aime »

Bonjour, dsl si je fais un hors sujet je ferai un fil à part.
Je suis toujours à la recherche du moyen de mettre mon MMS en script avec mon snap.
Mais quand je télécharge mon snap :

wget 'http://192.168.86.30/web/tmpfs/snap.jpg ?usr=###&pwd=###' -o /home/seb/snap.jpg 

J’ai cette erreur en l’ouvrant :
Erreur d’interprétation du fichier d’image JPEG (Not a JPEG file: starts with 0x2d 0x2d)

Et quand je lance wget sans la commande -o, j’ai cette erreur dans le terminal :
Schema manquant

Je n’ai rien trouvé de probant sur forum ni sur google pour ces 2 erreurs.

Si qqn veut bien me filer un coup de main svp, je sens que je brûle, merci!

Normal, l’espace entre .jpg et ?usr ?
Pas de guillemets dans l’identifiant ou le mdp ?

erreur de copié collé dsl il n’y a pas d’espace dans le terminal, et pas de guillemets dans ID ni mdp. merci pour ton retour.

Edit : solution si qqn a le problème « image non valide » ou « schéma manquant », au lieu de mettre

wget 'http://192.168.86.30/web/tmpfs/snap.jpg?usr=###&pwd=###' -o /home/seb/Images/snap.jpg

j’ai mis :

wget -P $HOME/Images/Snaps 'http://[user]:[mot de passe]@192.168.86.30/web/tmpfs/snap.jpg'

Sans les crochets et à adapter, HOME en majuscule, commande -P.
Ouf, j’ai pu qu’à mettre ce snap dans le script MMS de JPI, @jlb je te tiens au courant :wink:

J’ai une solution pour envoyer mes MMS avec snap de cam !!! :sunglasses: :sunglasses:
Bon alors j’annonce tout de suite c’est pas « propre » comme un dev mais ça marche.
En résumé :
1- je déclenche et télécharge le snap
2- je lance le script MMS de JPI
3- je déplace le snap (sinon les suivants auront un nom indexé snap.jpg.1, snap.jpg.2… et ce ne sera pas le bon snap envoyé).

Concrètement, dans mon cas dans un scenario « MMS sonnette » :
1- je lance une commande « snap » via le plugin SSHcommander. Ma commande est :

wget -P $HOME/Images/Snaps 'http://[*user*]:[*password*]@192.168.86.30/web/tmpfs/snap.jpg'

Après plusieurs tests je confirme que chaque détail compte, HOME en majuscule, la commande -P, l’ordre des arguments.
Dans mon cas j’ai eu l’adresse URL des snap dur le plugin Camera (camera wanscam pour moi)
2- je lance le script je Djul, adapté à mon cas :

//charge la librairie JPI, avec IP du device sur lequel est installé JPI
$jpi = $sc->load('jpi', 'http://192.168.86.###:8080');
//charge la librairie files
$files = $sc->load('files');
//Récupère le chemin du fichier image dans une variable Jeedom
//ici : /home/seb/Images/Snaps/snap.jpg
$imagePath = $sc->getVar('Snapshot');
//génère le lien, avec une validité de 30 secondes, avec IP de Jeedom
$url = $files->makeDownloadUrl($imagePath, '192.168.86.###', 30);
//Envoie le MMS
$jpi->sendMms('{MY_NUMBER}', $url, 'Ding dong!');

3- je déplace la photo sinon les suivantes seront indexées. J’utilise une autre commande de SSHcommander :

mv $HOME/Images/Snaps/snap.jpg $HOME/Images/Snaps_Arch/snap.`date +\%Y.\%m.\%d-\%H.\%M`.jpg

Je verrai plus tard pour les mettre dans un dossier jeedom pour en avoir la sauvegarde.
J’ai mis la date en suffixe car je n’ai pas réussi à indexer avec variable jeedom :

mv $HOME/Images/Snaps/snap.jpg $HOME/Images/Snaps_Arch/snap.variable(Snap_index).jpg

Au final ça donne ça :

Avec le framework SC tu as une fonction pour récupérer le fichier le plus récent du répertoire, et ainsi ne pas avoir a te soucier du nom du fichier et de permettre également de ne pas avoir a déplacer / effacer et de garder tout tes snaps.

$sc->files->getLastFile
http://rulistaff.free.fr/sc/doc/?class-sc_files#_getLastFile

Edit - Exemple:

//Charge la librairie files
$sc->load('files');
 
//Retrouve le fichier le plus récent d'un dossier
$filePath = $sc->files->getLastFile('/mnt/QNAP-STOCKAGE/FTPD/Addr_192.168.2.243');
 
//Retrouve l'image la plus récente en scannant les sous-dossiers
$imagePath = $sc->files->getLastFile('/var/www/html/plugins/camera/data/records', 'jpg|png|gif|bmp', true);
1 « J'aime »

extra! j’avoue c’est plus propre :grin: j’essaie ça bientôt. Pas grave ça m’a permis de potasser un peu :+1:

Bonjour,
sur ma tablette Galaxy A6, la commande « LaunchApp » ne fonctionne pas, sauf si je l’exécute lorsque PAW est au 1er plan mais pas si JPI est au 1er plan. J’ai essayé avec plusieurs applications.
Je n’ai pas ce problème sur ma tablette Huawai T5. Aucune n’est root.
Un paramètre Android à modifier sur la tablette ?

Bonjour,
J’ai JPI d’installé sur un Redmi note 3, ça fonctionne à priori pas trop mal car par exemple je reçois bien mon SMS quand jeedom est coupé plus de 1min… mais je n’ai pas les informations qui sont remontées sur le dashboard Jeedom. Par exemple le niveau de batterie du téléphone n’est pas remonté.
Quelqu’un à idée?
Merci d’avance.

Hello,
Est ce qu’on peut utiliser JPI pour detecter les tags bluethooth pour permettre la gestion de présence ?
En fait palier au plugin BLEA
merci

Hello,

Je suis en train de reprendre tous mes designs en V4 et ultra-allégé.
Par contre, j’utilise un code JS (dispo sur le site) pour fusionner les tableaux de disposition des virtuels.
Le 5000 ici est un exemple, j’ai tenté plusieurs valeurs de 100ms à 5s volontairement.

// Permet de fusionner les colonnes d'un tableau pour n'avoir qu'une colonne dans un tableau à plusieurs colonnes

function addColspan(_tabObjects) {
	if (!_tabObjects) return
	var nbtd
	_tabObjects.each(function() {
		if ($(this).css("column-span") != undefined)
		{
			if ($(this).css("column-span") === 'all')
			{
				nbtd = $(this).siblings().length + 1
				$($(this).siblings()).remove()
				$(this).attr('colspan', nbtd)
			}
		}
	})
}

$(function() {
  $('body').on('jeedom_page_load', function (event) {
   setTimeout(function() {
		addColspan($("TD"))
	}, 5000)
  })
})				

Sur mon dashboard, après une mise à jour cache, je vois un délai d’affichage (notamment qui attend la mise à jour météo < 1s) puis il fusionne les cases.

Cela fait :

Puis 2 secondes après :

Par contre sur JPI (je n’ai pas moyen de rafraichir le cache, donc je « kille » l’appli, relance JPI puis clique sur Jeedom qui recharge tout, je n’arrive pas à trouver un temps pour avoir la fusion.

On dirait que le navigateur interne « bypass » le code JS.

Autre remarque, j’ai mis le même code/temps sur la personnalisation avancée côté Jeedom en mobile ou desktop (je présume que JPI est pris en mobile).

Il faut vider le cache du webview (supprimer le cache et les données).
Cela dépend de l’appareil mais en général c’est l’appli Android System WebView (il faut afficher les appli système)

Par contre non JPI n’ignore pas le JS (et encore heureux sinon il n’y aurait aucun rafraichissement des widgets par exemple)

Sinon si tu veux faire léger et simple, le mieux je pense est de faire un widget spécifique pour tes virtuels et du coup plus besoin d’affichage en tableau des commandes, et de JS dans le design avec des timeout… Mais bon, ça devrait marcher si tu vides le cache du webview.

Après le faire tel quel dans les personnalisations avancés c’est pas top car toutes les pages de Jeedom vont être impactées. sinon il faut au minimum ajouter dans le selecteur un parent propre aux designs (qui n’existe pas ailleurs) :
genre : $('div.eqLogic-widget[data-plan_id] td') à la place de $("TD")

1 « J'aime »

Effectivement le cache marche bien ;).
Après justement cette fusion est pratique pour la gestion sur dashboard.

Merci !

Non, aucun paramètre a priori
Je ne sais pas trop pourquoi ça fait ça par contre, l’action étant exécutée par un service en arrière plan qui n’est pas liée à l’activité de paw (la partie visible avec le bouton play et stop)…

D’où l’intérêt de le faire directement dans le virtuel à l’aide des widgets car on peut tout faire et cela ne s’applique qu’au virtuel en question.

Exemple d’un de mes virtuels de la configuration de l’alarme :

image

@dJuL je me permet de relancer la question peut etre stupide :wink: merci

Non non pas stupide, j’avais commencé à répondre et j’ai fait autre chose entre temps…
Et la réponse est non.
Je regarderai à l’occasion.

Mais tu appliques comment un js de fusion dans un virtuel, ça m’échappe ?