2022-02-08 21:07:21 +01:00
2022-02-08 11:50:46 +01:00
2022-02-08 21:07:21 +01:00
2022-02-07 19:49:36 +01:00

NSPanel Lovelance UI

This is a custom UI for the NSPanel, with HomeAssistant Lovelance UI Design. The general idea is that the Nextion Display cycles though a page counter and the esp32 tells the display what to do. If you are changeing the page the nextion display will send and event to the esp32 and it has to answer with the messages, that will update the current page with it's desired components. This enables easy changes, without touching the HMI Project.

Current State

It's currently possible to set the content of the pages through homeassistant/nodered. (Shutter and Lights supported) And the detail page for lights is working.

image

image

Halfway done upcoming pages :)

image

Tasmota

Use autoexec.be from tasmota folder like you would use with the stock tft file. You will need the java app from to flash the tft file, thanks a lot to @peepshow-21 https://github.com/peepshow-21/ns-flash

Driver behaves similar to the stock implementation, messages are published over mqtt.

See nodered example flow for my implementation. Pages on nspanel are generated from the array at the begin of the pages function in the flow:

image

Custom Protocol

55 BB [payload length] [payload] [crc] [crc]

Payload length contains the number of bytes of the payload.

CRC is "CRC-16 (MODBUS) Big Endian" calculated over the whole message

This protocol does not try to implement broken JSON Commands with a specified type (lol). Instead the commands are plain text commands with parameters.

Example for valid Message

This message has to be generated for the Message "1337" (1337 is not a valid command, this is just an example)

55 BB  04  31 33 33 37  5F 5B

Messages to Nextion Display

The following message should be implemented on all pages

wake screen:

wake

change the page type:

pageType,cardEntities

pageType,cardThermo

pageType,popupLight,Schreibtischlampe

cardEntities Page

The following message can be used to update the content on the cardEntities Page

entityUpdHeading,heading1337

entityUpd,id,iconId,nameOfEntity,type,optionalValue

entityUpd,1,1,Light1,light,0

entityUpd,2,0,Shutter2,shutter

entityUpd,3,0,dc,delete

entityUpd,4,3,Temperature,text,content

entityUpd,4,3,bt-name,button,bt-text

popupLight Page

entityUpdateDetail,1,100,78

cardThermo Page

entityUpd,name,currentTemp,destTemp,status,minTemp,maxTemp,stepTemp

Messages from Nextion Display

cardEntities Page

event,eventName,PageNumber,PageHeading,entityName,buttonId,actionName,optionalValue

event,pageOpen,0

event,buttonPress,1,tHeading,tEntityName,1,up

event,buttonPress,1,tHeading,tEntityName,1,down

event,buttonPress,1,tHeading,tEntityName,1,stop

event,buttonPress,1,tHeading,tEntityName,1,OnOff,1

event,buttonPress,1,tHeading,tEntityName,1,button

popupLight Page

event,pageOpenDetail,popupLight,Schreibtischlampe

cardThermo Page

event,pageOpen,0

event,tempUpd,pageNumber,entityName,temperature

Design Guidelines for Nextion HMI Project

Background Color is

  • RGB565: 6371 [18e3] (HEX: #1C1C1C, RGB: 28,28,28)

Source for Icons is the Material Design Font, used by HASPone https://github.com/HASwitchPlate/HASPone

Description
Custom Firmware for NsPanel with the design of HomeAssistant's lovelace UI in mind, works with Tasmota.
Readme GPL-3.0 675 MiB
Languages
TypeScript 60.1%
Python 23.1%
JavaScript 8.5%
PHP 7.1%
Berry 1.2%