SONOFF NsPanel : Tuto complet sous Tasmota & NxPanel

A l’aide !!!

J’ai rencontré plusieurs problèmes avec mon NsPanel et voici comment vous en sortir.

Problème de vitesse de communication entre l’ESP et le Nextion

Premièrement, le driver que j’avais déposé de fonctionnait pas complètement, il ne se passait rien j’ai compris que l’ESP ne communiquait pas avec le Nextion.
Pour communiquer ensembles, l’ESP et le Nextion utilisent un port série sur lequel ils se transmettent des informations. Par contre il faut qu’ils communiquent à la même vitesse, hors, pour une raison inconnue, le Nextion était passé sur une vitesse bien plus lente ! Le driver indiquant la vitesse de l’ESP, il était configuré à une vitesse qui n’est pas la bonne, ce n’est pas grave, nous allons corriger cela !

Pour ce faire, éditez le fichier autoexec.be avec un éditeur de texte (notepad suffit) et remplacer toutes les valeurs 115200 par 9600

A ce moment là vous pouvez de nouveau faire communiquer les deux. Par contre c’est beaucoup plus lent et ça engendre des problèmes de communication, vous pouvez voir apparaitre très souvent ce type de message dans le Topic Result :
{"nextion":"bytes('22666F726D6174223A20392C2022706964223A20322C202274797065223A2022...')"}

C’est tout simplement car l’ESP n’arrive pas à comprendre ce que lui envoi le Nextion sur le port serie !

Il faut donc repasser le Nextion sur la bonne vitesse ! (Merci à @seb821 pour l’astuce !)
Pour ce faire nous sommes obligés de passer par un Firmware du Nextion qui le fait repasser à la bonne vitesse.
Pour le flasher, rendez-vous sur l’interface de Tasmota, dans Consoles > Console puis tapez FlashNextion http://nspanel.pky.eu/test.tft

Cela va vous permettre d’afficher un écran blanc avec entre autres, un bouton qui permet de repasser à la vitesse 115200. Cliquez dessus, puis redémarrez le NsPanel.

Retournez sur Tasmota et dans Consoles > Console tapez installnxpanel comme tout à l’heure.
Cela va réinstaller de nouveau le bon Firmware.

N’oubliez pas ensuite de repasser votre driver à la bonne vitesse !!

Voilà pour cette interface NxPanel. Je suis maintenant passé sur l’interface d’origine avec Tasmota que je trouve plus jolie et plus fonctionnelle, je vais vous préparer un tuto avec pleins d’astuces :wink:

Merci d’avance pour vos remarques, ajustements, idées d’améliorations, ou même les remontées de coquilles ou fautes que vous voyez :wink:

Erreur 30014 au moment de la synchro wifi

ATTENTION, si vous voulez un jour restaurer votre NsPanel avec le firmware d’origine pour le faire fonctionner sous eWeLink, il faut absolument que vous restauriez le backup qui vient de votre propre NsPanel. Il contient son identifiant unique, et si vous restaurez le backup d’un autre NsPanel, vous aurez une erreur 30014 au moment de la synchro wifi. Impossible alors de le faire refonctionner sous eWeLink…

Le buzzer ne fonctionne plus correctement

Après la restauration d’un backup Tasmota, le buzzer ne fonctionne plus très bien, il ne fait pas des bip mais des petits bruits étranges.
Pour y remédier il suffit de réappliquer le template.
Allez dans Configuration > Configure other puis remplacer le template actuel par :
{"NAME":"NSPanel","GPIO":[0,0,0,0,3872,0,0,0,0,0,32,0,0,0,0,225,0,480,224,1,0,0,0,33,0,0,0,0,0,0,0,0,0,0,4736,0],"FLAG":0,"BASE":1,"CMND":"ADCParam1 2,11200,10000,3950 | Sleep 0 | BuzzerPWM 1"}

Validez, ça redémarre, et ça refonctionne !!

2 « J'aime »

Bonjour.

Un tutoriel comme je les affectionne càd didactique avec sources documentées.

Bravo.

1 « J'aime »

Déjà un grand merci pour ce super tutoriel très bien fait et qui permet vraiment de gagner du temps. Du coup cela m’a motivé à me lancer sur le NSPanel qui trainait depuis un moment dans un tiroir.

Voici quelques remarques que j’ai pu noter :

Je n’ai pas eu besoin de faire cela. De base l’écran était bien à 115200. J’ai cru comprendre que certains programmes pouvaient faire basculer l’écran en 9600. C’est notamment évoqué dans cette issue. On peut flasher le tft partagé avec la commande suivante dans Tasmota ce qui fait apparaître un bouton pour revenir en 115200 (flash testé mais pas le bouton): FlashNextion http://nspanel.pky.eu/test.tft

Je n’ai pas ce soucis a priori. Mais comme indiqué, c’est peut-être lié à la vitesse en 9600.

