
Hoy quería comenzar con uno de los tutoriales que más ganas tenía, el usar la pantalla Nextion que recibí para poder usarla en Home Assistant. Este es el primero de varios tutoriales, en los que paso a paso os enseñaré lo que voy aprendiendo con las pantallas para que podamos montar un interfaz atractivo para nuestro sistema.
Es cierto que Home Assistant permite usar un móvil o una tablet, pero, desde hace tiempo, quería poder usar una de estas pantallas para poder crear mi propio interfaz. Hasta el momento todo lo que he visto con ellas, me encantan.
Este tutorial está más pensado para que lo veáis en el vídeo de Youtube para haceros una idea y después os dejaré los recursos y código que voy usando. En los siguientes, será algo parecido, os enseño en vídeo cómo hacerlo y cómo funciona y os dejaré el código listo para que lo reutilicéis.
Vídeo del tutorial para usar las pantallas Nextion con ESPHome y Home Assistant
Para los que queréis empezar a jugar, os voy a dejar el código que habéis visto en pantalla, en el se trae los datos de un pequeño sensor y usa un switch.
Compra
Si no tenéis ninguno de los dispositivos, podéis mirar para comprar, tanto la pantalla como el ESP32:
Nextion Editor
Antes de nada, para poder trabajar con el editor de Nextion, necesitaréis bajarlo de aquí. Si estáis en Windows no tendréis problemas, si estáis en Linux, podéis usar Playonlinux para instalar la 0.53, aunque, pude llegar a instalar la 0.58. Si os interesa, pedidlo en los comentarios y busco el script que usé.
ESPHome
He usado un ESP32 para poder trabajar, aunque, se puede usar un ESP8266. Este es el código que he usado y que llevo para poder ver un valor de un sensor y manejar un interruptor:
esphome:
name: nextionesp32
platform: ESP32
board: esp-wrover-kit
wifi:
ssid: "WIFI"
password: "clave"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Nextion32 Fallback Hotspot"
password: ""
captive_portal:
# Enable logging
logger:
baud_rate: 0
# Enable Home Assistant API
api:
ota:
uart:
rx_pin: GPIO16
tx_pin: GPIO17
baud_rate: 9600
sensor:
- platform: homeassistant
entity_id: sensor.0x00158d0001f521ff_temperature
id: temperatura1
binary_sensor:
- platform: homeassistant
id: wcedu22
entity_id: switch.luz_wcedu
- platform: nextion
page_id: 0
component_id: 3
id: luz1
on_press:
then:
- homeassistant.service:
service: switch.toggle
data:
entity_id: switch.luz_wcedu
globals:
- id: first_page # First page of the display?
type: bool
restore_value: no
- id: display_on # Is display on?
type: bool
restore_value: no
display:
- platform: nextion
id: tft22
update_interval: 5s
lambda: |-
if (id(wcedu22).state) {
it.send_command_printf("luz1.pic=2");
} else {
it.send_command_printf("luz1.pic=1");
}
it.set_component_text_printf("temperatura","%.1f",id(temperatura1).state);En él, tendréis que cambiar algunas cosas como son:
- Datos de la WiFi
- sensor.0x00158d0001f521ff_temperature : Este es un sensor de mi sistema, usad otro del vuestro
- switch.luz_wcedu: es un interruptor de mi sistema, cambiadlo por algo vuestro
- Los IDs y nombres de vuestra pantalla Nextion
Una vez que cambiéis lo que hay que personalizar, debería poder funcionar. Si no os va, ya sabéis, podéis preguntar por los comentarios o en Telegram.
La entrada Home Assistant #48: Comenzamos la integración con las pantallas Nextion se publicó primero en Domótica en Casa.