[Tuto] Esp Easy + Nextion + DomoticZ

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
Répondre
Jeff
Messages : 1007
Inscription : 17 nov. 2016, 20:54
Localisation : Rennes (35)

[Tuto] Esp Easy + Nextion + DomoticZ

Message par Jeff »

Bonjour,

MAJ 02/01/2021

Je vous propose ici d'utiliser un écran Nextion avec un wemos d1 mini sous Esp Easy.

Presentation

On trouve ces écrans de 2,4" à 7" et de 15€ à 60€. Ce tuto a été fait avec un model basique 3,2" puis un écran 7" (NX4024T032) et un wemos d1 mini. Pour en savoir plus , c'est ici : https://www.itead.cc/display/nextion.html

L'intérêt de disposer d'un écran tactile est qu'il peut afficher la valeur des capteurs branchés à l'ESP 8266, être utiliser comme interrupteur tactile et diffuser des informations venant de domoticz, d'un autre capteur sous espeasy de la maison ou venant d'une source externe via node red (météo, saint du jour...)
Homescreen.jpg
Homescreen.jpg (645.46 Kio) Consulté 88438 fois
Dashboard.jpg
Dashboard.jpg (43.11 Kio) Consulté 94412 fois


Installation

Nextion ayant évolué depuis ce tuto, vous trouvez tout sur le plugin et le branchement ici.
https://www.letscontrolit.com/wiki/inde ... IONDisplay

Je vous joins un plugin compilé avec la dernière version (11/11/2021) en cours et 20 champs de saisie dans le plugin.
Nextion_20_Lignes_ESP8266_4M1M_11112021.zip
(637.02 Kio) Téléchargé 2199 fois
Branchement
P075_Nextion_Wiring1.png
P075_Nextion_Wiring1.png (315.38 Kio) Consulté 87216 fois



Interface Nextion


L'interface est un logiciel qui consiste à assembler des images, des boites textes, des champs valeurs...
A télécharger ici : https://nextion.tech/nextion-editor/#_section1

Le principe est de créer un assemblage d'image et champ texte.
Pour commencer, vous ajoutez une image de fond correspondant à votre résolution : exemple 3,2" c'est 400*240, vous insérez via le menu "toolbox" une picture et dans le champ "PIC" vous sélectionnez votre image.

Pour créer un icone tactile : Ex : lampe, vous ajouter 2 images dans le volet picture : On / Off.
Insérer via le menu "toolbox" une picture et dans le champ "PIC" vous sélectionnez votre image à l'état que vous souhaitez. Vous lui donner un nom à retenir qui servira à changer l'image à partir de domoticz dans le champ On ou Off.

Nextion_editor_lampe.png
Nextion_editor_lampe.png (101.34 Kio) Consulté 94426 fois
Pour le tactile
Insérez un "hotspot" et cocher dans "Touch press event" ou l'autre la case "Send component id"
Pour récupérer son ID, il faut cliquer dessus et voir la page log (onglet Tools) sur son PC ou smartphone :

Tactile.png
Tactile.png (25.04 Kio) Consulté 94426 fois
log_ID.png
log_ID.png (92.1 Kio) Consulté 94417 fois
Le paramétrage dans easy Esp

Il faut ajouter les plugin "Nextion" et "MQTT" et le paramétage est le suivant :

Dans le plugin MQTT:
Avec MQTT on récupère le topic de domoticz (moi je le retravaille avec nodered)

Dans le champ Nextion :
pageX.NOM_CHAMP_TEXT_EDITEUR_NEXTION.txt="[NOM_PLUGIN_MQTT#NAME_VALUE_PLUGIN_MQTT]"

Plugin.png
Plugin.png (36.05 Kio) Consulté 94421 fois
MQTT.png
MQTT.png (24.9 Kio) Consulté 94421 fois
Editor_temperature.png
Editor_temperature.png (9.52 Kio) Consulté 94421 fois
Pour communqiuer on peut aussi utiliser des commandes HTTP :

Http :
Régler la luminosité : 192.168.1.103/control?cmd=NEXTION,dim=10
Mettre à jour capteur texte : 192.168.1.103/control?cmd=NEXTION,time.txt="valeur"
Lampe, image crop : 192.168.1.103/control?cmd=NEXTION,alarm.picc=1
La couleur d'un texte : 192.168.1.104/control?cmd=NEXTION,ext.pco=63519

