Intégration d'un écran tactile sous openHASP dans Jeedom

Bonjour,

Voici un tuto complet pour intégrer un écran tactile sous openHASP dans l’écosystème Jeedom pour un budget de moins de 50€.
Dans cet exemple je vais vous partager la configuration de l’écran et de Jeedom pour contrôler des lampes Phillips HUE.


Et quelques exemples de rendus personnels :
openhasp_02 openhasp_03

1. Matériel

Beaucoup de matériels sont compatibles openHASP, vous trouverez les listes exhaustives sur le site Hardware d’openHASP ainsi que sur les pages de téléchargement des firmware stables ou en développement

Ce tuto ne va présenter qu’un seul modèle d’écran :

Smart Panlee
Smart Serial LCD Display
ZX3D95CE01S-AR-4848
2024-12-11 13_40_14-4 pouces 86 panneau tactile de commande centrale de boîte ESP32-S3 carte de déve 2024-12-11 13_40_28-4 pouces 86 panneau tactile de commande centrale de boîte ESP32-S3 carte de déve 2024-12-11 13_40_41-ZX3D95CE01S-AR-4848+Datasheet.pdf - Adobe Acrobat Reader (64-bit)

Ce modèle dispose d’une mécanique arrière pour l’encastrer « facilement » dans un mur, c’est juste carré au lieu du rond plus classique chez nous.
Ses dimensions extérieurs sont de 87mm x 87mm, il s’intègre parfaitement au dessus des boutons existants.
Côté caractéristiques de l’écran, c’est un petit 4 Pouces avec une résolution de 480x480 RGB. Ce n’est pas fait pour diffuser une vidée HD mais largement suffisant pour nos contrôles.
Ce modèle consomme 260mA à 5V DC avec la luminosité au max, on descend à 80mA à 5V DC en veille (je n’ai pas trouvé la puissance consommée dans la datasheet, ce sont les mesures à la maison). Il vous faudra une alimentation 5V DC :

  • Il y a un modèle avec un convertisseur 230V AC en 5V DC qui loge dans la mécanique arrière, ça vous permettra d’utiliser une prise proche de l’écran.
  • Pour ma part j’ai utilisé une source 12V DC qui se promène dans toute la maison dans un câble Ethernet, c’est le réseau IPX V5 pour les produits GCE, convertie en 5V DC
    J’ai également une alimentation 5V DC dans le câble ethernet avec le réseau IPX V5, mais il y a trop de perte sur la distance et elle n’est pas assez puissante pour plusieurs écrans.

L’écran est livré avec un firmware de démo, on ne va pas l’utiliser et le remplacer directement par openHASP.

2. Achat

Ali, Amazon, etc…
Les liens changent souvent, je vous liste donc les références à chercher :

  • Modèle d’écran, environ 45€ : ZX3D95CE01S
  • Boîte d’encastrement, environ 1€ : boite doublure sèche (et oui ça fonctionne comme ça Ali)
    2024-12-11 14_10_25-Boîte de Montage à Doublure Sèche Simple pour Plaques de Plâtre, 35mm, 47mm de P

Vous aurez besoin d’un convertisseur USB TTL pour programmer l’écran la première fois avec openHASP. Ça ressemble à ça et ne coûte que quelques euros :
2024-12-11 14_21_22-Module de communication série industriel USB vers TTL, convertisseur UART, multi

Et pour finir j’ai eu besoin d’un convertisseur +12V DC en +5V DC. J’utilise pour cela un mini convertisseur, qui loge très bien dans la mécanique arrière de l’écran, pour moins de 2€ :
2024-12-11 14_24_11-ARCELI 5 Pcs Ultra Petit DC-DC 3A Puissance Module abaisseur réglable Convertiss 2024-12-11 14_24_24-ARCELI 5 Pcs Ultra Petit DC-DC 3A Puissance Module abaisseur réglable Convertiss

3. Installer openHASP dans l’écran

Utiliser le firmware V0.7 disponible sur la page de développement : modèle Panlee puis sélectionner ZW3D95CE01S-TR.

