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.