[JPI-APK android] Tel Android dedié domotique

Bonjour,
Est-ce qu’il est possible de récupérer le code retour d’un setValue de eedomus afin de le relancer?


@dJuL . Encore merci pour ton travail

Je ne comprend pas trop…
Tu veux récupérer quoi exactement ?
Savoir si il y a une erreur ?
Dans un scénario ?

Lorsque le courant est rétabli, je mets à jour un capteur eedomus. Sauf qu’il arrive qu’elle ne soit pas encore UP. J’ai donc un message d’erreur. J’aimerais donc récupérer cette erreur et relancer l’action.
J’espère avoir été clair

Il suffit de tester le statut de l’action.

image

ex :

image

edit: penser a mettre un sleep pour faire une pause avant de relancer l’action dans le bloc condition sinon le résultat sera le même

Merci, je vais faire ça


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

Au programme, ajout des événements de perte ou de rétablissement de la connexion réseau de l’appareil, refonte de la gestion du réseau, du serveur, ajout de mots clefs et corrections d’actions, grosses refontes du code, modernisation du design de l’apk, corrections de bugs.


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

Core :

  • Refonte de la gestion du réseau, de la perte de connexion, et du serveur Http

En mode Wifi (par défaut) :

image

Le statut de la connexion peut être dans 2 états :
— Réseau connecté au wifi
— Réseau non connecté

En mode Auto :

image

La connexion peut être dans 4 états :
— Réseau connecté en ethernet
— Réseau connecté via le modem usb
— Réseau connecté au wifi
— Réseau non connecté

Le serveur passe automatiquement en localhost si la connexion réseau est perdue :

image

  • Le serveur http supporte désormais le changement d’ip à la volée sans être redémarré
  • Ajout du mot clef d’état {SERVER} retournant l’état du serveur http de JPI (online ou offline)

image

  • Ajout du mot clef d’état {NETWORK} retournant l’état de la connexion de l’appareil à un réseau (online ou offline)

image

  • Refonte de la surveillance du server de JPI et des tentatives de redémarrer le serveur si il est offline

  • Les événements de type offline avec une clé de scénario représentant la durée pouvaient dans certains cas ne pas se déclencher « à l’heure » => corrigé

  • Si la connexion réseau locale est perdue, les événements CRON, GSM restent actifs, ainsi que la reconnaissance vocale (si option activée)

  • Ajout du support des nouveaux événements Connexion réseau perdue / rétablie

  • Refontes de l’initialisation, des services, du serveur http et optimisation des Threads

  • Corrections sur la reconnaissance vocale continue

  • Lors d’une sauvegarde ou d’un rechargement de configuration, le stream audio n’était pas stoppé => corrigé

  • Nombreuses corrections, réécritures et optimisations.


Actions :

  • Modification de l’action Fonctions / Programmation / getState => Ajout des nouveaux mots clé dans le menu magique du paramètre keyword :

image

  • Modification de l’action Système / Wifi / resetWifi => Le wifi n’est pas démarré dans le cas où on est en mode de connexion réseau ‹ AUTO › dans la configuration et que le wifi n’est pas actif sur l’appareil.

  • Modification de l’action Système / Outils / startFingerPrint => l’action retourne désormais le statut INTERROMPU (2) si l’utilisateur annule sur l’écran.

  • Modification de l’action Fonctions / Programmation / javaCode => Ajout de la variable intégrée _context qui contient le contexte de l’application (utilisable directement dans le paramètre code)

  • Modification des actions Application (APK) / goToStream et Application (APK) / goToCamViewer => Si aucune url n’était spécifiée, l’affichage était buguée sur l’appareil => Corrigé


Interface web :

  • Lors de la connexion dans une vielle fenêtre de connexion restée ouverte dans le navigateur (avec JPI ou le serveur relancé depuis) il y avait ensuite des bugs d’affichage et de rafraichissement dans l’interface web (à cause d’un mauvais UUID de session qui trainait) => Corrigé

  • Barre de statut : L’icone de statut de la connexion est mise à jour selon le type de connexion réseau de l’appareil (wifi, ethernet, modem usb ou ne répond plus) :

image

image

image

image

  • Page d’Accueil