Branchements à effectuer pour le flashage :
IMG20241211155026 2024-12-11 15_53_19-Ecran - OneNote (Unlicensed Product)

PIN écran Convertisseur USB TTL
GND GND
+5V +5V
TX0 RX
RX0 TX
IO0 GND pour la Mise Sous Tension, déconnecter après

Pensez à déconnecter IO0 après la MST, sinon l’écran redémarrera en mode flashage à chaque fois.

Pour l’opération de flashage, que ça soit avec votre navigateur ou avec l’outil Flash Download Tool d’Espressif, suivez simplement les instructions.

A la fin du flashage l’écran redémarre et vous aurez cet écran de démarrage furtif

Enfin configurez le WIFI dans l’écran en suivant les instructions de configuration du réseau WIFI
Votre écran se connectera automatiquement au réseau WIFI enregistré, vous pourrez vous y connecter avec votre navigateur en allant sur http://Adresse_IP_De_Lécran. La page par défaut installée avec openHASP affiche un popup avec l’adresse IP de l’écran, c’est bien fait !

Il ne vous reste plus qu’à modifier le contenu de la page principale pages.jsonl pour y ajouter tous vos objets. Petite astuce, il existe un outil graphique pour vous aider à concevoir vos IHM et qui génère le code jsonl correspondant, allez voir ce site.

4. Jeedom pour avoir le brocker MQTT et le plugin openHASP

Vous devez avoir un brocker MQTT, le plugin Jeedom MQTT Manager et le plugin Jeedom openHASP.
Le plus simple est de suivre la section Configuration de l’aide du plugin openHASP.

  • Personnellement j’utilise le broker MQTT local avec le plugin Jeedom MQTT Manager.
  • J’ai juste ajouté un nouvel utilisateur/mot-de-passe-pas-trop-long pour openHASP.

Attention : le plugin Jeedom openHASP est encore en Beta à la date de publication de ce tuto
Demande de passage en Stable faite

5. Gestion de lampes Phillips HUE

J’ai 3 points lumineux de marque Phillips HUE qui sont déjà pilotables avec le plugin Jeedom Philips Hue. C’est hors périmètre de ce tuto, ça fonctionne très bien.

J’adore ces lampes mais il leur manque vraiment une interface de contrôle autre que le téléphone, comme ça par exemple :
image
C’est réalisable avec openHASP / Jeedom !

5.1 Ecran

Voici mon exemple de page pour piloter les 3 points lumineux :

Contenu du fichier pages.jsonl
{"page":0,"comment":"All pages","bg_color":"#000000"}
{"page":0,"id":1,"obj":"btn","comment":"Previous","x":0,"y":430,"w":150,"h":50,"radius":0,"bg_color":"#000000","border_color":"#ffffff","text":"\uE141","text_font":36,"text_color":"#FFFFFF","action":{"down":"page prev"}}
{"page":0,"id":2,"obj":"btn","comment":"Home","x":150,"y":430,"w":180,"h":50,"radius":0,"bg_color":"#000000","border_color":"#ffffff","text":"\uE2DC","text_font":36,"text_color":"#FFFFFF","action":{"down":"page back"}}
{"page":0,"id":3,"obj":"btn","comment":"Next","x":330,"y":430,"w":150,"h":50,"radius":0,"bg_color":"#000000","border_color":"#ffffff","text":"\uE142","text_font":36,"text_color":"#FFFFFF","action":{"down":"page next"}}
{"page":0,"id":6,"obj":"label","x":160,"y":5,"h":50,"w":300,"text":"Chambre","align":0,"bg_color":"#000000","text_color":"#FFFFFF"}
{"page":0,"id":7,"obj":"label","x":5,"y":5,"h":50,"w":70,"text":"00:00","align":0,"bg_color":"#000000","text_color":"#FFFFFF","template":"%H:%M"}

