[JPI-APK android] Tel Android dedié domotique

Plusieurs possibilités pour avoir des commandes sur la même ligne :

  • Soit avec des widgets persos (en version code) pour chaque type de commande ou tu peux faire (entre autres) des div flottants sur certaines commandes (comme mon exemple ci-dessus)

  • Soit avec une seule commande info en fin de virtuel avec un widget perso (en version code) qui n’affiche rien et qui sert juste à exécuter du JS pour modifier la disposition de toutes les commandes du widget.

J’ai par exemple (sur le même widget ci-dessus) une commande qui me permet de changer le z-index du widget dans les designs afin de le rendre visible ou non, avec un timer pour le recacher automatiquement en cas d’inactivité sur la tablette.

Voici le code :

<div style="display: none;" class="cmd cmd-widget #history#" data-type="info" data-subtype="binary" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" data-eqLogic_id="#eqLogic_id#">
  <script>
    (function() {
      var widgetBase = $('div[data-cmd_id=#id#]').closest('div.eqLogic-widget[data-plan_id]')[0],
        timeout = 10000,
        timer = null,
        show = false;
      if (widgetBase && ('#zindex#').charAt(0) != "#") {
        if (('#timeout#').charAt(0) != "#") {
          timeout = parseInt('#timeout#', 10) * 1000;
        }
        function resetZindex() {
          widgetBase.style.setProperty('z-index',  '-1', 'important');
        }
        function startTimer() {
          if (timeout > 0) {
            timer = setTimeout(resetZindex, timeout);
          }
        }
        function resetTimer() {
          if (show) {
            clearTimeout(timer);
            startTimer();
          }
        }
        $(document).on(('ontouchstart' in document.documentElement) ? 'touchstart' : 'mousedown', resetTimer);
        $('input', widgetBase).on('keydown focus', resetTimer);
        jeedom.cmd.update['#id#'] = function(_options) {
          clearTimeout(timer);
          show = _options.display_value;
          widgetBase.style.removeProperty('z-index');
          if (show) {
            widgetBase.style.setProperty('z-index', '#zindex#', 'important');
            startTimer();
          }
          else {
            resetZindex();
          }
        };
        jeedom.cmd.update['#id#']({ display_value: show });
      }
    })();
  </script>
</div>

Le widget prend en paramètre #z-index# (entre 999 et 1003 => Niveau 0 à Niveau 4) et #timeout# (temps de masquage automatique)
Il n’est actif que sur les designs.

1 « J'aime »

Ok merci.
Je patiente alors :wink:
Encore merci pour l’app et le framework !

Interessant. Par contre je ne comprends pas où tu mets ce code ? Dans un virtuel, une info dummy affichée mais vide ?

Merci Djul pour la qualité de tes réponses.

Dans cette exemple c’est sur une info binaire.
Du coup la commande associée peut afficher ou masquer le widget dans les designs.
Le code c’est un widget, a créé dans la partie widget et a associer sur la commande info.

L’avantage avec cette manière de procéder c’est que si j’ai 50 tablettes affichants des designs même différents avec ce virtuel, elles prendront en compte l’état de la commande, donc de son affichage, qui sera gérer par une commande Jeedom et non par du JS dans le design.
Cela permet des événements en temps réel dans le design tout comme l’état d’une lumière.

1 « J'aime »

Voici une vidéo d’exemple fait à l’arrache :

Sans plugin spécifique, sans JS dans le design (à l’exception de choses liées à la sécurité de Jeedom), juste avec des virtuels et des widgets

Tiens d’où tu sors ton digicode ? :joy:
J’utilisais le tien en v3 mais non fonctionnel en v4. Du coup j’ai migré sur le plugin développé…

Bah c’est toujours le mien que j’ai juste un chouilla modifié depuis…
Entre V3 et V4 il y a pas des masses de changement concernant les widgets.

Voici le code du widget :

<div class="cmd cmd-widget reportModeHidden" data-type="action" data-subtype="message" data-template="default" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" data-eqLogic_id="#eqLogic_id#">
  <script>
    $.include([ 'data/customTemplates/dashboard/cmd.action.message.digicode/digicode.css',
                'data/customTemplates/dashboard/cmd.action.message.digicode/digicode.js' ],
      function() {
        $('div.cmd[data-cmd_id="#id#"]').digicode(function(fct, code) {
          jeedom.cmd.execute({
            id: '#id#',
            value: { title : fct, message: code }
          });
        }, 4);
      }
    );
  </script>
</div>

Bonjour,
Je ne peux plus passer d’appels depuis JPI avec la fonction makeCall.
URL : http://#IP_JPI#:8080/?action=makeCall&number=%7BMY_NUMBER%7D
Avez-vous le même problème?
Dans les logs j’ai :

 - 26/01/21 22:05:06 - HTTP_EVENT déclenché - http action: makeCall - CLIENT: xxx.xxx.xxx.xxx
 - 26/01/21 22:05:06 - http_event - scénario: __DEFAULT__
 - 26/01/21 22:05:06 - http_event - action: makeCall => 1 [OK]
 - 26/01/21 22:05:06 - http_event - action: httpReturn => 1 [OK]
 - 26/01/21 22:05:06 - HTTP_EVENT terminé

