# NSPanel Lovelance UI

# 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

set brightness of screensaver:

dimmode,0 - (screen off)
dimmode,100 - (screen on with full brightness)

set current time:

time,22 : 26

set current date:

date,?Di 24. Februar

set screensaver timeout (set time in ms limited from 50 to 65535:

timeout,15000

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*,*type*,*internalNameEntity*,*iconId*,*displayNameEntity*,*optionalValue*

entityUpd,1,light,light.entityName,1,Light1,0

entityUpd,2,shutter,cover.entityName,0,Shutter2

entityUpd,3,delete

entityUpd,4,text,sensor.entityName,3,Temperature,content

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

entityUpd,1,switch,switch.entityName,4,Switch1,0

### popupLight Page

entityUpdateDetail,*buttonState*,*sliderBrightnessPos*,*sliderColorTempPos*

entityUpdateDetail,1,100,78

entityUpdateDetail,1,100,disable

### cardThermo Page

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

## Messages from Nextion Display

### startup page

event,startup

### screensaver page

event,screensaverOpen

### 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*

# Icons IDs

ID | Icon
-- | ----
0  | ![window-open](https://raw.githubusercontent.com/Templarian/MaterialDesign-SVG/0aeb4d612644d80d9d1fe242f705f362985de5dc/svg/window-open.svg)
1  | ![lightbulb](https://raw.githubusercontent.com/Templarian/MaterialDesign-SVG/0aeb4d612644d80d9d1fe242f705f362985de5dc/svg/lightbulb.svg)  
2  | ![thermometer](https://raw.githubusercontent.com/Templarian/MaterialDesign-SVG/0aeb4d612644d80d9d1fe242f705f362985de5dc/svg/thermometer.svg)
3  | ![gesture-tap-button](https://raw.githubusercontent.com/Templarian/MaterialDesign-SVG/0aeb4d612644d80d9d1fe242f705f362985de5dc/svg/gesture-tap-button.svg)
4  | ![flash](https://raw.githubusercontent.com/Templarian/MaterialDesign-SVG/0aeb4d612644d80d9d1fe242f705f362985de5dc/svg/flash.svg)


# 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