{"page":1,"comment":"Welcome","bg_color":"#000000"}
{"page":1,"id":10,"obj":"slider","x":40,"y":170,"w":20,"h":220,"radius":0,"bg_color":"#673bb7","bg_color10":"#a9a9a9","border_color":"#ffffff","val":100,"radius20":1,"text":"Luminosité"}
{"page":1,"id":11,"obj":"cpicker","x":90,"y":160,"w":220,"h":220,"text":"Couleur"}
{"page":1,"id":12,"obj":"btn","x":350,"y":220,"w":120,"h":40,"radius":10,"bg_color":"#212121","border_color":"#ffffff","text":"Feu","text_font":25,"toggle":true}
{"page":1,"id":13,"obj":"btn","x":350,"y":150,"w":120,"h":40,"radius":10,"bg_color":"#212121","border_color":"#ffffff","text":"Bougie","text_font":25,"toggle":true}
{"page":1,"id":14,"obj":"btn","x":350,"y":290,"w":120,"h":40,"radius":10,"bg_color":"#212121","border_color":"#ffffff","text":"Prisme","text_font":25,"toggle":true}
{"page":1,"id":15,"obj":"btn","x":350,"y":360,"w":120,"h":40,"radius":10,"bg_color":"#212121","border_color":"#ffffff","text":"Blanc","text_font":25,"toggle":true}
{"page":1,"id":17,"obj":"checkbox","x":40,"y":80,"border_color":"#212121","text":"Lavabo","text_font":25,"val":1}
{"page":1,"id":18,"obj":"checkbox","x":180,"y":80,"border_color":"#212121","text":"Baignoire","text_font":25,"val":1}
{"page":1,"id":19,"obj":"checkbox","x":340,"y":80,"border_color":"#212121","text":"Douche","text_font":25,"val":1}

Rendu graphique :
openhasp_04

Cette IHM permet :

  • D’activer/désactiver chaque point lumineux indépendamment
  • D’activer un effet sur les points lumineux actifs, les effets ne sont pas modifiables, ce sont ceux du plugin Jeedom Phillips Hue (Bougie, Feu et Prisme)
  • De modifier la couleur et la luminosité des points lumineux actifs

Vous remarquerez que j’utilise des boutons ‹ toggle › pour garder visible l’état actif.

5.2 Plugin Jeedom openHASP

On va faire vite et simple pour ajouter l’écran comme équipement openHASP dans Jeedom

  1. Allez dans le plugin openHASP
  2. Ajouter un nouvel équipement
  3. Configurer son nom, objet parent etc…
  4. Configurer l’écran → Configuration par Adresse IP
    Entrez l’adresse IP de l’écran et cliquez sur « Valider IP »
  5. Aller dans « Commandes spécifiques »
  6. Cliquer sur « Importer les objets de l’écran »

La page va se rafraîchir et vous verrez touts les objets supportés par le plugin openHASP qui auront des commandes associées :

5.3 Comprendre la philosophie de la communication écran openHASP / Jeedom

Cas simple et transposable pour presque tous les autres objets : le checkbox :

  • Côté écran openHASP : 1 objet « checkbox » en page 1 qui peut avoir 2 états « coché » et « décoché » (assez classique) et qui affiche par exemple le texte « Baignoire »
  • Côté plugin Jeedom openHASP : 2 commandes
    • 1 commande Info nommée « Page 1 - Checkbox Baignoire » qui récupère l’état du checkbox « Baignoire » envoyé par l’écran
    • 1 commande Action nommée « Page 1 - Checkbox Baignoire Commande » qui permet d’envoyer à l’écran une nouvelle valeur pour le checkbox « Baignoire »

Scénario d’exemple 1 :

  1. Etat initial
    1. Le checkbox « Baignoire » à l’écran est décoché
    2. Jeedom : Commande Info nommée « Page 1 - Checkbox Baignoire » = 0
  2. Action : On appuie sur le checkbox « Baignoire » à l’écran
    1. Le checkbox « Baignoire » à l’écran est coché
    2. Jeedom reçoit une mise à jour de la Commande Info nommée « Page 1 - Checkbox Baignoire » = 1