Pour information, on peut le faire sans souder comme expliqué dans cette vidéo. Ce n’est pas évident, mais avec un peu de patience on y arrive.

Je n’ai pas réussi à faire fonctionner cette commande, elle n’est pas prise en compte. Par contre la commande complète fonctionne.

Je l’ai fait avec un scénario et un bloc code, ça marche nickel.

Il faut que je me plonge dans les écrans secondaires maintenant mais c’est déjà un bon début :slightly_smiling_face:

Merci beaucoup @seb821 pour tes commentaires !

Je ne sais pas comment j’ai fait pour passer en 9600 du coup, mais j’ai flashé le tft que tu as partagé et ça fonctionne ! Je suis bien repassé en 115200 !

Je vais reflasher le bon tft de NxPanel et voir si j’ai encore mes problèmes de commandes qui passent ma !

Du coup j’étais parti sur le nextion d’origine sur mon deuxième NsPanel et j’ai réussi à faire fonctionner les écrans secondaires ! Je ferai un tuto aussi :wink:

Je vais modifier ici avec tes éléments du coup !!

Concernant le dim low 0, il fonctionne chez moi, après le délai d’attente pour basculer en mode dim, il s’éteint complètement.

Pour ton bout de code dans le scénario pour gérer les icones météo, si tu veux bien le partager je l’ajouterai dans le tuto :wink:

EDIT : Merci @seb821 !! Ca fonctionne !
Je n’ai plus de messages de ce type : {"nextion":"bytes('22666F726D6174223A20392C2022706964223A20322C202274797065223A2022...')"}

Et tout est bcp plus réactif !

Hello @seb821

J’ai adapté le tuto avec tout tes retours !
Merci encore !

Je vais maintenant m’attaquer à celui avec Tasmota et le tft d’origine :wink:

Super, merci.

Pour le scénario pour la météo, j’utilise un bloc code avec ces lignes (adaptation du script proposé) :

// Code météo
$numero_condition = cmd::byString('#[Météo][Météo XXX][Numéro condition]#')->execCmd();
$scenario->setLog('Numéro condition : '.$numero_condition);
switch ($numero_condition) {
  case "200": $code_meteo = "11d"; break;
  case "201": $code_meteo = "11d"; break;
  case "202": $code_meteo = "11d"; break;
  case "210": $code_meteo = "11d"; break;
  case "211": $code_meteo = "11d"; break;
  case "212": $code_meteo = "11d"; break;
  case "221": $code_meteo = "11d"; break;
  case "230": $code_meteo = "11d"; break;
  case "231": $code_meteo = "11d"; break;
  case "232": $code_meteo = "11d"; break;
  case "300": $code_meteo = "09d"; break;
  case "301": $code_meteo = "09d"; break;
  case "302": $code_meteo = "09d"; break;
  case "310": $code_meteo = "09d"; break;
  case "311": $code_meteo = "09d"; break;
  case "312": $code_meteo = "09d"; break;
  case "313": $code_meteo = "09d"; break;
  case "314": $code_meteo = "09d"; break;
  case "321": $code_meteo = "09d"; break;
  case "500": $code_meteo = "10d"; break;
  case "501": $code_meteo = "10d"; break;
  case "502": $code_meteo = "10d"; break;
  case "503": $code_meteo = "10d"; break;
  case "504": $code_meteo = "10d"; break;
  case "511": $code_meteo = "13d"; break;
  case "520": $code_meteo = "09d"; break;
  case "521": $code_meteo = "09d"; break;
  case "522": $code_meteo = "09d"; break;
  case "531": $code_meteo = "09d"; break;
  case "600": $code_meteo = "13d"; break;
  case "601": $code_meteo = "13d"; break;
  case "602": $code_meteo = "13d"; break;
  case "611": $code_meteo = "13d"; break;
  case "612": $code_meteo = "13d"; break;
  case "613": $code_meteo = "13d"; break;
  case "615": $code_meteo = "13d"; break;
  case "616": $code_meteo = "13d"; break;
  case "620": $code_meteo = "13d"; break;
  case "621": $code_meteo = "13d"; break;
  case "622": $code_meteo = "13d"; break;
  case "701": $code_meteo = "50d"; break;
  case "711": $code_meteo = "50d"; break;
  case "721": $code_meteo = "50d"; break;
  case "731": $code_meteo = "50d"; break;
  case "741": $code_meteo = "50d"; break;
  case "751": $code_meteo = "50d"; break;
  case "761": $code_meteo = "50d"; break;
  case "762": $code_meteo = "50d"; break;
  case "771": $code_meteo = "50d"; break;
  case "781": $code_meteo = "50d"; break;
  case "800": $code_meteo = "01d"; break;
  case "801": $code_meteo = "02d"; break;
  case "802": $code_meteo = "03d"; break;
  case "803": $code_meteo = "04d"; break;
  case "804": $code_meteo = "04d"; break;
}
$scenario->setLog('Code météo : '.$code_meteo);
$tags['#codeMeteo#'] = $code_meteo;
  