Dans les scripts LUA :

Code : Tout sélectionner

commandArray[# commandArray +1]={['OpenURL']='192.168.1.103/control?cmd=NEXTION,page0.alarme.picc=0'}

Rules :
Pour lancer une commande via un bouton virtuel, dans les rules ajouter ceci :

Code : Tout sélectionner

on NEXTION#idx=520 do
sendtohttp 192.168.1.100,8080,/json.htm?param=switchlight&type=command&idx=187&switchcmd=Toggle
endon
Rules_ID.png
Rules_ID.png (65.43 Kio) Consulté 94417 fois
Mise en veille de l'écran comme ceci, merci à jackslayter

Code : Tout sélectionner

 On System#Boot do    //When the ESP boots, do
   timerSet,1,5      //Set Timer 1 for the next event in 5 seconds
 endon

On Rules#Timer=1 do  //When Timer1 expires, do
   NEXTION,thup=1   //activation de extinction auto de l'ecran 0 ou 1
   NEXTION,thsp=10   //extinction de l'ecran dans x secondes
 endon
Pour compléter ce tuto, il y a aussi l'excellent travail de @jackslayter ici :
http://easydomoticz.com/forum/viewtopic ... =70#p43334

Dans un prochain tuto si certains sont intéressés, j'expliquerais les commandes via Node Red : changement de fond à la demande (heure, événement), intégration météo wunderground, le saint du jour...
Node_Red.png
Node_Red.png (40.62 Kio) Consulté 94412 fois
Voici le complément au tuto sur node red
Dernière modification par Jeff le 02 janv. 2022, 13:03, modifié 32 fois.
Version: 2023.1 sur VM Synology, docker Zwave Js UI (Z-stick GEN5, Fibaro...), Zigbeefordomoticz. Nextion RGB Led Screen
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: TUTO Esp Easy + Nextion + Domoticz

Message par deennoo »

Super !
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
ericd
Messages : 157
Inscription : 24 janv. 2017, 11:04
Localisation : Toulouse

Re: TUTO Esp Easy + Nextion + Domoticz

Message par ericd »

Merci pour tes infos

@+

Ericd
dokho
Messages : 685
Inscription : 28 déc. 2014, 19:32

Re: TUTO Esp Easy + Nextion + Domoticz

Message par dokho »

Salut,

Est-ce que tu aurais un tuto un peu plus complet ?

J'avoue que c'est un peu flou pour moi sur pas mal de point ...
- faut il mettre les images sur un sd-card ?
- est-ce que c'est toute l'image de fond que je dois changer quand j'allume une lampe ?
- je n'ai pas trop compris la partie mqtt avec le dummy ...


En tout cas ça m’intéresse beaucoup donc je continue de creuser :)
dokho
Messages : 685
Inscription : 28 déc. 2014, 19:32

Re: TUTO Esp Easy + Nextion + Domoticz

Message par dokho »

Je suis aussi preneur de tes "functions" nodered :)
Jeff
Messages : 1007
Inscription : 17 nov. 2016, 20:54
Localisation : Rennes (35)

Re: TUTO Esp Easy + Nextion + Domoticz

Message par Jeff »

Le tuto est pas mal complet, c'est vrai que c'est assez compliqué mais voici quelques indications pour tes questions :

Si on reprend la construction de l'interface Nextion. Pour cela j'utilise le logiciel "paint.net" , je créé un projet "exemple.pdn" et je créé des calques avec les différents états désirés : comme lampe allumée, lampe éteinte.
Je coche ou décoche les calques et j'enregistre chaque image de mon état en format *.jpg (fichier enregistrer sous : *.jpg)