Rien ne se passe, pas d’appel, pas de message d’erreur …
Les SMS ou MMS fonctionnent parfaitement.
J’ai essayé directement depuis PAW mais c’est pareil.
J’ai installé une autre application de téléphonie (Orange) mais cela ne fonctionne pas mieux.

Je bloque un peu, est-ce que quelqu’un a une idée?
Merci d’avance.

JPI : v0.9929
Device : xiaomi Mi A2 jasmine
Android : Android 10
PAW : 0.97.45-android (beta)
Jeedom : 4.1.18

makeCall utilise l’application d’appel de l’appareil pour lancer l’appel, avec la méthode standard.
Si rien ne se passe c’est que l’appareil ignore la demande.

« plus » depuis quoi ?
Il y a surement un truc du côté de l’appareil, il n’y a eu aucune modif du côté de JPI sur l’action makeCall depuis le début…


En fait je viens de vérifier c’est même pas JPI qui lance l’appel mais une fonction de Paw, un des rares trucs de Paw que JPI utilise encore… Donc c’est logique que ça ne fonctionne pas également sous paw.
J’ai jamais touché ça, ça date de l’origine et ça a toujours marché donc j’ai jamais touché.
Faudrait voir si ça vient de ta ROM ou d’Android 10 ou peut être d’un permission manquante de paw… De mon côté ça fonctionne avec du LineageOs

Je viens d’installer JPI sur ce téléphone, l’ancien est mort donc je n’ai pas pu vérifier.
J’ai autorisé le téléphone pour PAW et JPI.
Merci pour l’info, je vais continuer mes tests.

Bonjour à tous,

un peu hs, mais je suis intéressé par vos digicodes :grin:

@benj29 tu pourrais me dire de quel plugin « développé » tu parles stp ?

@dJuL ton plugin digicode est disponible quelque part ?

Merci d’avance pour vos réponses :wink:

Il y a un plugin digicode sur le market.

Merci pour la réponse.
Pourtant cela ne fonctionne que quand cette partie visible est au 1er plan. Rien à voir avec les sécurités des dernières versions Android, empêchant une appli de lancer une autre appli ?
Je vais continuer à creuser.

Bonjour,
Personne n’a déjà eu ce problème?
Merci.

Essaye avec le mode ‹ sip › comme type d’appel car dans ce cas c’est JPI qui lance l’appel (et non Paw)
Si tu n’as pas de logiciel SIP installé sur l’appareil cela lancera un appel normal.

image

A retester avec la prochaine version

edit: en attendant il suffit de faire un launchApp de Paw pour le mettre au 1er plan juste avant le launchApp de l’appli et ça devrait marcher.


Update du code v0.993 en ligne ! :slight_smile:


­
Change log
­

****************** ACTIONS: ******************

— Modifications d’ actions:

  • Application (APK) / ConfigureLayout => Ajout du paramètre webNoBackButton qui permet de désactiver le bouton précédent du système Android dans le navigateur web JPI (utile surtout pour un full kiosque forcé)

  • Système / LaunchApp => Modification de la fonction (en espérant qu’elle fonctionnera désormais chez tout le monde)

  • Informations / getLastUrl => Pouvait retourner une url tronquée (sans les paramètres de type get, excepté le premier) => corrigé

­