$scenario->setTags($tags);

Ensuite on récupère l’information avec #codeMeteo# dans le même scénario :

Hello @dcat

Merci pour ce tuto, ça me donne très très envie de remplacer mon esp en DIY à l’entrée.

Question : (j’avoue que je n’ai pas encore fouillé partout sur Commu et ailleurs) il y a au moins 3 NSPanel différents disponibles à la vente, NSPanel, NSPanel-US et NSPanel pro. On est d’accord que ce tuto s’adresse aux 2 premiers et que le pro est sous Android, donc très différent dans le fonctionnement ?
Le pro a l’air plus séduisant, surtout que je n’ai pas vraiment besoin des boutons physiques, tu as déjà un avis dessus ?

Attention, Pub. auto est là pour publier automatiquement sur le Broker au moment du changement de la valeur d’une commande dans le payload. Si la commande action est déclanché manuellement ou qu’il n’y pas de commande info dans le payload, Pub. auto ne servira à rien.

Bad

1 « J'aime »

A noter que le NSPanel pro possède son propre broker mqtt et un contrôleur zigbee.
Je pense déjà à en mettre 1 dans une residence secondaire, connecter les appareils zigbee dessus et attaquer le NSPAnel Pro via plugin-jmqtt à 400km de là avec mon Jeedom principal pour piloter les appareils zigbee … Plus besoin de Jeedom déporté

Norbert

1 « J'aime »

T’es un grand malade, je kiff !
Bon je vais me commander un NSPanel Pro !

Oui a refaire j’aurais pris aussi des NsPanel Pro car je trouve que c’est quand même de la grosse bidouille le résultat…

1 « J'aime »

Tu penses mettre un VPN entre tes deux logements ? Ou tu ouvres ton broker sur le net ? Filtrage ip ?

sans doute un tunnel SSH, mais je n’ai pas encore creuser

Si c’est de l’Android, il y a peut être moyen de faire un vrai tunnel VPN ou SSH depuis le NSPanel Pro lui-même (à vérifier et tester)

Bonjour,
Je viens de recevoir mon NS PANEL en version US.
J’ai suivi ce super tuto (merci @dcat ) , mais quand j’essaye de flasher avec le firmware US Version Landscape:

FlashNextion http://nspanel.pky.eu/lui-us-l-release.tft

Mais cela bloque à ce stade et cela n’avance pas.

Si vous avez une idée, je suis preneur.

Merci

Hello,

Ce tft est celui de lovelace UI. Il n’est pas compatible avec ce tuto, il est utilisable très facilement avec HomeAssistant mais pas Jeedom.
Je ne suis pas sur que tu puisse utiliser NxPanel avec un NsPanel US.
Les tft de NxPanel sont à cette adresse : Index of /nxpanel

Si tu veux un tuto qui fonctionne avec le NsPanel US tu peux suivre celui là, mais c’est avec l’interface d’origine : SONOFF NsPanel : Tuto complet sous Tasmota & écrans d’origine

Merci pour ces indications
Pour le moment j’ai surtout l’impression que l’écran ne communique plus avec tasmota. Surement a cause de la vitese du port serie.
J’ai essayé les liens pour le reinitialiser mais sans succes.
Aurais tu une procedure pour corriger ce probleme ?
Merci

@Flightman125 il suffit de suivre ce qui est expliqué dans la première rubrique de ce post :

Lis le attentivement (sans sauter de passage) et applique ce que j’explique, normalement tu devrais t’en sortir

Pour ce faire, éditez le fichier autoexec.be avec un éditeur de texte (notepad suffit) et remplacer toutes les valeurs 115200 par 9600

[…]

Pour ce faire nous sommes obligés de passer par un Firmware du Nextion qui le fait repasser à la bonne vitesse.
Pour le flasher, rendez-vous sur l’interface de Tasmota, dans Consoles > Console puis tapez FlashNextion http://nspanel.pky.eu/test.tft

Cela va vous permettre d’afficher un écran blanc avec entre autres, un bouton qui permet de repasser à la vitesse 115200. Cliquez dessus, puis redémarrez le NsPanel.

Quand je passe la vitesse à 9600, j’arrive bien à lancer FlashNextion http://nspanel.pky.eu/test.tft.
Par contre cela met une durée trés longue à progresser à cause de la vitesse.
Impossible par contre si je laisse 115 200 de lancer FlashNextion http://nspanel.pky.eu/test.tft.

Si je comprends bien , je dois donc rester en 9600 jusqu’à ce que le firmware soit flashé?
Merci

Oui c’est ça !

Merci,
Je viens de le faire directement avec l’adresse FlashNextion http://nspanel.pky.eu/test.tft mais aussi en l’hébergeant sur serveur web à la maison mais dans les deux cas (malgré une dizaine d’essais), vers 60% ça arrête le transfert…
Tu aurais pas une autre solution par hasard ? :wink: