[JPI-APK android] Tel Android dedié domotique

Hello
Nouvel utilisateur, je découvre en tâtonnant JPI. Lorsque que je me connecte, j’ai le tooltips disant qu’une nouvelle version est disponible.
Comment mettre à jour ? En redémarrant, ou on peut depuis l’application ?

Depuis l’appareil uniquement

Tu redémarres l’application sur ton équipement. Il te signale à la fin de l’initialisation qu’il y a une mise à jour et te demande si tu veux l’installer.
2 prompts ou tu réponds oui et c’est gagné! :wink:

@dJuL depuis la dernière mise à jour, je vois de nouveau des erreur sendGSMMessage que j’avais précédemment éradiqué car pas de carte SIM sur mes équipements.
J’ai retrouvé la trace de commande d’envoi ‹ sendSMS › dans les nouveaux évènements Connexion au réseau perdu, mais j’ai l’impression qu’il y en a encore à d’autres endroits…
Saurais-tu nous éclairer?
Merci d’avance

Je pense que j’ai trouvé, c’était dans BrokerMQTT hors ligne clef 60 s


Update de JPI v0.99551 en ligne ! :slight_smile:

Ce patch est devenu tellement important au fil du temps que j’ai préféré le définir comme une version à part entière de JPI.
Au menu, ajout des blocs code dans les scénarios, refonte de la gestion de l’écran (screenOn), ajout et modification d’actions, améliorations, corrections de bugs et optimisations


****************** Change log ******************

Ajout du bloc code dans les scenarios :

image

image

image

Identique à l’action JPI javaCode, La syntaxe du bloc code est le Beanshell, langage dérivé du java, pouvant être utilisé de manière non strict (pas de déclaration des types) ou strict, ou les 2 mélangés, au choix…

  • Nouvelle fenêtre pour éditer les blocs code :

image

  • Possibilité d’insérer des mots clés ou des actions.
    Le code pour exécuter les actions est automatiquement généré et inséré dans l’éditeur : :nerd_face:

image

Le code généré contient en commentaires les valeurs possibles, le type de paramètre, les informations sur l’action et les paramètres… Afin de facilité l’utilisation.

  • Fonctions génériques utilisables dans les blocs codes :
//Retourne le context de l'application
android.content.Context getApplicationContext()
//Retourne le context de base
android.content.Context getBaseContext()
//Identique à l'action JPI jsonAction (exécute une action et retoune le résultat)
java.lang.String jsonAction(String jsonAction)
//Retourne le statut d'une action en prenant en paramètre le résultat d'une action
int status(String actionResult)
//Identique à l'action JPI escapeJson
java.lang.String escapeJson(String toJsonParam)

Et la « pseudo class » Action :

java.lang.Object Action(String action) {

  void setParam(String param, Object value) // Définit un paramètre de l'action

  boolean execute() //Exécute l'action et retourne true si aucune erreur

  String RETURN; //Le retour de l'action (ex: OK)
  String RESULT; //le résultat (ex: tts: OK)
  int STATUS; //Le statut (chiffre entier) 
}
  • imports déjà effectué :
import android.content.Context;
import java.lang.reflect.Method;
import org.json.*;
  • Les blocs codes peuvent être enchainés, entrecoupés de blocs traditionnels, le contenu et le contexte des blocs code (déclaration de fonctions, variables…) est toujours retrouvé dans les blocs codes suivant.

Exemple simple :

image

La variable testString est toujours définie dans le 2ème bloc code du scénario.
Si on teste le scénario pour s’en assurer :

image


Pour les utilisateurs avancés, il est désormais possible de tout faire avec les blocs code :sunglasses:


Refonte de la gestion de l’écran :

Les appareils ne réagissent pas tous pareil avec l’action screenOn.
Beaucoup de personne, dont moi, l’utilisent lors d’une détection de mouvement pour allumer l’écran.
JPI gère maintenant la durée d’allumage de l’écran à la place du système.

Les avantages sont nombreux :
La durée d’allumage pouvait ne pas correspondre à la valeur désirée sur certains appareils => corrigé
L’action screenOn remet à zéro le timer à chaque exécution.
Il n’est donc plus nécessaire de bidouiller avec les actions screenSleep.

Ex: mon réglage est de 30s d’allumage d’écran.
J’allume l’écran sur détection
Tant que je lance des Action screenOn sur détection, le timer repasse et reste à 30s
L’écran ne s’étendra donc qu’au bout de 30s sans aucune action screenOn lancée entre temps. :slight_smile:

L’action screenOff se comporte mieux également du fait de ces modifications. Si le temps d’allumage est dépassé, et que JPI maintient l’écran allumé avec des nouvelles exécutions de l’action ScreenOn, alors l’écran s’éteint instantanément.


  • Nouvelle action Système / Informations / getConnType :

image


  • Optimisation de la détection du réseau perdu, la fonction est lancée également lors d’appareil hors ligne afin d’éviter d’afficher des hors ligne à tord sur l’écran. Il pouvait arrivé que la détection ne soit pas instantanée, ce qui corrige ce soucis.

Amélioration également des logs de l’application lors de la détection de réseau perdu, ou de changement d’adresse IP de l’appareil.


  • Optimisation des fonctions de login dans l’interface Web

  • Lors du démarrage de JPI, l’icone du type de connexion s’affiche désormais en chargement dans l’interface web tant que JPI na pas déterminé le type de connexion. (Et non plus l’icone wifi comme avant)

image

  • Correction d’un bug avec le ‹ menu magique › du mot clé de fonction {DATE : xxx }

Les premiers choix dans le menu retournaient des valeurs sans queue ni tête => corrigé

  • Refonte des fonctions de sauvegarde ou de rechargement de la config dans l’interface web afin d’éviter des exécutions concurrentielles qui pouvaient provoquer un crash de JPI.
    Les actions reloadConfig et checkMaj sont également concernées et retourne une erreur et un log d’erreur si JPI est dans un état qui empêche d’exécuter l’action.

  • Le SSSID du réseau wifi pouvait ne pas s’afficher dans la fenêtre du moniteur de ressources de l’interface web si il contenait des caractères spéciaux => Corrigé


  • Diverses petites corrections et optimisations

  • Typo / maj des fichiers de langue

  • Maj des fichiers CSS et JS


Patch de JPI v0.99552 en ligne ! :slight_smile:

  • Correction du streaming et de la visionneuse de caméras, optimisation de l’utilisation du proxy qui évite les erreurs CORS dans le navigateur.

  • Le streaming vidéo/audio et parfois la visionneuse de caméras ne fonctionnaient pas dans l’interface web en local (sur l’appareil) => Corrigé

  • Le gestionnaire de fichiers ne fonctionnait pas dans l’interface web en local (sur l’appareil) => Corrigé

  • Diverses petites corrections et optimisations

  • Maj des fichiers JS


Patch de JPI v0.99553 en ligne ! :slight_smile:

  • Interface web / Configuration de la visionneuse de caméras / édition d’une caméra : La fenêtre d’option du lecteur de streaming JPI dans une caméra de type JPI retournait une erreur si la caméra JPI nécessite une authentification => Corrigé

image

image

image

  • Lorsque l’apk n’est plus au premier plan et que le statut de la caméra change (streaming, détection…) l’icone de statut de la caméra (page d’accueil de JPI) n’était pas mis à jour lorsque l’apk revenait au 1er plan => Corrigé

image

  • Mis à jour et changement du serveur qui recueille les rapports des crashs, afin de ne plus dépendre d’un prestataire externe. (le recueil des rapports était dead entre début septembre et le 24 octobre)

  • Diverses petites corrections et optimisations


Changelog précédent:
JPI changelog versions 0.99550


NOTE : Cette version est en beta, merci de signaler les éventuels bugs rencontrés (testé sur 6 appareils, sous Android v5, v7, v9 et v13).


Un bouton donation se trouve dans la fenêtre DIVERS / A propos de l’interface web si vous souhaitez soutenir le projet. :green_heart:


Lien manuel de téléchargement :
Get JPI


Je teste cette version depuis plusieurs jours sur plusieurs appareils et elle me semble très stable. :slight_smile:

5 « J'aime »

Merci pour vos réponses :+1:

Petite update en ligne

2 « J'aime »

Petit (et probablement dernier, sauf remonté de bug) patch de cette version en ligne.

1 « J'aime »

je viens de faire la mise à jour sous android 7…
j’ai une erreur sur la « verif. de version ».

Moi aussi.

C’était juste passager, c’est corrigé. :wink:

1 « J'aime »

Bonjour

Je viens d’effectuer la maj en v0.99553 et pas de souci

Oui c’était juste une histoire de propagation de dns et de certificat SSL. Ça peut reagir différemment selon les FAI.Tout est propagé depuis.

2 « J'aime »

parfait! en effet c’est corrigé. merci!

PI @dJuL , les dernières versions ont effectivement résolu les problèmes de plantage suite à déconnexion de certains de mes équipements, merci!

1 « J'aime »

Bonjour,
Tu as trouvé la solution ?
par avance merci

Bonjour, j’ai également le même soucis quand je démarre l’appli hors connexion, le loader freeze au moment de la vérification de la version et ne va pas plus loin. J’ai pourtant bien l’option « vérifier les mises à jour » décochée dans l’interface.

Bonjour dJuL,

Juste pour savoir si tu penses le faire ou pas.
Merci.

Les mots clefs persos et locaux sont des constantes, stockés en dur dans la config.
Il n’est pas possible de les modifier à la volée, car cela impliquerai de sauver/recharger la config à chaque fois.
Mais quel est l’intérêt ?
Il y a les variables pour faire ça, utilisables également partout sous la forme de mot clef, et stockable dans la mémoire interne de l’appareil si elles commencent par $