Page 16 sur 24

Re: TUTO Esp Easy + Nextion + Domoticz

Publié : 13 déc. 2021, 22:09
par Jeff
Oui je connais la valeur local et global des données.

J'ai retravaillé l'ensemble de mise à jour de mes pages ce weekend, à chaque changement de page, j'envoie un topic update à nodered qui interroge domoticz et renvoi toutes les valeurs à jour, ca marche nickel j'ai enfin un écran bien debuggé.

Toi si tu envoies une valeur sur une page non affichée, si tu vas dessus, la valeur est instantanément visible et à jour ?
Vu depuis combien de temps je traine ce sujet, j'ai essayé beaucoup de chose.
Le resend données du plugin me renvoi mes commandes on ou off effectué en boucle.
Ma page température n'affiche les donnés qu'après l'intervalle du plugin

Re: TUTO Esp Easy + Nextion + Domoticz

Publié : 13 déc. 2021, 22:44
par dokho
Non, en effet si j'envoie des données à une page non affichée les données ne sont pas prises en compte ...

Il va falloir que j'intègre ça dans mon flow node red :?

Re: TUTO Esp Easy + Nextion + Domoticz

Publié : 13 déc. 2021, 22:56
par Jeff
Ca me rassure :) même si j'aurais aimé que ce soit plus simple.

Pour les donnés à afficher, un refresh déclenché par un topic par page, tout passe par nodered, une interrogation en http de domoticz et je renvoi la donnés vers le nextion.

Ca se complique pour les interrupteurs, idem sous nodered mais aussi des envois de commande multiples dans le On et Off de ces interrupteurs ( je mets plusieurs valeurs à jour parfois, car dans 2 pages différentes.

Code : Tout sélectionner

script://exec.sh /usr/bin/curl /domoticz/scripts/exec.sh --url "http://192.168.1.110/control?cmd=NEXTION,Lcuisine.pic=42 http://192.168.1.110/control?cmd=NEXTION,cuisine.pic=5"
Il me reste encore à affiner mes interrupteurs dimmable mais je sais faire.

Je suis assez content du résultat, code plus propre, je n'ai plus besoin du plugin MQTT et c'est plus réactif :D

Re: TUTO Esp Easy + Nextion + Domoticz

Publié : 14 déc. 2021, 16:27
par pronoob
Salut,

je n'ai pas encore mon nextion, et j'utilise un arduino

je ne comprends pas trop votre soucis de donnée pas mise à jour si envoyée sur une page non affichée.
ici ça fonctionne correctement (du moins avec le simulateur)

Re: TUTO Esp Easy + Nextion + Domoticz

Publié : 14 déc. 2021, 16:39
par dokho
De mon côté, si j'envoie via mqtt des données pour des champs texte (temp, consigne,...) vers une page qui n'est pas celle affiché au moment de l'envoi, les données ne sont pas prises en compte et donc non affichées/mises à jour lorsque j'affiche la page en question.

@Jeff : je vais procéder différemment je pense.
Dans nodered je vais écouter le topic domoticz/out et capter toutes les informations dont j'ai besoin, puis les stocker dans des variables.

Ensuite je vais, comme tu l'as fait, envoyer via mqtt un ordre d'update à chaque changement de page et c'est nodered qui enverra les données.

En faisant comme ça je me dis que je peux ré-utiliser les mêmes données pour plusieurs afficheurs.


Du coup je veux bien que tu m'explique comment tu envoie un update via mqtt lors des changements de page

Re: TUTO Esp Easy + Nextion + Domoticz

Publié : 14 déc. 2021, 20:07
par Jeff
Pour la mise des pages non affichées, les valeurs envoyées sur ces pages doivent êtres stockées et affichées lorsqu'on appelle cette page.

Il doit exister plein de méthode et c'est possible qu'on s'y prenne mal :?

La 1ere que j'utilisais était le plugin mqtt import, les données était visibles et à jour sous ce plugin sous espeasy mais elles ne sont affichées que sous l'écoulement de l'interval paramétrable sous le plugin nextion.
Si on met un temps très court pour cet interval le plugin rafraichit tout le temps les donnés et l'ESP est très sollicité. Il faut attendre ce temps pour voir les données à jour, c'est long et pas terrible.

La 2eme méthode est celle que j'utilise et qui donne pleine satisfaction pour moi.
Je le fais de tête, je ne suis pas chez moi.
Sous la page du nextion dans le 2eme onglet, je lance un faux idx avec la méthode de l'envoi d'une commande

Code : Tout sélectionner

print "|u,i50,n,s-3" // Send idx 50 and value -3 to ESPEasy
printh 0a
Après dans les rules, je lance un publish avec un topic du style : publish update/page2
Dans nodered, j'écoute le topic update/page2 et là je lance des requêtes d'interrogation de chacune de mes valeurs sous domoticz (temp, des On Off...) et je renvoi cette valeur ou un changement icône sur la page de mon nextion.
C'est quasi instantané.

Je vous posterai dans quelques jours des images et les commandes de tout ca.

Re: TUTO Esp Easy + Nextion + Domoticz

Publié : 14 déc. 2021, 20:11
par dokho
Je venais de trouver une méthode :)

Dans le plugin nextion tu coches "send to controler" (en l’occurrence le controler MQTT) et dans le paramétrage de chaque bouton (dans l'éditeur nextion) je coche "Send Component ID".

Ensuite j'écoute le topic NOM-DE-LECRAN/NEXTION/idx et quand je presse un bouton cela renvoi un idx unique. Reste à coder une fonction qui va bien.

Re: TUTO Esp Easy + Nextion + Domoticz

Publié : 14 déc. 2021, 20:16
par Jeff
Ce que tu dis c'est pour une action de commande en appuyant sur un icône ?
En fait @dokho, je ne sais pas à quel niveau tu en est, tu sais changer des états On/Off dans domoticz à partir de ton nextion ?

Re: TUTO Esp Easy + Nextion + Domoticz

Publié : 14 déc. 2021, 20:58
par dokho
En fait quand tu appuis sur n'importe quel élément (icône, texte,...) sur l'écran ça renvoi un idx (unique) sur le topic mqtt.

Sur cet écran là j'ai pas encore attaqué la partie "commandes" mais sur le petit que j'avais fait à l'époque je changeais les modes de mon chauffage ainsi que les températures de consignes depuis l'écran.

Re: TUTO Esp Easy + Nextion + Domoticz

Publié : 14 déc. 2021, 21:00
par padbol2002
Bonjour à tous

J'ai reussi a suivre le tuto de A a Z
c'est pour dire s'il est bien :D :D :D

Bon mon pb :
j'envoi via un navigateur :

Code : Tout sélectionner

http://192.168.1.191/control?cmd=nextion,temp.txt="19.0"
marche impec le nextion se met a jour

ensuite dans mon script lua de domoticz j'ai :

Code : Tout sélectionner

commandArray['OpenURL']="http://192.168.1.191/control?cmd=nextion,temp.txt="..otherdevices["Thermostat_Salon"]
	print(commandArray ['OpenURL']) -- pour vérifier l'url
j'obtient ceci ds le log :

Code : Tout sélectionner

Status: LUA: http://192.168.1.191/control?cmd=nextion,temp.txt=19.00
Status: EventSystem: Fetching URL http://192.168.1.191/control?cmd=nextion,temp.txt=19.00 after 0.2 seconds...
et ça ne se met pas a jour car il manque les " " grrrr comment les ajouter ?
merci
Julien