L’appareil Jeedom était visible et restait en statut chargement en cours… si on avait décidé de monitorer l’esclave Jeedom uniquement => Corrigé

  • Page PARAMETRES / Réglages de base

La section ESCLAVE Jeedom pouvait s’afficher 2 fois => Corrigé

image

  • Page ÉVÉNEMENTS / SCÉNARIOS - Connexion réseau

Ajout de la nouvelle section Connexion réseau et des nouveaux événements liés au statut de la connexion réseau de l’appareil.

image

  • Page ÉVÉNEMENTS / SCÉNARIOS - Téléphonie

Il était impossible de rajouter des mots clé en tant que numéros autorisés dans les événements SMS entrants et APPELS entrants (la page restait bloqué en chargement) => Corrigé

Le mot clef {NETWORK} de l’événement gsm_online est maintenant renommé vers {GSM_NETWORK} (pour ne pas rentrer en conflit avec le nouveau mot clé {NETWORK} représentant l’état de la connexion réseau de l’appareil) :

image

_

  • Fenêtre Aide des mots clefs :

Ajout des nouveaux mots clefs {SERVEUR} et {NETWORK}

image

_

  • Fenêtre SMS / MMS de l’interface :

Amélioration de l’affichage d’une conversation MMS / MMS

_

  • Ajout des scénarios par défaut pour les 2 nouveaux événements lié à l’état de la connexion réseau

  • Typo / maj des fichiers de langue

  • Maj de la config d’usine et des fichiers internes de configuration

  • Diverses petites corrections et optimisations

  • Maj des fichiers CSS et JS


Interface APK:

  • Refonte / modernisation du design de l’apk : Ajout d’arrondis, d’animation sur les boutons, transitions lors de l’affichage des fenêtres…

  • Ajout de l’icone du statut et du type de connexion au réseau (wifi, ethernet, modem usb, connexion perdue) :

image

image

  • Changement de la couleur de la barre de l’application lors de la perte de la connexion au réseau :

image

  • Ajout des icones de statut du micro (reco vocale, stream audio, enregistrement…) et de la lecture de médias (play, tts, ringtone) :

image

  • Lors de l’arrêt de la reconnaissance vocale continue, le bouton de statut pouvait rester en erreur (entouré de rouge) au lieu de revenir à l’état initial (entouré de gris) => Corrigé

  • L’application pouvait mal se comporter, ne pas exécuter certaines action, ne pas se réinitialiser, voir même planter lorsque l’écran est éteint et verrouiller par un mot de passe / geste ou biométrie => Corrigé

  • Refonte / optimisations des activités


Changelog précédent:
JPI changelog versions 0.99536 à 0.99549


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:

J’ai fait beaucoup de changement majeurs dans le code donc il peut y avoir des réactions inattendues sur certains appareils ou dans des contextes que je n’ai pas testés.
A vous de confirmer…

7 « J'aime »

Bonjour Djul,
Petite différence lors de l’installation de la version 99550, l’apk est détecté comme un virus par l’application « sécurité » (qui utilise une base de sécurité de l’antivirus Avast) de mes smartphone Xiaomi… :sweat_smile:


J’imagine que c’est une fausse alerte…

Ah oui elle contient même pas un virus mais DES virus ! :rofl:

Il n’y a pourtant aucune différence avec les version précédentes.
Si ce n’est des différences dans le code.

Je ne sais pas pourquoi ce machin détecte des virus…

C’est uniquement avec la dernière maj ?
Et puis y’a pas plus d’infos, genre quel virus par exemple ?

edit: je viens de regarder c’est un bug d’avast, des gens s’en plaignent…

https://www.google.com/search?q=False+Positive+(Evo-gen+[Trj])

image

C’est un pb avec proguard que j’utilise lors de la compilation de JPI et Avast ne gère pas ça apparemment et détecte d’office un malware…

1 « J'aime »

Le bloc code (avec des méthodes simples intégrées pour contrôler les actions JPI ou l’appareil) est sur la route :

:scream:

2 « J'aime »

Mise à jour effectuée… Merci !

Comme j’avais prévenu mon JPI que le docteur @dJuL allait intervenir, il ne s’est pas « planté » durant 15 jours avant la maj :grinning:

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 ».