[Article] Ecran tactile Nextion avec ESPHome : déporter vos commandes

Oui il faut créer un service qui appel une fonction lambda. Je n’ai pas trouvé de fonction qui réveille le nextion.

Ton lien est bon. Tu peux aussi voir les fonctions ici, mais ce sont les mêmes.
https://esphome.io/api/nextion_8h_source

As tu essayé d’appeler goto_page ? Quelque chose du genre :

api:
  services:
    - service: wakeup
      then:
        - lambda: 'id(esp_nextion)->goto_page(1);'

Mais je n’ai pas testé…

Salut à tous,

Bon finalement j’ai essayé plein de variante et celle ci fonctionne :

       - lambda: 'id(esp_nextion).sleep(0);'

Ca r’allume le Nextion.

Laborieux tout ça.

A+
Philippe

Excellent, bravo.
Tu allumes le nextion quand quelqu’un passe devant ? Il s’éteint ensuite après un délai ?
Tu passes par l’ESP directement ou par une automatisation sur HA ?

Salut,

Tu allumes le Nextion quand quelqu’un passe devant ? Il s’éteint ensuite après un délai ?

Oui le time out fonctionne comme avant, et le fait de forcer le sleep à 0 rallume l’écran comme si on le touchait.

Tu passes par l’ESP directement ou par une automatisation sur HA ?

Les deux mon capitaine !

Un sensor est sur le boitier, mais comme au début il ne fonctionnait pas j’ai utilisé d’autres sensor, et je suis passé par un script pour permettre le fonctionnement en parallèle.

Mon code si ça intéresse :

binary_sensor:

  - platform: gpio
    pin: 14
    name: "PIR Sensor"
    device_class: motion
    on_press:
      then:
        - script.execute: motionscript  

  - platform: homeassistant
    id: pir_steph
    entity_id: binary_sensor.0x2c1165fffee15a9d_occupancy         
    on_press:
      then:
        - script.execute: motionscript  

  - platform: homeassistant
    id: pir_phil
    entity_id: binary_sensor.0x8cf681fffe23a1a6_occupancy        
    on_press:
      then:
        - script.execute: motionscript  

Et le script :

script:

  - id: motionscript
    then:
       - lambda: 'id(esp_nextion).sleep(0);'

Sachant que j’ai gardé le code suivant dans le display pour rentrer en veille.

    touch_sleep_timeout: 180

Bon maintenant j’ai une autre question plus compliquée.

Quelqu’un a compris le fonctionnement des Waveform avec ESP home ? Je voudrais tracé une courbe d’historique mais je coince d’entrée.

Le code pour ajouter une valeur à une courbe (un point quoi) est le suivant d’aprés la doc :

         id(esp_nextion).add_waveform_data(1,1,t);

Où, dans la parenthèse, le premier entier est l’id du waveform, le second le channel dans ce waveform et t ma variable (entier également). Hors le premier argument doit être un entier, alors que les différents éléments du Nextion sont représentés par « page.id » donc ça ne fonctionne pas même si ça compile avec n’importe quel entier …

Une idée?

A+ Philippe

Top merci. Je rajouterai à l’occasion cet usage dans l’article (en te citant) si tu es d’accord. Tu as retenu quel capteur ?
On est d’accord que tu aurais pu ne laisser que ton premier appel, déclenché par le capteur sur le nextion, et donc sans passer par HA…

Pour les courbes, désolé, je n’ai pas utilisé et ne sais répondre.

Pas de soucis, moi j’ai gardé les trois, pas de soucis de cohabitation avec le script.

Oui celui du Nextion suffit amplement.

Par contre j’ai du refaire un boitier pour intégrer ce capteur.

A+ Philippe

1 « J'aime »

bonjour à tous!

je suis très intéressé par ce projet, mais visiblement, le nextion n’est plus en stock chez mes vendeurs favoris, avez vous d’autre ref (pas chère)?

sinon ma charmante épouse m’a rappellé que j’ai mon écran de la mort qui tue que je lui avais vendu pour une de mes imprimantes 3d, et forcement je ne m’en sers plus… (je crois qu’elle me taquine un peu)

c’est un mks ts35r j’ai du mal à trouver les spec mais j’ai troivé ça avec un lien sur les pdf de constructeur sur github:
https://imprimante-3d-service.com/fr/558-ecran-tactile-makerbase-mks-ts-35r.html

soyons honnête, ce n’est pas pour réutiliser cet écran, mais pour éviter de dormir dehors les prochaines semaines!

si quelqu’un a déjà vu passer une bidouille avec cette écran, mon orgueil de mal lui serait forte aise!

Hello,
Le Nextion 2.8 semble toujours dispo chez AliExpress (?)
https://fr.aliexpress.com/item/4000593543479.html

et bien merci, je ne l’avais pas vu lui! il vient d’être commandé, je vous embêterais plus tard pour le mise en œuvre! :sweat_smile:

1 « J'aime »

Bon et bien j’ai lu sur un forum que le Nextion n’accepte pas de tracer un graph sur une fenêtre inactive, c’est pour cela que le code ne tient pas compte de la fenêtre. On ne peut tracer que sur la fenêtre active.

Dommage.

1 « J'aime »

Bonjour,

Je rejoins le club de ceux qui ne peuvent pas mettre à jour le nextion OTA.