Scénario d’exemple 2 :

  1. Etat initial
    1. Le checkbox « Baignoire » à l’écran est décoché
    2. Jeedom : Commande Info nommée « Page 1 - Checkbox Baignoire » = 0
  2. Action : Depuis Jeedom, on envoie la commande Action nommée « Page 1 - Checkbox Baignoire Commande » avec valeur = 1
    1. Le checkbox « Baignoire » à l’écran est coché
    2. Jeedom reçoit une mise à jour de la Commande Info nommée « Page 1 - Checkbox Baignoire » = 1

5.4 Gestion avec un scénario

Les échanges de données via MQTT sont rapides mais absolument pas déterministes : on peut vite bloquer un scénario à attendre un retour d’info de l’écran.

J’ai fait le choix d’avoir un seul scénario pour gérer la page de l’écran.

  • Type : Multi-lancement
  • Mode du scénario : Provoqué avec toutes les commandes infos de l’écran et également les états des lampes du plugin Phillips HUE (pour voir les états synchronisés)
    (ça fait quelques évènements !)

Ensuite voici un aperçu de comment je gère le checkbox « Baignoire » qui contrôle 1 lampe et éviter que ça tourner en boucle :


Réactivité à l’utilisation : ce n’est pas immédiat comme un inter mais presque, je dirais 1s, parfois 2s grand grand max (après il faut refaire le cheminement de l’information avec écran openHASP → Brocker MQTT → Plugin Jeedom MQTT → Plugin Jeedom openHASP → Scénario déclenché → Plugin Jeedom Phillips HUE → Hub Phillips HUE → point lumineux Phillips HUE)

Ça a été validé par le test du singe, enfin des enfants, qui ont tout essayé et n’ont pas fini de jouer avec.

6. Conclusion

C’était assez long comme ça, juste amusez vous !

7 « J'aime »

Bonjour,

Comment peut on envoyer une valeur d’un capteur de temperature vers un ecran tactile, je precise que openhasp est installé sur l’écran et le plugin aussi.

D’après ce que je cois on peut juste envoyer une commande chose que j’ai fait et cela fonctionne.
Merci.

Bonsoir @Jeremy_Guilloy,

Tous les objets dans l’écran et toutes leurs propriétés sont accessibles depuis Jeedom avec le plugin.
Le bouton « Importer les objets de l’écran » ne fait qu’ajouter quelques propriétés des objets les plus utilisées (liste arbitrairement définie par moi :grin:).
Pour les autres propriétés / objets il faut s’aider de la doc Objects - openHASP.

Par exemple dans cet échange on parle de comment modifier le texte d’un bouton :

(c’est hors contexte direct avec ta question, ça peut juste aider d’autres personnes qui cherchent comment toi à interagir avec toutes les propriétés)

Là dans ton cas je pars du principe que pour afficher une valeur tu utilises un objet « label » dans ton écran.

{"page":1,"id":2,"obj":"label","x":10,"y":150,"h":50,"w":70,"text":"7°C","align":0,"bg_color":"#000000","text_color":"#FFFFFF"}

Dans le plugin openHASP, ajoute cette nouvelle commande de type Action / Curseur :


En paramètre tu as :

  • le nom de l’objet « command/p1b2.text » (pour commande page=1 objet id=2)
  • le texte à envoyer : « #slider#°C » (ça permet d’avoir une commande numérique et d’envoyer quand même à l’écran la valeur numérique avec son unité)

Ensuite il ne te reste « plus » qu’à relier ta commande avec la valeur de ton capteur de température à cette commande créée avec un scénario.

  • Dans cet exemple j’ai un objet « PlateDev » avec la commande créée ci-dessus
    image
  • J’ai fait ce scénario d’exemple qui envoie juste une valeur fixe, ça marche aussi en remplaçant la valeur par une autre commande de type info

Est ce que ça répond à ta question ?

1 « J'aime »

Bonjour @jbbeauf oui super merci je vais essayer ca.

Beau boulot pour ce plugin.

Bonjour à tous,

