Bascule entre l'appli local Jeedom et une appli Lametric (l'heure)

Bonjour,

J’ai mis en place ce matériel Lametric Time depuis quelques jours.
Création de l’app Jeedom dans Lametric en mode « Private ».avec un peu de difficulté car la documentation n’est pas à jour mais grâce à la recherche sur le forum on trouve déjà des personnes ayant été confronté au problème.

Cela fonctionne mais je dois obligatoirement choisir l’app Jeedom sur mon smartphone pour voir les messages apparaitre sur Lametric et pour revenir par exemple sur l(heure il faut également sélectionner cela sur le smartphone dans l’app Lametric.

Questions :

  • Est - il possible de faire basculer Lametric Time sur l’app Jeedom lorsque un message Jeedom arrive ? avec un tempo ou autre ?
  • Est - il possible à l’inverse une fois le message ou les messages Jeedom apparu, revenir vers une app ou la dernière active ?

Merci d’avance pour votre aide.

Dans l’état ce n’est pas possible. Après ce que tu peux faire, c’est d’afficher l’heure depuis Jeedom. Chez moi j’ai un scénario qui gère l’affichage de l’heure et les messages.

Merci, dommage car nous ne pouvons pas exploiter de fait pleinement cet équipement.

La gestion via le plugin me semble un peu archaïque.

Je vais jeter un œil sur la documentation/video sur les API, si je trouve mon bonheur j’automatiserai cela via MQTT et Nodered.
Dans Nodered il y a déjà une possibilité d’envoyer une notification sans App supplémentaire mais je n’ai pas creusé plus que ça (en utilisant le token de l’équipement).

Cela va me prendre un peu de temps, mais si j’ai réussi, je publierai sur la communauté.

Il est vrai que maintenant que j’utilise Nodered, j’effectue pas mal d’automatisations en dehors de Jeedom y compris pour les envois de données vers influxdb ou aller chercher des infos via API comme pour les panneaux Voltaïque et réinjecter dans jeedom si nécessaire via MQTT.
J’ai par exemple arrêté d’utiliser le plugin NUT pour la gestion de l’onduleur, tout est géré directement dans Nodered avec l’arrêt propre de Jeedom et de mon espace de virtualisation.

J’utilise donc maintenant 4 systèmes externes en complément de Jeedom : Influxdb, grafana, MQTT, Nodered et bien évidemment zigbee2MQTT qui est aussi indépendant mais intégré via le plugin zigbee2MQTT.
Je vais bientôt sortir la gestion de la lecture du Linky également.

Jeedom va devenir pour moi l’interface utilisateur avec toute sa gestion des équipements, scénarios internes, ce qui est technique sort petit à petit de Jeedom, plus facile à gérer séparément, à mettre à jour et permet des intégrations ouvertes avec d’autres systèmes.

Je vous tiens informé pour la suite, réussite ou pas :wink:

Oui, avec l’API on peut faire pas mal de choses.

Exemple avec un script sh pour changer la luminosité :

#/bin/bash
lametricIP='192.168.1.xxx'
lametricAPI='xxxxxxxxx'
percent=$(echo $1)
curl -X PUT -u "dev:$lametricAPI" -k -H "Accept: application/json" -H "Content-Type: application/json" -d "{\"brightness\": \"$percent\",\"brightness_mode\": \"manual\"}"  https://$lametricIP:4343/api/v2/device/display --insecure

Cela peut s’utiliser depuis le plugin script avec une commande type curseur et en appelant /var/www/html/plugins/script/data/script.sh #slider#. On peut aussi mettre directement la commande CURL sans passer par un fichier sh mais c’est moins lisible.

Pour récupérer l’info, c’est avec un type JSON, requête brightness et IP https://192.168.1.xxx:4343/api/v2/device/display avec dev comme utilisateur et le mot de passe (aucune idée duquel, peut-être la clé api).

On peut faire la même chose pour des notifications. Pour le choix de l’app, il faudrait voir dans la documentation de l’api si c’est prévu.

Oui je suis aussi dans la même idée. Si je peux, je passe tout en MQTT, qui me sert de passerelle entre Jeedom et les équipements. J’ai les mêmes outils que toi, bien que moins fans de nodered, je suis de la vieille école encore avec un fichier de configuration texte^^

Pour info, les matériels produits à partir de 2022 gère le MQTT (port USB-C), peut-être qu’il y a la possibilité de basculer entre les applis. Je n’ai pas joué avec, mais j’ai vu qu’il existe un wrapper Python (GitHub - breitburg/python-lametric: Unofficial LaMetric API wrapper) qui propose de jongler entre les applications, à essayer ou à intégrer dans le plugin au lieu de passer par des curl.

Ah oui, c’est pas mal ça et peut-être plus simple.

Pour les Yeelight, j’avais trouvé un script python qui faisait la passerelle avec MQTT : GitHub - seb821/yeelight2mqtt

Je suis vraiment pas bon en Python, mais en bidouillant un peu j’avais réussi à faire fonctionner et faire un docker avec. Le code est probablement pas terrible, mais ça fonctionne.

On doit pouvoir faire quelque chose de similaire là.

Bon en fait, il y a une app maintenant qui semble permettre une intégration beaucoup plus facile, notamment en allant chercher des données sur MQTT :

Pour changer d’affichage, j’ai trouvé cela dans la documentation de l’API :
https://lametric-documentation.readthedocs.io/en/latest/reference-docs/device-apps.html#activate-specific-widget

N’ayant pas l’appareil sous la main, je n’ai pas pu faire d’essais.

Merci j’avais déjà récupéré la doc.
Pas eu le temps de m’y mettre dessus.

Par contre j’ai fait le test avec le node « Lametric Notification » sous nodered.
Fonctionne parfaitement, pas besoin d’app dédiée, apres notification retour a l’affichage initiale, il faut utiliser le token de l’équipement.
Notification avec tous les paramètres, logo, texte, son, répétions son, texte …
En conclusion, remplace totalemenf déjà le plugin et sans app, comme cest du nodered un petit node lecture MQTT et hop c’est fait :wink: pour automatiser cela.

On peut donc deja via des scénarios et planification afficher ce que l’on souhaite en passant en MQTT au minimum le code icon et le texte.

Comme indiqué j’effectuerai un retour mais je souhaite aussi utiliser l’API car si l’on a une app lametric par exemple pour afficher la prod solaire via du MQTT ou autre serait intéressant de pouvoir aussi activer une app dédiée et tout cela via MQTT egalement (le plus souple et simple).

A suivre…

Voici un retour, je ne vais pas pouvoir tout présenter mais cela fonctionne :slight_smile:

Si vous avez des commentaires ou questions, ne pas hésiter, je peux mettre un peu de temps à répondre.

Superbement puissant cet appareil car il est possible de publier des app, se connecter en MQTT directement, envoyer des notifications, gérer également aussi les notifications (son, temps, icons, …), basculer entre les app sur l’afficheur, afficher une app, mettre en veille, gérer le device (son, extinction, …), interagir avec les apps comme le chrono pour démarrer, arrêter et autre …
Nous pouvons donc depuis Jeedom et des requêtes HTTP (REST) utiliser cet outil puissant via des scénarios, dans mon cas, je ne vais pas gérer directement l’appareil depuis Jeedom (via le plugin) mais en utilisant NODERED et les publications MQTT à travers des scénarios.
J’ai ‹ joué › avec toutes les possibilités et cela sans code, ci-dessous le json à importer dans nodered afin d’avoir le flux complet de tests que j’ai utilisé pour valider le fonctionnemnet :wink:
Le Noeud « HTTP IP Info » est juste là pour mettre l’info de votre adresse IP, je conseille de faire car si l’appareil est changé, on peut changer l’adresse juste dans un noeud et changer le mot de passe ‹ API Key › dans le noeux 'Lametric call"

Le flux global à importer dans NODERED sous forme de JSON afin de créer automatiquement le flux complet ci-dessous, cela vous fera gagner du temps :slight_smile:
flows.json.txt (25,9 Ko)

Résumé :

  • Nous n’avons pas besoin de créer une application dédiée Jeedom pour exposer les données
  • il est possible simplement de pousser des notifications en lieu et place d’une app ‹ jeedom ›
  • il est possible d’activer une application voulue. Si on conserve toujours l’app créée Jeedom comme indiqué dans le plugin, on peut via une requête HTTP, afficher l’app Jeedom et après x secondes afficher par exemple de nouveau l’heure.
    Pour cela il va falloir aller chercher le nom de l’app via une requête web et la référence widget (pour une application il peut y avoir plusieurs affichages type, chacun ayant un widget unique)
  • Lametric a créé une application « My Data DIY » dans le Lametric (a gérer depuis son smartphone) qui permet d’accéder à du MQTT, Web et autre et exposer des données avec icons ou créer des icones dans l’app, des sons sur le web, des graph …, même changer le type d’icone suivant la valeur de la donnée par exemple, très puissant.
    On peut donc publier via du MQTT mais aussi pousser par des requête web les infos dans cette app.
    J’ai effectué tous mes tests avec MQTT et cela fonctionne très bien, il faut juste bien que la donnée soit au format JSON (une contrainte mais facile à gérer)

Dommage que je ne puisse pas publier une vidéo, cela résumerai de façon plus suggestive ce qui est possible de mettre en place.

Je vais mettre des exemples de gestion
4 liens à prendre en compte (la documentation est relativement bien détaillée)

un peu plus de détail

  • Afin de gérer l’appareil il est nécessaire de récupérer l’API Key du device
    Pour cela aller sur le site Developer, onglet Device
    Va être à passer dans les requêtes avec le user : ‹ dev › et le mot passe : ‹ Api Key ›

Les notifications
Partie de la documentation : Notifications | LaMetric API v2.3.0 documentation
Très bien détaillé en résumé, pas besoin d’app, on utilise la notification gérée par l’appareil, à la fin de la notifications ou les notifications, l’app qui était active réapparait.
On peut effectuer des notifications avec/sans icon, avec/sans son, sous forme de texte, de graph, d’objectif (une ligne de progression en dessous du texte), le temps d’affichage, le nombre de répétitions, créer un icon …
Il est donc possible via un scénario toutes les x minutes ou autres afficher la/les notifications.
Tout cela à travers une requête CURL ou un simple noeud NODERED
Le passage d’info se fait via une structure JSON bien expliquée dans la doc

Notification simple - idem app Jeedom mais retour à l’affichage initial comme l’heure

  • Permet de se passer totalement du plugin Lametric et de l’app Jeedom créée
  • Dans cet exemple simple, affichage de 2 info comme le plugin (icon, contenu), bien évidemment dans un scénario il faut inclure les infos voulus des équipements
  • La requête à envoyer : http://IPLametric:8080/api/v2/device/notifications
  • Json à passer en paramètre
      {
          "model": {
              "frames": [
                  {
                      "icon": "64150",
                      "text": "Oups fait froid"
                  },
                  {
                      "icon": "2350",
                      "text": "Texte et contenu"
                  }
              ]
          }
      }

Notification plus complexe avec son (repris de la doc)

  • Dans cet exemple, un icon « info grisé » apparait avant le contenu de la notification
    Priorité warning (3 types) permet de prioriser les notifs si d’autres sont déjà dans la queue.
    La notification est affichée une seule fois
    Un icon créé à la volée (pas dépendant de Lametric)
    Le son de l’url est joué, si pas disponible (pas d’internet), le son cat est joué
  • LA requête à envoyer : http://IPLametric:8080/api/v2/device/notifications
  • Json à passer en paramètre
      {
          "priority": "warning",
          "icon_type": "info",
          "model": {
              "cycles": 1,
              "frames": [
                  {
                      "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAUklEQVQYlWNUVFBgYGBgYBC98uE/AxJ4rSPAyMDAwMCETRJZjAnGgOlAZote+fCfCV0nOmA0+yKAYTwygJuAzQoGBgYGRkUFBQZ0dyDzGQl5EwCTESNpFb6zEwAAAABJRU5ErkJggg==",
                      "text": "SOUND IS PLAYING!"
                  }
              ],
              "sound": {
                  "url": "https://dl.espressif.com/dl/audio/gs-16b-2c-44100hz.mp3",
                  "fallback": {
                      "category": "notifications",
                      "id": "cat"
                  }
              }
          }
      }

Dans NODERED cela est simple à faire

  • Création du Noeud Change avec les 3 infos
    image

    url : l’url à passer sans l’adresse IP
    payload : le json ci-dessus
    method : le type de call effectué (ici POST mais peut-être GET, PUT, POST, …) suivant la requête
  • Création du noeud afin d’ajouter l’adresse IP de l’appareil (permet de gérer qu’à un seul endroit)
    image
    image
  • Création du Noeud d’appel Web (HTTP Request
    image
    Rien à faire juste mettre le user ‹ dev › et en mot de passe l’API key de l’appareil

L’activation d’une application
Cela va être utile si l’on veut afficher une app comme « My Data DIY » puis afficher de nouveau l’heure, cela à travers un scénario dans Jeedom et/ou pour moi du NODERED

Afin d’afficher une app il va falloir connaitre 2 infos :

  • La référence de l’application
  • La référence du widget dans l’app

L’URL à envoyer est sous la forme (en mode PUT)
http://IPLametric:8080/api/v2/device/apps/NOM_DE_LAPP/widgets/NOMDUWIDGET/activate

Pour l’horloge dans mon cas
http://IPLametric:8080/api/v2/device/apps/com.lametric.clock/widgets/1_com.lametric.clock/activate

Nous allons chercher ces infos en récupérant la liste des apps de l’appareil et récupérer les infos

  • Pour connaitre la liste des applications sur l’appareil
    La requête à envoyer : http://IPLametric:8080/api/v2/device/apps (en mode GET)
    Retourne la liste des apps
    image

  • Dans mon cas pour afficher l’app My Data DIY le résultat est le suivant
    image

  • Pour une apps privé comme pour Jeedom cela est un peu moins parlant mais on retrouve bien les infos :wink:
    image

Bonjour,

pour ceux que ça intéresse, j’avais fait un fork du plugin officiel pour ajouter l’utilisation de l’API local plutôt que passer par une app Jeedom a mettre

la doc: plugin-lametric/docs/fr_FR/index.md at master · Scorpio59/plugin-lametric · GitHub

En gros j’ai ajouter 2 commandes:
une pour afficher un message directement sur LeMetric, et il est possible de le faire persister jusqu’à ce qu’on appuie sur le bouton de LaMetric ou d’envoyer une commande pour retirer le message.
On peut même mettre un son, je me rappelle plus si le plugin le faisait initialement.

Merci,

Il est certain que les possibilités de cet équipement dépassent ce que l’on peut imaginer.
La dockmentaion en reference est bien détaillée pour comprendre les possibilités sur des échanges REST URL.
J’ai totalement abandonné la volonter de gérer via jeedom, le plugin ne permettant que de mettre a jour une app installée sans même pourvoir jouer de son, basculer sur l heure, créé des icones, ou même jouer des notifications.
J’ai mis en production maintenant à la maison en utilisant nodered comme introduit sur le message précédent mais aussi directement en MQTT via 3 apps « my data DIY », trop simple à mettre en place et surtout puissant avec les changements par exemple d’icône suivant les valeurs des données.
Dans Jeedom j’ai uniquement créé un virtuel afin denvoyer en MQTT l’affichage "forcé " souhaité, nodered faisant l’envoi et le controle de l’appareil. A des temps souhaités j’affiche par exemple toutes les 10 minutes les temperatures, toutes les heures labprod solaire …
En un mot un afficheur pas donné mais rudement moderne dans son usage.