Le téléchargement se lance, arrive rapidement à 92% puis rame jusqu’à 99% (au moins 30 minutes) et erreur au démarrage.

La seule solution c’est de repasser par la carte SD, heureusement que j’ai laissé un trou dans mon boitier …

@ vingerha je ne trouve pas le discord.

A+

Bonsoir
je souhaiterai utiliser un ecran nextion pour gerer des lumières dans un premier temps
Je voudrais connaitre les valeurs a changer dans ces lignes de code

- platform: homeassistant
    id: ha_lum_plage
    entity_id: group.lumieres_plage
    on_state:
      then:
        lambda: |-
          if (id(ha_lum_plage).state) {
            id(esp_nextion).set_component_value("lumieres.bplage",1);
          } else {
            id(esp_nextion).set_component_value("lumieres.bplage",0);
          }          

  - platform: nextion
    page_id: 2
    component_id: 10
    id: nx_lum_plage
    on_press:
      then:
        if:
          condition:
            lambda: 'return id(ha_lum_plage).state;'
          then:
            - homeassistant.service:
                service: switch.turn_off
                data:
                  entity_id: switch.ipx800_spots_terrasse
            - homeassistant.service:
                service: switch.turn_off
                data:
                  entity_id: switch.ipx800_lumiere_escalier_plage
          else:
            - homeassistant.service:
                service: switch.turn_on
                data:
                  entity_id: switch.ipx800_spots_terrasse
            - homeassistant.service:
                service: switch.turn_on
                data:
                  entity_id: switch.ipx800_lumiere_escalier_plage

ensuite ces lignes de codes faut que je les inserent avant display?

esphome:
  name: esp-nextion

esp8266:
  board: d1

ota:

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

logger:
  baud_rate: 0

http_request:

uart:
  rx_pin: GPIO3
  tx_pin: GPIO01
  baud_rate: 9600

api:
  services:
    - service: update_tft
      then:
        - lambda: 'id(esp_nextion)->upload_tft();'

display:
  - platform: nextion
    id: esp_nextion
    update_interval: 60s   # Pas de réel besoin de rafraichissement
    touch_sleep_timeout: 180
    wake_up_page: 0
    tft_url: http://192.168.99.99:8123/local/nextion/nextion.tft
    brightness: 70%

Pour finir ou trouver ce que signifie les code en bleu? y’a t il une aide quelque part?

Tuto intro ESPHome

La documentation ESPHome

La partie sur le Nextion

Merci ceci m’a bien aidé
J’ai réussi pour les lumières à avoir 2 états allume/éteint sur le nextion, ça ce mets bien à jour si on active ailleurs.

J’ai voulu faire pareil pour l’ouverture du portail, mais le bouton dual state sur le nextion reste figé sur l’icône fermé, quelque soit l’état du portail ouvert ou fermé

Faut il faire comme les lumières où il y a autre chose?

1 « J'aime »

Oui tu peux et ça doit marcher, mais tu aura juste ouvert / fermé. Vérifie bien les états de retours dans HA a utiliser car ilsi ne seront pas on / off mais open / close,

Idéalement il faudrait un stop. Perso, pour le volet de ma piscine, j’ai 3 boutons : ouvrir, stop et fermer.

1 « J'aime »

Il y a quelque chose à remplacer pour open/close à la place de on off?

Dans les logs je releve un texte jaune, je suppose que c’est une erreur, savait d’ou provient elle?
elle apparait quand j’eteint la lumière

Bonjour, je suis entrain de faire la prise en main d’un écran nextion sous HA ESPHOME!
J’uilise un wemos miniD1.
Concernant la communication des wemos et nextion, c’est ok!
Problème pour afficher la valeur d’un sensor, le log m’affiche une erreur de décimal… et je ne trouve pas (j’ai bien essayer de réduire la veleur du sensor à 1 décimal mais rien)

Capture d’écran 2023-11-13 101837

J’utilise ce code pour tester l’affichage du sensor. j’ai préalablement créé sur nextion éditor une zone de texte pour recevoir sensor.

display:
  - platform: nextion
    id: nextion1
    uart_id: uart_0
    update_interval: 6s   # Pas de réel besoin de rafraichissement
    wake_up_page: 0
    brightness: 52%




sensor:
  - platform: homeassistant
    id: ha_temp_eau
    entity_id: sensor.0xa4c138942d309039_temperature
    on_value:
      then:
        lambda: |-
          id(nextion1).set_component_text_printf("main.tempeau","%.0f",id(ha_temp_eau).state); 

Merci d’avance pour le coup de main, car après plusieurs jours je manque d’inspiration!
J’ai lu que certain avait deja eu ce probleme, mais je n’ai pas vu les solutions…
:slight_smile:

Bonjour, je suis entrain de paramétrer un nextion sous esphome…
La liaison ha/esphome et l’esp32 semble ok.
J’arrive à envoyer une valeur d’entités sur le nextion,
Mais je n’arrive pas à créer un switch sur le nextion qui soit visible sous ha.
Voici la config, après avoir testé plusieurs versions et le log actuel…
Pourriez vous m’aider? :crazy_face::crazy_face:
IMG_0612
IMG_0611

J’ai un message d’esphome qui me dit que esphome n’a pas accès au service… ( j’ai créé un service qui marche sous ha…)

Regarde ici ( BOB a eu le même souci)

@+

2 « J'aime »