Merci à @jbbeauf pour le plugin :wink:

J’arrive à remonter l’état de boutons via MQTT de l’écran de mon ESP32.
Mais envoyer des valeurs sur des zones de texte dans des object label, rien ne se mets à jour.

Une idée ?
EDIT : Avec jMqtt, j’arrive à mettre à jour les valeurs.

Merci

Bonsoir @006fazer ,

Dans ce message plus haut je donne un exemple de comment modifier un objet de type label : est-ce que tu l’as vu ?

Sinon il faudrait un peu plus d’info : le code jsonl de ton objet et une copie d’écran de comment tu l’as défini dans le plugin openhasp sous jeedom

Oui, j’ai bien vu c’est messages :wink:
Les infos en state remontent, mais les commandes sont envoyées vides j’ai l’impression.

{"page":1,"id":71,"obj":"label","x":350,"y":25,"h":50,"w":150,"parentid":52,"text":"9 W","align":"right","bg_color":"#000000","text_color":"#FFFFFF"}

Les logs lors de l’envoie d’une commande :

[2025-03-08 21:08:50] DEBUG  : handleMqttPublish Publication Topic hasp/openhasp1/command/p1b71.text - Valeur
[2025-03-08 21:08:50] DEBUG  : handleMqttPublish Publication Topic hasp/openhasp1/command/p1b71.text - Valeur

Ah mince !
Mais ça marche chez moi :sweat_smile:

J’ai copié/collé ton label, créé les objets tabview/tab pour essayer comme toi et je n’ai pas de soucis.

Peux-tu activer le debug sur le plugin quand tu testes la commande ?
Menu de configuration du plugin, puis
image

Tu devrais avoir ces 3 lignes dans le log « Openhasp »:

  1. Nouvelle valeur pour le label envoyée
  2. Valeur vide envoyée au label
  3. Réception de la valeur affichée du label à l’écran
[2025-03-08 20:53:32][DEBUG] : handleMqttPublish Publication Topic hasp/dev/command/p1b71.text - Valeur 10 W
[2025-03-08 20:53:32][DEBUG] : handleMqttPublish Publication Topic hasp/dev/command/p1b71.text - Valeur 
[2025-03-08 20:53:32][DEBUG] : handleMqttMessage MQTT Message brut reçu : Array (     [hasp] => Array         (             [dev] => Array                 (                     [state] => Array                         (                             [p1b71] => Array                                 (                                     [text] => 10 W                                 )                          )                  )          )  )

Peux-tu aussi ajouter une commande de type info pour voir si ça bouge ?

Toujours pareil :

[2025-03-08 22:08:04] DEBUG  : handleMqttPublish Publication Topic hasp/openhasp1/command/p1b71.text - Valeur
[2025-03-08 22:08:04] DEBUG  : handleMqttPublish Publication Topic hasp/openhasp1/command/p1b71.text - Valeur
[2025-03-08 22:08:04] DEBUG  : handleMqttMessage MQTT Message brut reçu : Array (     [hasp] => Array         (             [openhasp1] => Array                 (                     [state] => Array                         (                             [p1b71] => Array                                 (                                     [text] => 11.6 kW                                 )                          )                  )          )  )

Les commandes sont envoyées sans les valeurs.

Les logs de MqttManager :

[2025-03-08 21:12:01] DEBUG  : Publish message on topic : hasp/openhasp1/command/p1b71.text =>  with options : {}
[2025-03-08 21:12:01] DEBUG  : Publish message on topic : hasp/openhasp1/command/p1b71.text =>  with options : {}
[2025-03-08 21:12:01] DEBUG  : Received message on topic : hasp/openhasp1/state/p1b71 => {"text":"11.6 kW"}
[2025-03-08 21:12:01] DEBUG  : Received message on topic : hasp/openhasp1/state/p1b71 => {"text":"11.6 kW"}

Le plugin envoie bien la commande mais avec une valeur vide : et ça je ne comprends pas pourquoi