Après j'importe ces images sous le logiciel Nextion (dans le tuto : 0,1,2)
- faut il mettre les images sur un sd-card ?
Suivre le tuto pour les boutons, case text..., une fois fini, bouton "compile", puis fichier "open buid folder" et tu as un fichier *.tft que tu dois effectivement mettre sur une sd card sans aucun autre fichier.
Tu l'insères dans ton Nextion, tu alimentes, çà copie, tu débranches ton nextion, retire ta carte et réalimente. Voila ton nextion chargé.
Pour débuter, voici un projet paint.net et un fichier de construction Nextion.
image_fond.png
image_fond.png (72.85 Kio) Consulté 101316 fois
est-ce que c'est toute l'image de fond que je dois changer quand j'allume une lampe ?
En fait quand tu veux changer l'état d'une lampe, on va changer la valeur de "picc" de la boite crop avec la valeur de la nouvelle image (ici la 1)
http://ipESP/control?cmd=NEXTION,light.picc=1
image_fond.png
image_fond.png (72.85 Kio) Consulté 101316 fois
Pour tester cette première partie :
Tu paramètres sur espeasy , domoticz en "http" ou "mqtt" et tu envois ces commandes :
http://ipESP/control?cmd=NEXTION,alarm.picc=1
http://ipESP/control?cmd=NEXTION,temp.txt="18,5C"
etc...

Fait tout cela, comprends le fonctionnement et après je pourrais t'aider à faire un peu complexe avec node-red...
N’hésites pas à te reporter au tuto, il explique tout :D
Pièces jointes
calque2.png
calque2.png (15.23 Kio) Consulté 101316 fois
Fichiers_nextion.zip
(216.37 Kio) Téléchargé 788 fois
Dernière modification par Jeff le 21 avr. 2019, 14:42, modifié 1 fois.
Version: 2023.1 sur VM Synology, docker Zwave Js UI (Z-stick GEN5, Fibaro...), Zigbeefordomoticz. Nextion RGB Led Screen
dokho
Messages : 685
Inscription : 28 déc. 2014, 19:32

Re: TUTO Esp Easy + Nextion + Domoticz

Message par dokho »

Donc dans ton exemple il faut:

une image avec lampe éteinte et alarme éteinte
une image avec lampe allumée et alarme éteinte
une image avec lampe allumée et alarme allumée
une image avec lampe éteinte et alarme allumée

C'est bien ça ?

Ou il n'est possible de changer que l'image du crop en fonction de l'état de l'un ou de l'autre ?
Jeff
Messages : 1007
Inscription : 17 nov. 2016, 20:54
Localisation : Rennes (35)

Re: TUTO Esp Easy + Nextion + Domoticz

Message par Jeff »

Ou il n'est possible de changer que l'image du crop en fonction de l'état de l'un ou de l'autre ?
Oui, donc seulement 2 images : une tout éteint et une tout allumé. :)
Ce n'est pas l'image entière qui change mais seulement ce qui est dans le crop.
Version: 2023.1 sur VM Synology, docker Zwave Js UI (Z-stick GEN5, Fibaro...), Zigbeefordomoticz. Nextion RGB Led Screen
dokho
Messages : 685
Inscription : 28 déc. 2014, 19:32

Re: TUTO Esp Easy + Nextion + Domoticz

Message par dokho »

Ok, je pense voir le principe.

Par contre j'ai du mal à envoyer du texte via curl dans un script

Si je fais, dans un terminal,

Code : Tout sélectionner

curl 'http://192.168.X.XXX/control?cmd=NEXTION,tempatelier.txt="HELLO WORLD"'
ça fonctionne nickel, par contre si je met dans un script

Code : Tout sélectionner

os.execute('curl 'http://192.168.X.XXX/control?cmd=NEXTION,tempatelier.txt="HELLO WORLD"'')
ça ne fonctionne pas
Jeff
Messages : 1007
Inscription : 17 nov. 2016, 20:54
Localisation : Rennes (35)

Re: TUTO Esp Easy + Nextion + Domoticz

Message par Jeff »

C'est là qu'intervient pour moi node-red et mqtt.
Je récupère le topic domoticz et je cherche le msg.payload.name qui m'intéresse et je republie le topic que j'ai décidé pour le récupérer avec mqtt import. ;)

Voir tuto au dessus. De même je publie heure, date, meteo...

Je ne maîtrise pas assez curl, mais j'ai également beaucoup galérer avec du texte dans node-red pour autre chose.

Tu cherches à faire quoi ?
Version: 2023.1 sur VM Synology, docker Zwave Js UI (Z-stick GEN5, Fibaro...), Zigbeefordomoticz. Nextion RGB Led Screen
Répondre