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
Bonjour,
Est-ce qu’il est possible de récupérer le code retour d’un setValue de eedomus afin de le relancer?
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.
ex :
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
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 :
En mode Wifi (par défaut) :
Le statut de la connexion peut être dans 2 états :
— Réseau connecté au wifi
— Réseau non connecté
En mode Auto :
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 :
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 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) :
–
L’appareil Jeedom était visible et restait en statut chargement en cours… si on avait décidé de monitorer l’esclave Jeedom uniquement => Corrigé
–
La section ESCLAVE Jeedom pouvait s’afficher 2 fois => Corrigé
–
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.
–
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) :
_
Ajout des nouveaux mots clefs {SERVEUR} et {NETWORK}
_
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) :
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.
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.
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…
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…
Ah oui elle contient même pas un virus mais DES virus !
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])
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…
Le bloc code (avec des méthodes simples intégrées pour contrôler les actions JPI ou l’appareil) est sur la route :
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
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é!
@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
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 :
→
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…
→
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.
//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)
}
import android.content.Context;
import java.lang.reflect.Method;
import org.json.*;
Exemple simple :
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 :
Pour les utilisateurs avancés, il est désormais possible de tout faire avec les blocs code
— 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.
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.
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)
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
–
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
–
–
→
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.
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.
Merci pour vos réponses
Petite update en ligne
Petit (et probablement dernier, sauf remonté de bug) patch de cette version en ligne.
je viens de faire la mise à jour sous android 7…
j’ai une erreur sur la « verif. de version ».