Peux-tu mettre à jour le plugin en version beta ?.. je viens de mettre à jour la beta en ajoutant beaucoup (trop) de log quand on envoie une commande.
La version beta publiée = dernière version stable + les logs en debug

C’est juste pour ce test : après tu repasses en version stable.

Voici ce que ça donne pour moi par exemple :

[2025-03-08 22:29:30][DEBUG] : execute DEBUT - Exécution d une commande !!!
[2025-03-08 22:29:30][DEBUG] : execute - rootTopic - >hasp<
[2025-03-08 22:29:30][DEBUG] : execute - rootName - >dev<
[2025-03-08 22:29:30][DEBUG] : execute - topicCmd - >command/p1b71.text<
[2025-03-08 22:29:30][DEBUG] : execute - value - >#slider# W<
[2025-03-08 22:29:30][DEBUG] : execute - case slider
[2025-03-08 22:29:30][DEBUG] : execute - value - >15 W<
[2025-03-08 22:29:30][DEBUG] : execute - value avant evaluate - >15 W<
[2025-03-08 22:29:30][DEBUG] : execute - value apres evaluate - >15 W<
[2025-03-08 22:29:30][DEBUG] : handleMqttPublish Publication BRUT - Topic >hasp/dev/command/p1b71.text< - _value >15 W<
[2025-03-08 22:29:30][DEBUG] : convertUnicodeInTextToSend DEBUT - $_text >15 W<
[2025-03-08 22:29:30][DEBUG] : convertUnicodeInTextToSend - $charBegin >{{<
[2025-03-08 22:29:30][DEBUG] : convertUnicodeInTextToSend - $charBegin >\{\{<
[2025-03-08 22:29:30][DEBUG] : convertUnicodeInTextToSend - $charEnd >}}<
[2025-03-08 22:29:30][DEBUG] : convertUnicodeInTextToSend - $charEnd >\}\}<
[2025-03-08 22:29:30][DEBUG] : convertUnicodeInTextToSend - $pattern >/\{\{[^\}\}]+\}\}/<
[2025-03-08 22:29:30][DEBUG] : convertUnicodeInTextToSend - $return >15 W<
[2025-03-08 22:29:30][DEBUG] : convertUnicodeInTextToSend - $return >15 W<
[2025-03-08 22:29:30][DEBUG] : convertUnicodeInTextToSend FIN - $return >15 W<
[2025-03-08 22:29:30][DEBUG] : handleMqttPublish Publication APRES_UNICODE_CONVERT - Topic >hasp/dev/command/p1b71.text< - sendValue >15 W<
[2025-03-08 22:29:30][DEBUG] : handleMqttPublish Publication BRUT - Topic >hasp/dev/command/p1b71.text< - _value ><
[2025-03-08 22:29:30][DEBUG] : convertUnicodeInTextToSend DEBUT - $_text ><
[2025-03-08 22:29:30][DEBUG] : convertUnicodeInTextToSend FIN TEXTE VIDE
[2025-03-08 22:29:30][DEBUG] : handleMqttPublish Publication APRES_UNICODE_CONVERT - Topic >hasp/dev/command/p1b71.text< - sendValue ><
[2025-03-08 22:29:30][DEBUG] : handleMqttMessage MQTT Message brut reçu : Array (     [hasp] => Array         (             [dev] => Array                 (                     [state] => Array                         (                             [p1b71] => Array                                 (                                     [text] => 15 W                                 )                          )                  )          )  ) 
[2025-03-08 22:29:30][DEBUG] : handleMqttMessage Equipement [Aucun][dev] - Mise à jour commande [Aucun][dev][Page 1 - label View] avec valeur 15 W

Je voudrais comprendre où est le soucis : si c’est un problème de récupération de la valeur que tu as dans le champs message, si c’est un soucis de conversion unicode, si c’est un problème de logique / cas non testé. La je sèche sans plus d’infos.

Avec la version Béta ça marche nickel !

