TUTO Esp Easy + Nextion + Domoticz

Vos échanges, bricolages, idées et questions concernant l'ESP8266, les NodeMCU,Weemos, et consort
Répondre
Jeff
Messages : 791
Enregistré le : 17 nov. 2016, 20:54
Localisation : Rennes (35)

TUTO Esp Easy + Nextion + Domoticz

Message par Jeff »

Bonjour,

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" (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...)

Dashboard.jpg
Dashboard.jpg (43.11 Kio) Vu 1758 fois
Nextion_weather.png
Nextion_weather.png (243.02 Kio) Vu 1758 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 en cours et 14 champs de saisie dans le plugin.
ESP_Easy_mega_20200612_dev_ESP8266_4M1M.zip
(649.02 Kio) Téléchargé 65 fois
Branchement

Nextion-WeMos_TX_RX.jpg
Nextion-WeMos_TX_RX.jpg (60.69 Kio) Vu 1769 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) Vu 1772 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) Vu 1772 fois
log_ID.png
log_ID.png (92.1 Kio) Vu 1763 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) Vu 1767 fois
MQTT.png
MQTT.png (24.9 Kio) Vu 1767 fois
Editor_temperature.png
Editor_temperature.png (9.52 Kio) Vu 1767 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) Vu 1763 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) Vu 1758 fois
Fichiers joints
Config_plugin.png
Config_plugin.png (26.24 Kio) Vu 1769 fois
Modifié en dernier par Jeff le 02 sept. 2020, 21:30, modifié 22 fois.
Version: 4.9700; RFXCOM Rfxtrx433e ext/1007 ; Zwave (Z-stick GEN5, Fibaro...), Zigbee2MQTT.

deennoo
Messages : 4020
Enregistré le : 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
Enregistré le : 24 janv. 2017, 11:04
Localisation : Toulouse

Re: TUTO Esp Easy + Nextion + Domoticz

Message par ericd »

Merci pour tes infos

@+

Ericd

dokho
Messages : 588
Enregistré le : 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 : 588
Enregistré le : 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 : 791
Enregistré le : 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) Vu 8662 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) Vu 8662 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
Fichiers joints
calque2.png
calque2.png (15.23 Kio) Vu 8662 fois
Fichiers_nextion.zip
(216.37 Kio) Téléchargé 268 fois
Modifié en dernier par Jeff le 21 avr. 2019, 14:42, modifié 1 fois.
Version: 4.9700; RFXCOM Rfxtrx433e ext/1007 ; Zwave (Z-stick GEN5, Fibaro...), Zigbee2MQTT.

dokho
Messages : 588
Enregistré le : 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 : 791
Enregistré le : 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: 4.9700; RFXCOM Rfxtrx433e ext/1007 ; Zwave (Z-stick GEN5, Fibaro...), Zigbee2MQTT.

dokho
Messages : 588
Enregistré le : 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 : 791
Enregistré le : 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: 4.9700; RFXCOM Rfxtrx433e ext/1007 ; Zwave (Z-stick GEN5, Fibaro...), Zigbee2MQTT.

Répondre