****************** INTERFACE WEB - PAGES: ******************

  • page CONFIGURATION / Réglages de base :
    – Nouvelle section Surveillance du niveau de la batterie => Permet de désactiver la surveillance de la batterie et tous les scénarios associés (utile par exemple en cas de batterie retirée et remplacée par une alimentation sur onduleur
    ­

****************** INTERFACE WEB - FENÊTRES: ******************

  • Fenêtre DIVERS / SMS / MMS:
    – Lors d’une conversation MMS avec plusieurs participants, si certains n’étaient pas dans les contacts de l’appareil, leur identification indiquait null à la place du numéro => corrigé
    ­

****************** INTERFACE WEB - GÉNÉRAL: ******************

  • Le masquage automatique de certains événements / mots clefs / actions en fonction de la configuration pouvait ne pas fonctionner correctement (un peu partout dans l’interface) => corrigé
  • Maj des fichiers JS
  • Maj des fichiers CSS
    ­

****************** MOTEUR (CORE DE JPI): ******************

  • Refonte du comportement du réglage général « Garder l’application au premier plan »
  • Corrections dans le moteur de SMS et MMS
  • Maj de la config d’usine et de certaines valeurs par défaut.
  • Maj.du fichier de configuration
  • Diverses corrections et optimisations
  • Maj. des fichiers de langues
    ­

ps: Si vous avez défini un user/password (autre que ceux par défaut), vous devez les redéfinir à nouveau dans la page CONFIGURATION / Connexion pour qu’ils soient pris en compte pour l’authentification du streaming, des actions rapides et du lien du gestionnaire de fichiers.


NOTE: Vous devez d’abord mettre à jour l’APK de JPI en v0.993 pour pouvoir avoir accès à cette mise à jour du code.


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


Update de l’APK v0.993 en ligne ! :slight_smile:

  • Refonte totale du comportement du bouton système d’Android « retour » Il permet de revenir des logs, d’une fenêtre web (si configureLayout lui permet) ou des préférences vers l’écran d’accueil. Il n’a aucune action si on est déjà sur l’écran d’accueil (il ne quitte plus l’activité de JPI)
  • Ajout de l’élément RELOAD CONFIG dans le menu rapide de l’écran d’accueil. (identique à l’action reloadConfig, permet par exemple de redéclencher le scénario Service Ok sans avoir à tout redémarrer)
  • Screen burn Fixer (action ScreenburnFix) => Si on touche l’écran, le nettoyage est automatiquement terminé. Si le réglage général « Garder l’application au premier plan » est actif, le nettoyage n’est désormais plus interrompu au bout de quelques instants.
  • Lors de la reconnaissance vocale continue, l’apk de JPI revenait systématiquement au 1er plan => corrigé, elle reste désormais en arrière plan si tel est le cas
  • Correction de la nouvelle action getLastUrl
  • Correction d’un crash sur certains appareils lorsque l’application quitte
  • Diverses corrections et optimisations
  • Corrections de certains crashs
    ­

Patch de l’APK v0.9931 en ligne ! :slight_smile:

  • Si l’activité de JPI est tuée ou détruite (mais que le service JPI est toujours vivant), lors du relancement de l’activité de JPI, elle est restaurée dans l’état où elle était avant d’être terminée (page web, afficher un log…).
    Cela permet de renforcer la sécurité si on veut par exemple uniquement afficher un design et rien d’autre via JPI (il sera ainsi impossible d’afficher la page d’accueil de JPI même en fermant toutes les fenêtres en cours dans Android, seule manip possible, et en étant très rapide, si le réglage de maintient de l’appli au 1er plan est activé) :
    image

  • L’autorisation de localisation a été ajoutée afin de corriger le crash sur certains appareils qui curieusement nécessitent cette autorisation pour vérifier la qualité du signal GSM.
    Ex: image
    image
    Ne vous inquiétez pas, JPI n’utilise pas la localisation, que vous pouvez d’ailleurs ne pas activer sur votre appareil.

  • Correction d’un crash sur certains appareils lors du réglage de la luminosité de l’appareil (via l’action brightness)

  • Diverses corrections et optimisations

  • Corrections de certains autres crashs
    ­


Patch de l’APK v0.9932 en ligne ! :slight_smile:

  • Ajout de la possibilité d’ignorer la permission d’accès aux notifications si pas dispo sur l’appareil (concerne certains appareils sous Android Go).

  • Ajout des permissions ignorées dans le menu des préférences de JPI :
    image

  • Diverses corrections et optimisations

  • Corrections de certains crashs
    ­


Merci pour vos rapports de crashs.
Par contre svp évitez de les envoyer si vous n’utilisez pas la dernière version de JPI


Change log versions précédentes:

v0.9929 : jpi-apk-android-tel-dedie-domotique/10014/1286
v0.9928 : jpi-apk-android-tel-dedie-domotique/10014/1181
v0.9926 à v0.9927 : jpi-apk-android-tel-dedie-domotique/10014/1083
v0.9922 à v0.9925 : jpi-apk-android-tel-dedie-domotique/10014/896
v0.992 à v0.9921 : jpi-apk-android-tel-dedie-domotique/10014/792
v0.991 à v0.9913 : jpi-apk-android-tel-dedie-domotique/10014/614
v0.99 à v0.9907 : jpi-apk-android-tel-dedie-domotique/10014/465
v0.989 à v0.9892: jpi-apk-android-tel-dedie-domotique/10014/322
v0.987 à v0.988 : jpi-apk-android-tel-dedie-domotique/10014/247
v0.986 : jpi-apk-android-tel-dedie-domotique/10014/239
v0.985 : jpi-apk-android-tel-dedie-domotique/10014/201
v0.983 : jpi-apk-android-tel-dedie-domotique/10014/161
v0.982 : jpi-apk-android-tel-dedie-domotique/10014/144
v0.98 : jpi-apk-android-tel-dedie-domotique/10014/102
v0.974 à v0.977: jpi-apk-android-tel-dedie-domotique/10014/35
v0.973: jpi-apk-android-tel-dedie-domotique/10014/22


Screenshots :

Possibilité de désactiver la surveillance de la batterie :
image

Nouveau paramètre webNoBackButton :
image

Nouvelle entrée dans le menu (RELOAD CONFIG) :
image


NOTE : Cette version est en beta, merci de signaler les éventuels bugs rencontrés (testé sous Android v5 à v9 et Android GO).


Page permettant de télécharger toutes les versions de l’apk (avec changeLog) :

Get JPI


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


1 « J'aime »

Un petit bug cosmétique que j’ai depuis un moment (aucune idée de la version de JPI).

Capture d’écran du 2021-01-29 19-19-18

Quelle version de JPI et quel navigateur ?

Je n’ai pas ce soucis sous chrome :

image

Capture d’écran du 2021-01-29 19-27-17


Capture d’écran du 2021-01-29 19-30-12

Voila.