[2025-03-08 22:47:30] DEBUG  : handleMqttMessage MQTT Message brut reçu : Array (     [hasp] => Array         (             [openhasp1] => Array                 (                     [command] => Array                         (                             [p1b91.text] => 513.3 W                             [p1b93.text] => 76.6 W                         )                  )          )  )
[2025-03-08 22:47:40] DEBUG  : handleMqttMessage MQTT Message brut reçu : Array (     [hasp] => Array         (             [openhasp1] => Array                 (                     [command] => Array                         (                             [p1b99.text] => 0.3 W                         )                  )          )  )
[2025-03-08 22:47:40] DEBUG  : handleMqttMessage MQTT Message brut reçu : Array (     [hasp] => Array         (             [openhasp1] => Array                 (                     [command] => Array                         (                             [p1b93.text] => 76.9 W                         )                  )          )  )
[2025-03-08 22:47:41] DEBUG  : execute DEBUT - Exécution d une commande !!!
[2025-03-08 22:47:41] DEBUG  : execute - rootTopic - >hasp<
[2025-03-08 22:47:41] DEBUG  : execute - rootName - >openhasp1<
[2025-03-08 22:47:41] DEBUG  : execute - topicCmd - >command/p1b71.text<
[2025-03-08 22:47:41] DEBUG  : execute - value - >#slider#  kW<
[2025-03-08 22:47:41] DEBUG  : execute - case slider
[2025-03-08 22:47:41] DEBUG  : execute - value - >15  kW<
[2025-03-08 22:47:41] DEBUG  : execute - value avant evaluate - >15  kW<
[2025-03-08 22:47:41] DEBUG  : execute - value apres evaluate - >15  kW<
[2025-03-08 22:47:41] DEBUG  : handleMqttPublish Publication BRUT - Topic >hasp/openhasp1/command/p1b71.text< - _value >15  kW<
[2025-03-08 22:47:41] DEBUG  : convertUnicodeInTextToSend DEBUT - $_text >15  kW<
[2025-03-08 22:47:41] DEBUG  : convertUnicodeInTextToSend - $charBegin >{{<
[2025-03-08 22:47:41] DEBUG  : convertUnicodeInTextToSend - $charBegin >\{\{<
[2025-03-08 22:47:41] DEBUG  : convertUnicodeInTextToSend - $charEnd >}}<
[2025-03-08 22:47:41] DEBUG  : convertUnicodeInTextToSend - $charEnd >\}\}<
[2025-03-08 22:47:41] DEBUG  : convertUnicodeInTextToSend - $pattern >/\{\{[^\}\}]+\}\}/<
[2025-03-08 22:47:41] DEBUG  : convertUnicodeInTextToSend - $return >15  kW<
[2025-03-08 22:47:41] DEBUG  : convertUnicodeInTextToSend - $return >15  kW<
[2025-03-08 22:47:41] DEBUG  : convertUnicodeInTextToSend FIN - $return >15  kW<
[2025-03-08 22:47:41] DEBUG  : handleMqttPublish Publication APRES_UNICODE_CONVERT - Topic >hasp/openhasp1/command/p1b71.text< - sendValue >15  kW<
[2025-03-08 22:47:41] DEBUG  : handleMqttPublish Publication BRUT - Topic >hasp/openhasp1/command/p1b71.text< - _value ><
[2025-03-08 22:47:41] DEBUG  : convertUnicodeInTextToSend DEBUT - $_text ><
[2025-03-08 22:47:41] DEBUG  : convertUnicodeInTextToSend FIN TEXTE VIDE
[2025-03-08 22:47:41] DEBUG  : handleMqttPublish Publication APRES_UNICODE_CONVERT - Topic >hasp/openhasp1/command/p1b71.text< - sendValue ><
[2025-03-08 22:47:42] DEBUG  : handleMqttMessage MQTT Message brut reçu : Array (     [hasp] => Array         (             [openhasp1] => Array                 (                     [state] => Array                         (                             [p1b71] => Array                                 (                                     [text] => 15  kW                                 )                          )                  )          )  )
[2025-03-08 22:47:42] DEBUG  : handleMqttMessage Equipement [Objets mesure énergie][OpenHASP1] - Mise à jour commande [Objets mesure énergie][OpenHASP1][Page 1 - Prod Solaire Info] avec valeur 15  kW
[2025-03-08 22:47:43] DEBUG  : handleMqttMessage MQTT Message brut reçu : Array (     [hasp] => Array         (             [discovery] => Array                 (                     [34cdb00aaf24] => Array                         (                             [node] => openhasp1                             [mdl] => Sunton 1-8048S070C                             [mf] => openHASP                             [hwid] => 34cdb00aaf24                             [pages] => 12                             [sw] => 0.7.0-rc13                             [node_t] => hasp/openhasp1/                             [uri] => http://192.168.72.36                             [input] => Array                                 (                                 )                              [power] => Array                                 (                                 )                              [light] => Array                                 (                                 )                              [dim] => Array                                 (                                 )                              [event] => Array                                 (                                 )                          )                  )          )  )

Ce n’est pas ce que j’attendais :thinking:

Et si tu repasses en stable ça fonctionne toujours ?

Retour en stable, ça remarche aussi :thinking:

Le plugin est super, mais pour envoyer les valeur faut un scénario. Avec les mêmes commandes dans le plugins jmqtt, dès qu’une valeur change elle est envoyé à l’écran.

Ce serait faisable dans ton plugin ?

Autre question, peut-on éteindre l’écran sur certaines horaires et piloter la luminosité de l’écran ?

Merci

Alors si ça refonctionne en stable je ne comprends pas
Ça m’embête si ça reproduit, je vais ajouter un peu plus de logs en debug dans la version stable pour éviter d’avoir à changer de version beta / stable lorsqu’il y a ce genre de soucis.

Je viens d’installer le plugin jmqtt. Les commandes de type action peuvent être liées à une autre commande, c’est pour ça que tu as ce comportement d’une valeur qui change.
Aujourd’hui ça n’est pas prévu mais je n’y avais pas pensé non plus…
Ça devrait être faisable, je vais regarder.

Là je suis sur une évolution pour faciliter la création de toutes les commandes pour l’écran et pour les objets disponibles (avec accès à toutes les propriétés)

Par rapport à ta dernière question :

  • Pour allumer / éteindre l’écran : Commande de type Action / Liste avec Topic = command/backlight, message = #select# et liste de valeurs = off|OFF;on|ON
  • Pour modifier la luminosité de l’écran : Commande de type Action / Curseur avec Topic = command/backlight, message = {« state »:« on »,« brightness »:#slider#} et valeur min = 1 / valeur max = 255

Pour éteindre l’écran à certains horaires il faut encore passer par un scénario

Top, merci :wink:

Bonjour,
J’ai recompilé une version custom d’OpenHasp 7.01 pour intégrer la lecture de capteurs T°, Humidité, qualité de l’air (SHT40, ATH21, ENS160), je ferais un tuto avec le .bin dès que le point suivant est règlé.

Les informations sont envoyées comme ceci : hasp/plate/state/sensors {« time »:« 2025-11-30T17:20:05 »,« uptimeSec »:17429,« uptime »:« 0T04:50:29 »,« Temperature »:{« Temperature »:22.28160858,« unit »:« °C »},« Humidity »:{« Humidity »:54.11100769,« unit »:« % »}}

Je n’arrive pas à parser le json de la section température avec la sous section {« Temperature »:22.28160858,« unit »:« °C »}. Tu serais m’indiquer comment récupérer cette valeur dans le champ du topic du plugin ?

Sinon, ça fonctionne très pour le premier niveau :
image

Merci d’avance.

Bonjour @Eric69,

Je viens de tester avec MQTT Explorer pour envoyer les mêmes données que toi (juste le nom du plate est différent) :
image

Et voici comment je récupère les infos côté Jeedom plugin openHASP :
Température : une commande info avec comme « Topic MQTT » : « state/sensors/Temperature/Temperature »

C’était si simple :slightly_smiling_face: merci pour le test et la soluce.
Bonne semaine.