Compare commits
288 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
787f337220 | ||
|
|
44aaea74ec | ||
|
|
4a346ce2d2 | ||
|
|
4ead4382a2 | ||
|
|
1e64e134f9 | ||
|
|
68190ece4b | ||
|
|
81d0bcf304 | ||
|
|
94364d711e | ||
|
|
2953942fbd | ||
|
|
51173352d2 | ||
|
|
1bec2b1160 | ||
|
|
4921453a1b | ||
|
|
95a4447eeb | ||
|
|
350b3f4ca7 | ||
|
|
a8172a1b06 | ||
|
|
df10d09736 | ||
|
|
4f31326b8e | ||
|
|
f0e557b5e4 | ||
|
|
80d19b1da1 | ||
|
|
df0855862f | ||
|
|
d23fe9616c | ||
|
|
76fee43d3b | ||
|
|
e8fd5e2020 | ||
|
|
89faeb3ec1 | ||
|
|
a006af2654 | ||
|
|
4ea23c7cf5 | ||
|
|
1e7ead8e46 | ||
|
|
d88290474e | ||
|
|
75f17f0d3e | ||
|
|
8a21f88df9 | ||
|
|
5a01431670 | ||
|
|
7c90677d99 | ||
|
|
fe65530eb5 | ||
|
|
ecd806b1c5 | ||
|
|
72e59947b6 | ||
|
|
8869eb2f67 | ||
|
|
c7c54261cb | ||
|
|
27185ea88c | ||
|
|
bfe2c65bfd | ||
|
|
45dafc3d0d | ||
|
|
c9c31bba57 | ||
|
|
485e5cc8d2 | ||
|
|
175c927ee8 | ||
|
|
4392bf251b | ||
|
|
9616ea4c8f | ||
|
|
2a9162e809 | ||
|
|
df976b0a90 | ||
|
|
220b5fb02b | ||
|
|
a0a0d16af7 | ||
|
|
f97b298d00 | ||
|
|
6feba8a56d | ||
|
|
0ff61a2e4a | ||
|
|
aee6e7bb57 | ||
|
|
602a58cc40 | ||
|
|
5e45641687 | ||
|
|
8b2beec50c | ||
|
|
3278de673a | ||
|
|
3cf5fb3eeb | ||
|
|
d53a34b83f | ||
|
|
e4f0dba8fa | ||
|
|
3ea33a6dfa | ||
|
|
6b11ffb7cf | ||
|
|
3047204272 | ||
|
|
61af338a96 | ||
|
|
729414944b | ||
|
|
22dbd2814b | ||
|
|
44836d1e4d | ||
|
|
881c50dd1f | ||
|
|
ce7dfb1423 | ||
|
|
c45bd4057f | ||
|
|
3401340563 | ||
|
|
7f7d496beb | ||
|
|
c7ec9f97b7 | ||
|
|
3c58a29e73 | ||
|
|
7fd5658630 | ||
|
|
81f6783ca1 | ||
|
|
cf430fc1a8 | ||
|
|
7f6c9c696b | ||
|
|
7580a38b4f | ||
|
|
14532444bc | ||
|
|
f2a424027d | ||
|
|
f038eaed87 | ||
|
|
3f00773927 | ||
|
|
7e63a4cb18 | ||
|
|
e6fd475947 | ||
|
|
1869f8023d | ||
|
|
860f5ddbba | ||
|
|
218ef94c9c | ||
|
|
730e0acd99 | ||
|
|
c8afa129b5 | ||
|
|
ee0c21128d | ||
|
|
1aed46b71f | ||
|
|
4e38a928fc | ||
|
|
d58ba87dbb | ||
|
|
640e245cf8 | ||
|
|
f056dace88 | ||
|
|
3211f44770 | ||
|
|
bd5b1303f2 | ||
|
|
8ff0cad379 | ||
|
|
fdcd37c6d0 | ||
|
|
6a464325d7 | ||
|
|
3af0c20670 | ||
|
|
7ee10d4ca6 | ||
|
|
884c8d91e6 | ||
|
|
07b8e99b01 | ||
|
|
d74b70f864 | ||
|
|
e70fcd54eb | ||
|
|
ea5b80e3b8 | ||
|
|
b5cd83240f | ||
|
|
7d241d1400 | ||
|
|
ee2e1d53d2 | ||
|
|
36e0344345 | ||
|
|
eb6eebfd46 | ||
|
|
0de7850c39 | ||
|
|
5f1d2b9d10 | ||
|
|
0abd5531cb | ||
|
|
0fdcd088ec | ||
|
|
29df75263b | ||
|
|
5035b89956 | ||
|
|
9de5abff25 | ||
|
|
a113e0cd43 | ||
|
|
a2f5e69b76 | ||
|
|
0e41a87659 | ||
|
|
f6a6a7adb0 | ||
|
|
8abfee7b54 | ||
|
|
70038014a2 | ||
|
|
268c6a7e23 | ||
|
|
133165e79e | ||
|
|
99f2b2815d | ||
|
|
d6f0958652 | ||
|
|
6704e320da | ||
|
|
d0d09b93a4 | ||
|
|
155ab33086 | ||
|
|
55ed836400 | ||
|
|
6ac6a25803 | ||
|
|
26844cd290 | ||
|
|
7dc0f49809 | ||
|
|
71cd913135 | ||
|
|
dfa3ee901a | ||
|
|
f7131aaca0 | ||
|
|
fefb1374fd | ||
|
|
8f5165bd1b | ||
|
|
94a51da6fe | ||
|
|
e422a158ca | ||
|
|
b43d83291b | ||
|
|
e751938cdd | ||
|
|
b8321807dc | ||
|
|
3a42c12c00 | ||
|
|
d552fb458b | ||
|
|
a7b96d8582 | ||
|
|
18f188bb32 | ||
|
|
f44d3fd8d1 | ||
|
|
a0b8697a4f | ||
|
|
de8f463968 | ||
|
|
6642a46a04 | ||
|
|
0b856cbb83 | ||
|
|
e41c02e883 | ||
|
|
6f3dc4a010 | ||
|
|
d46eecc57c | ||
|
|
7223103905 | ||
|
|
547338c5b1 | ||
|
|
811aca8cfa | ||
|
|
0465a9eb8b | ||
|
|
45907e1ce5 | ||
|
|
3ff82ef8cd | ||
|
|
5f6cc373fe | ||
|
|
4801f6c6b9 | ||
|
|
02b4f6e178 | ||
|
|
b0161d41f8 | ||
|
|
d1702ccacf | ||
|
|
281be927a7 | ||
|
|
c352047991 | ||
|
|
c058fd4fb1 | ||
|
|
e4e5cb0f51 | ||
|
|
da611e384a | ||
|
|
5292bbff8b | ||
|
|
a22311c4e8 | ||
|
|
0d250fb56b | ||
|
|
5ba5d2fb08 | ||
|
|
51170c514d | ||
|
|
53cf4f1371 | ||
|
|
6ab6892f5b | ||
|
|
a38948ad2f | ||
|
|
0f56e859db | ||
|
|
365f863fc2 | ||
|
|
cf2e648a21 | ||
|
|
b7c077faad | ||
|
|
44d65c3cd7 | ||
|
|
069cece05e | ||
|
|
276524686a | ||
|
|
a46b3ad20b | ||
|
|
295096a9d7 | ||
|
|
0c6b994161 | ||
|
|
63e1ab4947 | ||
|
|
9ec2bac284 | ||
|
|
6fdbec1486 | ||
|
|
f11215c097 | ||
|
|
7ec5bb6a04 | ||
|
|
aae9bd8d8a | ||
|
|
cdf980ee8f | ||
|
|
7b23050791 | ||
|
|
faaa698e46 | ||
|
|
4b5c10a68e | ||
|
|
b00720d465 | ||
|
|
c4cf3049b2 | ||
|
|
f7e76bdbd8 | ||
|
|
4294fb39b2 | ||
|
|
eb2f810161 | ||
|
|
17e11063e3 | ||
|
|
70e2f724f7 | ||
|
|
f3787c812a | ||
|
|
a056a13f0b | ||
|
|
13d5b7a1d2 | ||
|
|
2c8a45153b | ||
|
|
be12633af1 | ||
|
|
81e4149b11 | ||
|
|
4b98f4a80a | ||
|
|
d83f37962d | ||
|
|
33b0d0674a | ||
|
|
b7f2c18c85 | ||
|
|
cda0e0c1d6 | ||
|
|
42eb9b5d71 | ||
|
|
35be40fb93 | ||
|
|
1d5c40d7a8 | ||
|
|
c1ea2e1810 | ||
|
|
f9562d495a | ||
|
|
58ad89ee4e | ||
|
|
b4a0800929 | ||
|
|
e27c92ef0e | ||
|
|
936c152ca6 | ||
|
|
fadd725662 | ||
|
|
ab5d30d0ce | ||
|
|
12ecc30e1f | ||
|
|
985cf69f0b | ||
|
|
ffa9deaf54 | ||
|
|
8613208b5f | ||
|
|
7b1bbb704a | ||
|
|
5acbdef022 | ||
|
|
96f855e930 | ||
|
|
c504ade7d4 | ||
|
|
5941b6dab4 | ||
|
|
33416b498c | ||
|
|
beb8941c80 | ||
|
|
33d8487adf | ||
|
|
cb5e9a2afe | ||
|
|
802a089c16 | ||
|
|
edad480e4f | ||
|
|
6181cbca97 | ||
|
|
572fb9e934 | ||
|
|
52dabed6ee | ||
|
|
d12d8fbd86 | ||
|
|
b0d57e63e3 | ||
|
|
baf3ff4e95 | ||
|
|
c061c0bae1 | ||
|
|
797c7d1a32 | ||
|
|
b1b63b11cd | ||
|
|
2ac8305eff | ||
|
|
eb9d9e0f1e | ||
|
|
9a1b447087 | ||
|
|
7fb8480138 | ||
|
|
ad26272524 | ||
|
|
147cf0f497 | ||
|
|
fa08f6b54a | ||
|
|
0f2d5fbd29 | ||
|
|
d645f4c02e | ||
|
|
f0af3f1562 | ||
|
|
b78699c9d5 | ||
|
|
c3f2ddd499 | ||
|
|
6f962ebfd0 | ||
|
|
7f768ced45 | ||
|
|
37e287d253 | ||
|
|
298e67a29d | ||
|
|
f1af69581e | ||
|
|
351b84ad96 | ||
|
|
e050bce77e | ||
|
|
01de27059d | ||
|
|
7407a2841b | ||
|
|
2f1a947cfc | ||
|
|
f26e5e33cc | ||
|
|
5a040cbd8e | ||
|
|
d2c383ef82 | ||
|
|
ffc89d07e9 | ||
|
|
2bae66f6fe | ||
|
|
09aaabf4c5 | ||
|
|
5de8c739f8 | ||
|
|
1220715e9b | ||
|
|
8cb194b3b9 | ||
|
|
dd4f6c3b9e |
13
.github/FUNDING.yml
vendored
Normal file
13
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# These are supported funding model platforms
|
||||||
|
|
||||||
|
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||||
|
patreon: # Replace with a single Patreon username
|
||||||
|
open_collective: # Replace with a single Open Collective username
|
||||||
|
ko_fi: # Replace with a single Ko-fi username
|
||||||
|
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||||
|
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||||
|
liberapay: # Replace with a single Liberapay username
|
||||||
|
issuehunt: # Replace with a single IssueHunt username
|
||||||
|
otechie: # Replace with a single Otechie username
|
||||||
|
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
||||||
|
custom: https://www.paypal.com/donate/?hosted_button_id=S974SWQMB8PB2
|
||||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,3 +1,6 @@
|
|||||||
# Ignore Mac DS_Store files
|
# Ignore Mac DS_Store files
|
||||||
.DS_Store
|
.DS_Store
|
||||||
**/.DS_Store
|
**/.DS_Store
|
||||||
|
|
||||||
|
# Ignore IntelliJ IDEA project directory
|
||||||
|
.idea
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
# NSPanel Custom with HA Blueprint
|
# NSPanel Custom with HA Blueprint
|
||||||
|
|
||||||
|
*You use our NSPanel version and are satisfied with it? Then we would be very happy about a donation to support our project.*
|
||||||
|
|
||||||
[](https://www.paypal.com/donate/?hosted_button_id=S974SWQMB8PB2)
|
[](https://www.paypal.com/donate/?hosted_button_id=S974SWQMB8PB2)
|
||||||
|
|
||||||
[](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgithub.com%2FBlackymas%2FNSPanel_HA_Blueprint%2Fblob%2Fmain%2Fnspanel_blueprint.yaml)
|
[](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgithub.com%2FBlackymas%2FNSPanel_HA_Blueprint%2Fblob%2Fmain%2Fnspanel_blueprint.yaml)
|
||||||
@@ -14,7 +16,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l
|
|||||||
|
|
||||||
📕 Full documentation and installation is available here [NSPanel Configuration, Setup and HowTo](https://github.com/Blackymas/NSPanel_HA_Blueprint/wiki).
|
📕 Full documentation and installation is available here [NSPanel Configuration, Setup and HowTo](https://github.com/Blackymas/NSPanel_HA_Blueprint/wiki).
|
||||||
|
|
||||||
📌 Step by Step - [Setup Video](https://www.youtube.com/watch?v=3afPFg6kUdc)
|
📌 Step by Step - [Setup and Overview Video´s](https://github.com/Blackymas/NSPanel_HA_Blueprint/wiki)
|
||||||
|
|
||||||
🚀 How to create "Issues" when I have a problem [WIKI HowTo](https://github.com/Blackymas/NSPanel_HA_Blueprint/wiki)
|
🚀 How to create "Issues" when I have a problem [WIKI HowTo](https://github.com/Blackymas/NSPanel_HA_Blueprint/wiki)
|
||||||
|
|
||||||
@@ -27,7 +29,8 @@ The goal was to create a version that allows everyone to use the NSpanel fully l
|
|||||||
🙋 WE ARE LOOKING FOR YOU! _**We are always looking for people who would like to support this project. We are looking for help with "programming new features, writing documentation or translating documentation to EN. If you are interested then please contact us :)**_
|
🙋 WE ARE LOOKING FOR YOU! _**We are always looking for people who would like to support this project. We are looking for help with "programming new features, writing documentation or translating documentation to EN. If you are interested then please contact us :)**_
|
||||||
|
|
||||||
## NSPanel:
|
## NSPanel:
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||

|

|
||||||

|

|
||||||
|
|||||||
BIN
custom_configuration/OLD NSPanel version/OLD_nspanel_blank.tft
Normal file
BIN
custom_configuration/OLD NSPanel version/OLD_nspanel_blank.tft
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
custom_configuration/nspanel_blank.HMI
Normal file
BIN
custom_configuration/nspanel_blank.HMI
Normal file
Binary file not shown.
Binary file not shown.
10787
nspanel_blueprint.yaml
10787
nspanel_blueprint.yaml
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
|
|
||||||
##### ADVANCED CONFIGURATION - activate only when you know what you do ##############################
|
##### ADVANCED CONFIGURATION - activate only when you know what you do ##############################
|
||||||
# substitutions:
|
# substitutions:
|
||||||
# ## usage of secrets-file ## -> comment in ###### Change ME ######
|
# ## usage of secrets-file ## -> comment in ###### Change ME ######
|
||||||
# device_name: "nspanel-name" # Wird im Blueprint benötigt!
|
# device_name: "nspanel-name" # Wird im Blueprint benötigt!
|
||||||
# wifi_ssid: !secret nspanel_wifi_ssid # add in your esphome secrets file.
|
# wifi_ssid: !secret nspanel_wifi_ssid # add in your esphome secrets file.
|
||||||
@@ -36,7 +36,7 @@ wifi:
|
|||||||
ssid: ${wifi_ssid}
|
ssid: ${wifi_ssid}
|
||||||
password: ${wifi_password}
|
password: ${wifi_password}
|
||||||
power_save_mode: none
|
power_save_mode: none
|
||||||
##### advanced config - uncomment to use static IP-Config #####
|
##### advanced config - uncomment to use static IP-Config #####
|
||||||
# manual_ip:
|
# manual_ip:
|
||||||
# static_ip: ${ip}
|
# static_ip: ${ip}
|
||||||
# gateway: ${gw}
|
# gateway: ${gw}
|
||||||
@@ -49,15 +49,19 @@ wifi:
|
|||||||
password: ${wifi_password}
|
password: ${wifi_password}
|
||||||
|
|
||||||
##### Functionality for the Nextion display #####
|
##### Functionality for the Nextion display #####
|
||||||
external_components:
|
# external_components:
|
||||||
- source: github://pr#2956
|
# - source: github://pr#2956
|
||||||
components: [nextion]
|
# components: [nextion]
|
||||||
refresh: 1h
|
# refresh: 1h
|
||||||
|
|
||||||
##### ESPHOME CONFIGURATION #####
|
##### ESPHOME CONFIGURATION #####
|
||||||
esphome:
|
esphome:
|
||||||
name: ${device_name}
|
name: ${device_name}
|
||||||
min_version: 2022.10.2
|
min_version: 2022.10.2
|
||||||
|
on_boot:
|
||||||
|
priority: 601
|
||||||
|
then:
|
||||||
|
- lambda: id(disp1).send_command_printf("DRAKJHSUYDGBNCJHGJKSHBDN");
|
||||||
|
|
||||||
##### TYPE OF ESP BOARD #####
|
##### TYPE OF ESP BOARD #####
|
||||||
esp32:
|
esp32:
|
||||||
@@ -70,13 +74,13 @@ web_server:
|
|||||||
auth:
|
auth:
|
||||||
username: admin
|
username: admin
|
||||||
password: ${wifi_password}
|
password: ${wifi_password}
|
||||||
##### advanced config - change to use web_password #####
|
##### advanced config - change to use web_password #####
|
||||||
# password: ${web_password}
|
# password: ${web_password}
|
||||||
|
|
||||||
##### OTA PASSWORD #####
|
##### OTA PASSWORD #####
|
||||||
ota:
|
ota:
|
||||||
password: ${wifi_password}
|
password: ${wifi_password}
|
||||||
##### advanced config - change to use ota_password #####
|
##### advanced config - change to use ota_password #####
|
||||||
# password: ${ota_password}
|
# password: ${ota_password}
|
||||||
safe_mode: true
|
safe_mode: true
|
||||||
reboot_timeout: 3min
|
reboot_timeout: 3min
|
||||||
@@ -107,16 +111,26 @@ uart:
|
|||||||
baud_rate: 115200
|
baud_rate: 115200
|
||||||
id: tf_uart
|
id: tf_uart
|
||||||
|
|
||||||
###### REBOOT BUTTON #####
|
##### START - BUTTON CONFIGURATION #####
|
||||||
button:
|
button:
|
||||||
|
###### REBOOT BUTTON #####
|
||||||
- platform: restart
|
- platform: restart
|
||||||
name: ${device_name} Restart
|
name: ${device_name} Restart
|
||||||
id: restart_nspanel
|
id: restart_nspanel
|
||||||
|
|
||||||
|
##### UPDATE TFT DISPLAY #####
|
||||||
|
- platform: template
|
||||||
|
name: ${device_name} Update TFT display
|
||||||
|
icon: mdi:file-sync
|
||||||
|
id: tft_update
|
||||||
|
entity_category: config
|
||||||
|
on_press:
|
||||||
|
- delay: 16ms
|
||||||
|
- lambda: id(disp1).upload_tft();
|
||||||
|
|
||||||
##### START - API CONFIGURATION #####
|
##### START - API CONFIGURATION #####
|
||||||
api:
|
api:
|
||||||
##### advanced config - activate to use api_password #####
|
##### advanced config - activate to use api_password #####
|
||||||
# password: ${api_password}
|
# password: ${api_password}
|
||||||
services:
|
services:
|
||||||
|
|
||||||
@@ -132,7 +146,7 @@ api:
|
|||||||
then:
|
then:
|
||||||
- lambda: 'id(disp1)->set_tft_url(url.c_str());'
|
- lambda: 'id(disp1)->set_tft_url(url.c_str());'
|
||||||
- lambda: 'id(disp1)->upload_tft();'
|
- lambda: 'id(disp1)->upload_tft();'
|
||||||
|
|
||||||
##### Service to send a command "printf" directly to the display #####
|
##### Service to send a command "printf" directly to the display #####
|
||||||
- service: send_command_printf
|
- service: send_command_printf
|
||||||
variables:
|
variables:
|
||||||
@@ -161,7 +175,7 @@ api:
|
|||||||
- lambda: 'id(disp1).set_component_value(component.c_str(), message);'
|
- lambda: 'id(disp1).set_component_value(component.c_str(), message);'
|
||||||
|
|
||||||
##### Service to send a command "hide componente" directly to the display #####
|
##### Service to send a command "hide componente" directly to the display #####
|
||||||
- service: send_command_hide
|
- service: send_command_hide ### unused ###
|
||||||
variables:
|
variables:
|
||||||
component: string
|
component: string
|
||||||
then:
|
then:
|
||||||
@@ -170,7 +184,7 @@ api:
|
|||||||
- lambda: 'id(disp1).hide_component(component.c_str());'
|
- lambda: 'id(disp1).hide_component(component.c_str());'
|
||||||
|
|
||||||
##### Service to send a command "show componente" directly to the display #####
|
##### Service to send a command "show componente" directly to the display #####
|
||||||
- service: send_command_show
|
- service: send_command_show ### unused ###
|
||||||
variables:
|
variables:
|
||||||
component: string
|
component: string
|
||||||
then:
|
then:
|
||||||
@@ -178,6 +192,13 @@ api:
|
|||||||
switch.is_on: nextion_init
|
switch.is_on: nextion_init
|
||||||
- lambda: 'id(disp1).show_component(component.c_str());'
|
- lambda: 'id(disp1).show_component(component.c_str());'
|
||||||
|
|
||||||
|
##### Service to send a command "show ALL componente" directly to the display #####
|
||||||
|
- service: send_command_show_all ### unused ###
|
||||||
|
then:
|
||||||
|
- wait_until:
|
||||||
|
switch.is_on: nextion_init
|
||||||
|
- lambda: 'id(disp1).show_component("255");'
|
||||||
|
|
||||||
##### Service to send a command "font color" directly to the display #####
|
##### Service to send a command "font color" directly to the display #####
|
||||||
- service: send_command_font_color
|
- service: send_command_font_color
|
||||||
variables:
|
variables:
|
||||||
@@ -187,7 +208,7 @@ api:
|
|||||||
- wait_until:
|
- wait_until:
|
||||||
switch.is_on: nextion_init
|
switch.is_on: nextion_init
|
||||||
- lambda: 'id(disp1).set_component_font_color(component.c_str(), message);'
|
- lambda: 'id(disp1).set_component_font_color(component.c_str(), message);'
|
||||||
|
|
||||||
##### Service to send a command "background color" directly to the display #####
|
##### Service to send a command "background color" directly to the display #####
|
||||||
- service: send_command_background_color
|
- service: send_command_background_color
|
||||||
variables:
|
variables:
|
||||||
@@ -229,6 +250,16 @@ api:
|
|||||||
id(notification_text).publish_state("");
|
id(notification_text).publish_state("");
|
||||||
- switch.turn_off: notification_unread
|
- switch.turn_off: notification_unread
|
||||||
|
|
||||||
|
##### Service to set entity-information for settings-page(s)
|
||||||
|
- service: set_settings_entity
|
||||||
|
variables:
|
||||||
|
entity: string
|
||||||
|
then:
|
||||||
|
- wait_until:
|
||||||
|
switch.is_on: nextion_init
|
||||||
|
- lambda: |-
|
||||||
|
id(settings_entity).publish_state(entity.c_str());
|
||||||
|
|
||||||
##### Service to play a rtttl tones #####
|
##### Service to play a rtttl tones #####
|
||||||
# Example tones : https://codebender.cc/sketch:109888#RTTTL%20Songs.ino
|
# Example tones : https://codebender.cc/sketch:109888#RTTTL%20Songs.ino
|
||||||
- service: play_rtttl
|
- service: play_rtttl
|
||||||
@@ -236,7 +267,18 @@ api:
|
|||||||
song_str: string
|
song_str: string
|
||||||
then:
|
then:
|
||||||
- rtttl.play:
|
- rtttl.play:
|
||||||
rtttl: !lambda 'return song_str;'
|
rtttl: !lambda 'return song_str;'
|
||||||
|
|
||||||
|
# Service to show a QR code on the display (ex. for WiFi password)
|
||||||
|
- service: qr_code
|
||||||
|
variables:
|
||||||
|
qrdata: string
|
||||||
|
then:
|
||||||
|
- wait_until:
|
||||||
|
switch.is_on: nextion_init
|
||||||
|
- lambda: |-
|
||||||
|
id(disp1).send_command_printf("page qrcode");
|
||||||
|
id(disp1).set_component_text_printf("qrcode.qrcode_value", "%s", qrdata.c_str());
|
||||||
|
|
||||||
#### Service to send thermostat cycle state ####
|
#### Service to send thermostat cycle state ####
|
||||||
- service: send_thermostat_cycle_state
|
- service: send_thermostat_cycle_state
|
||||||
@@ -247,126 +289,12 @@ api:
|
|||||||
switch.is_on: nextion_init
|
switch.is_on: nextion_init
|
||||||
- lambda: |-
|
- lambda: |-
|
||||||
//ESP_LOGD("nextion", "thermostat sendig value %f", value);
|
//ESP_LOGD("nextion", "thermostat sendig value %f", value);
|
||||||
int left=16; // 16 is empty left.
|
int v = int(2 * std::min(std::max(value - 13.5, 0.0), 5.0));
|
||||||
int mid=17; // 17 is empty mid.
|
int left = v + (v ? 19 : 16); // 16 is empty left.
|
||||||
int right=18; // 18 is empty right.
|
v = int(2 * std::min(std::max(value - 18.0, 0.0), 4.0));
|
||||||
if (value < 13.5) {
|
int mid = v + (v ? 29 : 17); // 17 is empty mid.
|
||||||
left=16;
|
v = int(2 * std::min(std::max(value - 21.5, 0.0), 5.5));
|
||||||
mid=17;
|
int right = v + (v ? 37 : 18); // 18 is empty right.
|
||||||
right=18;
|
|
||||||
} else if (value >= 13.5 and value < 14) {
|
|
||||||
left=19;
|
|
||||||
mid=17;
|
|
||||||
right=18;
|
|
||||||
} else if (value >= 14 and value < 14.5) {
|
|
||||||
left=20;
|
|
||||||
mid=17;
|
|
||||||
right=18;
|
|
||||||
} else if (value >= 14.5 and value < 15) {
|
|
||||||
left=21;
|
|
||||||
mid=17;
|
|
||||||
right=18;
|
|
||||||
} else if (value >= 15 and value < 15.5) {
|
|
||||||
left=22;
|
|
||||||
mid=17;
|
|
||||||
right=18;
|
|
||||||
} else if (value >= 15.5 and value < 16) {
|
|
||||||
left=23;
|
|
||||||
mid=17;
|
|
||||||
right=18;
|
|
||||||
} else if (value >= 16 and value < 16.5) {
|
|
||||||
left=24;
|
|
||||||
mid=17;
|
|
||||||
right=18;
|
|
||||||
} else if (value >= 16.5 and value < 17) {
|
|
||||||
left=25;
|
|
||||||
mid=17;
|
|
||||||
right=18;
|
|
||||||
} else if (value >= 17 and value < 17.5) {
|
|
||||||
left=26;
|
|
||||||
mid=17;
|
|
||||||
right=18;
|
|
||||||
} else if (value >= 17.5 and value < 18) {
|
|
||||||
left=27;
|
|
||||||
mid=17;
|
|
||||||
right=18;
|
|
||||||
} else if (value >= 18 and value < 18.5) {
|
|
||||||
left=28;
|
|
||||||
mid=17;
|
|
||||||
right=18;
|
|
||||||
} else if (value >= 18.5 and value < 19) {
|
|
||||||
left=29;
|
|
||||||
mid=30;
|
|
||||||
right=18;
|
|
||||||
} else if (value >= 19 and value < 19.5) {
|
|
||||||
left=29;
|
|
||||||
mid=31;
|
|
||||||
right=18;
|
|
||||||
} else if (value >= 19.5 and value < 20) {
|
|
||||||
left=29;
|
|
||||||
mid=32;
|
|
||||||
right=18;
|
|
||||||
} else if (value >= 20 and value < 20.5) {
|
|
||||||
left=29;
|
|
||||||
mid=33;
|
|
||||||
right=18;
|
|
||||||
} else if (value >= 20.5 and value < 21) {
|
|
||||||
left=29;
|
|
||||||
mid=34;
|
|
||||||
right=18;
|
|
||||||
} else if (value >= 21 and value < 21.5) {
|
|
||||||
left=29;
|
|
||||||
mid=35;
|
|
||||||
right=18;
|
|
||||||
} else if (value >= 21.5 and value < 22) {
|
|
||||||
left=29;
|
|
||||||
mid=36;
|
|
||||||
right=18;
|
|
||||||
} else if (value >= 22 and value < 22.5) {
|
|
||||||
left=29;
|
|
||||||
mid=37;
|
|
||||||
right=38;
|
|
||||||
} else if (value >= 22.5 and value < 23) {
|
|
||||||
left=29;
|
|
||||||
mid=37;
|
|
||||||
right=39;
|
|
||||||
} else if (value >= 23 and value < 23.5) {
|
|
||||||
left=29;
|
|
||||||
mid=37;
|
|
||||||
right=40;
|
|
||||||
} else if (value >= 23.5 and value < 24) {
|
|
||||||
left=29;
|
|
||||||
mid=37;
|
|
||||||
right=41;
|
|
||||||
} else if (value >= 24 and value < 24.5) {
|
|
||||||
left=29;
|
|
||||||
mid=37;
|
|
||||||
right=42;
|
|
||||||
} else if (value >= 24.5 and value < 25) {
|
|
||||||
left=29;
|
|
||||||
mid=37;
|
|
||||||
right=43;
|
|
||||||
} else if (value >= 25 and value < 25.5) {
|
|
||||||
left=29;
|
|
||||||
mid=37;
|
|
||||||
right=44;
|
|
||||||
} else if (value >= 25.5 and value < 26) {
|
|
||||||
left=29;
|
|
||||||
mid=37;
|
|
||||||
right=45;
|
|
||||||
} else if (value >= 26 and value < 26.5) {
|
|
||||||
left=29;
|
|
||||||
mid=37;
|
|
||||||
right=46;
|
|
||||||
} else if (value >= 26.5 and value < 27) {
|
|
||||||
left=29;
|
|
||||||
mid=37;
|
|
||||||
right=47;
|
|
||||||
} else if (value >= 27) {
|
|
||||||
left=29;
|
|
||||||
mid=37;
|
|
||||||
right=48;
|
|
||||||
}
|
|
||||||
// sends the 3 images to the display
|
// sends the 3 images to the display
|
||||||
//ESP_LOGD("nextion", "thermostat left %i", left);
|
//ESP_LOGD("nextion", "thermostat left %i", left);
|
||||||
//ESP_LOGD("nextion", "thermostat mid %i", mid);
|
//ESP_LOGD("nextion", "thermostat mid %i", mid);
|
||||||
@@ -378,6 +306,41 @@ api:
|
|||||||
id(disp1).set_component_text_printf("target_temp", "%.1f°", value);
|
id(disp1).set_component_text_printf("target_temp", "%.1f°", value);
|
||||||
id(display_target_temp).publish_state(value);
|
id(display_target_temp).publish_state(value);
|
||||||
|
|
||||||
|
#### Service to set the buttons ####
|
||||||
|
- service: set_button
|
||||||
|
variables:
|
||||||
|
btn_id: string
|
||||||
|
btn_pic: int
|
||||||
|
btn_bg: int
|
||||||
|
btn_icon_font: int
|
||||||
|
btn_txt_font: int
|
||||||
|
btn_bri_font: int
|
||||||
|
btn_icon: string
|
||||||
|
btn_label: string
|
||||||
|
btn_bri_txt: string
|
||||||
|
then:
|
||||||
|
- wait_until:
|
||||||
|
switch.is_on: nextion_init
|
||||||
|
- lambda: |-
|
||||||
|
// ESP_LOGD("nextion", "set button %s", btn_id.c_str());
|
||||||
|
std::string btnicon = btn_id.c_str() + std::string("icon");
|
||||||
|
std::string btntext = btn_id.c_str() + std::string("text");
|
||||||
|
std::string btnbri = btn_id.c_str() + std::string("bri");
|
||||||
|
id(disp1).send_command_printf("%spic.pic=%i", btn_id.c_str(), btn_pic);
|
||||||
|
id(disp1).set_component_background_color(btnicon.c_str(), btn_bg);
|
||||||
|
id(disp1).set_component_background_color(btntext.c_str(), btn_bg);
|
||||||
|
id(disp1).set_component_background_color(btnbri.c_str(), btn_bg);
|
||||||
|
id(disp1).set_component_font_color(btnicon.c_str(), btn_icon_font);
|
||||||
|
id(disp1).set_component_font_color(btntext.c_str(), btn_txt_font);
|
||||||
|
id(disp1).set_component_font_color(btnbri.c_str(), btn_bri_font);
|
||||||
|
id(disp1).set_component_text_printf(btnicon.c_str(), "%s", btn_icon.c_str());
|
||||||
|
id(disp1).set_component_text_printf(btntext.c_str(), "%s", btn_label.c_str());
|
||||||
|
// id(disp1).set_component_text_printf(btnbri.c_str(), "%s", btn_bri_txt.c_str());
|
||||||
|
if (strcmp(btn_bri_txt.c_str(), "0") != 0) {
|
||||||
|
id(disp1).set_component_text_printf(btnbri.c_str(), "%s", btn_bri_txt.c_str());
|
||||||
|
} else {
|
||||||
|
id(disp1).set_component_text_printf(btnbri.c_str(), " ");
|
||||||
|
}
|
||||||
|
|
||||||
##### START - GLOBALS CONFIGURATION #####
|
##### START - GLOBALS CONFIGURATION #####
|
||||||
globals:
|
globals:
|
||||||
@@ -430,7 +393,7 @@ globals:
|
|||||||
restore_value: no
|
restore_value: no
|
||||||
initial_value: ''
|
initial_value: ''
|
||||||
|
|
||||||
##### lastclick_ccurrentpage State #####
|
##### lastclick_currentpage State #####
|
||||||
- id: currentpage_global
|
- id: currentpage_global
|
||||||
type: std::string
|
type: std::string
|
||||||
restore_value: no
|
restore_value: no
|
||||||
@@ -442,22 +405,75 @@ binary_sensor:
|
|||||||
###### LEFT BUTTON BELOW DISPLAY TO TOGGLE RELAY#####
|
###### LEFT BUTTON BELOW DISPLAY TO TOGGLE RELAY#####
|
||||||
- platform: gpio
|
- platform: gpio
|
||||||
name: ${device_name} Left Button
|
name: ${device_name} Left Button
|
||||||
|
id: left_button
|
||||||
pin:
|
pin:
|
||||||
number: 14
|
number: 14
|
||||||
inverted: true
|
inverted: true
|
||||||
|
on_click:
|
||||||
|
then:
|
||||||
|
- if:
|
||||||
|
condition:
|
||||||
|
and:
|
||||||
|
- switch.is_on: relay1_fallback
|
||||||
|
- not:
|
||||||
|
api.connected:
|
||||||
|
then:
|
||||||
|
- switch.toggle: relay_1
|
||||||
|
- if:
|
||||||
|
condition:
|
||||||
|
switch.is_on: relay_1
|
||||||
|
then:
|
||||||
|
- lambda: id(disp1).send_command_printf("home.left_bt_pic.pic=78");
|
||||||
|
- lambda: id(disp1).send_command_printf("home.icon_top_01","\U0000E3A5");
|
||||||
|
else:
|
||||||
|
- lambda: id(disp1).send_command_printf("home.left_bt_pic.pic=77");
|
||||||
|
- lambda: id(disp1).send_command_printf("home.icon_top_01","\U0000FFFF");
|
||||||
|
|
||||||
|
|
||||||
##### RIGHT BUTTON BELOW DISPLAY TO TOGGLE RELAY #####
|
##### RIGHT BUTTON BELOW DISPLAY TO TOGGLE RELAY #####
|
||||||
- platform: gpio
|
- platform: gpio
|
||||||
name: ${device_name} Right Button
|
name: ${device_name} Right Button
|
||||||
|
id: right_button
|
||||||
pin:
|
pin:
|
||||||
number: 27
|
number: 27
|
||||||
inverted: true
|
inverted: true
|
||||||
|
on_click:
|
||||||
|
then:
|
||||||
|
- if:
|
||||||
|
condition:
|
||||||
|
and:
|
||||||
|
- switch.is_on: relay2_fallback
|
||||||
|
- not:
|
||||||
|
api.connected:
|
||||||
|
then:
|
||||||
|
- switch.toggle: relay_2
|
||||||
|
- if:
|
||||||
|
condition:
|
||||||
|
switch.is_on: relay_2
|
||||||
|
then:
|
||||||
|
- lambda: id(disp1).send_command_printf("home.right_bt_pic.pic=78");
|
||||||
|
- lambda: id(disp1).send_command_printf("home.icon_top_02","\U0000E3A8");
|
||||||
|
else:
|
||||||
|
- lambda: id(disp1).send_command_printf("home.right_bt_pic.pic=77");
|
||||||
|
- lambda: id(disp1).send_command_printf("home.icon_top_02","\U0000FFFF");
|
||||||
|
|
||||||
|
##### JUMP PAGE TO SETTING PAGE #####
|
||||||
|
- platform: nextion
|
||||||
|
name: $device_name setting page
|
||||||
|
page_id: 0
|
||||||
|
component_id: 52
|
||||||
|
internal: true
|
||||||
|
on_multi_click:
|
||||||
|
- timing:
|
||||||
|
- ON for at least 1s #LONG Press
|
||||||
|
then:
|
||||||
|
- lambda: 'id(disp1).send_command_printf("page settings");'
|
||||||
|
|
||||||
##### Restart NSPanel Button - Setting Page #####
|
##### Restart NSPanel Button - Setting Page #####
|
||||||
- platform: nextion
|
- platform: nextion
|
||||||
name: ${device_name} Restart
|
name: ${device_name} Restart
|
||||||
page_id: 7
|
page_id: 7
|
||||||
component_id: 9
|
component_id: 13
|
||||||
internal: true
|
internal: true
|
||||||
on_click:
|
on_click:
|
||||||
- button.press: restart_nspanel
|
- button.press: restart_nspanel
|
||||||
@@ -466,7 +482,7 @@ binary_sensor:
|
|||||||
- platform: nextion
|
- platform: nextion
|
||||||
name: ${device_name} Restart
|
name: ${device_name} Restart
|
||||||
page_id: 8
|
page_id: 8
|
||||||
component_id: 5
|
component_id: 4
|
||||||
internal: true
|
internal: true
|
||||||
on_click:
|
on_click:
|
||||||
- button.press: restart_nspanel
|
- button.press: restart_nspanel
|
||||||
@@ -475,7 +491,7 @@ binary_sensor:
|
|||||||
- platform: nextion
|
- platform: nextion
|
||||||
name: ${device_name} Sleep Modus
|
name: ${device_name} Sleep Modus
|
||||||
page_id: 7
|
page_id: 7
|
||||||
component_id: 4
|
component_id: 14
|
||||||
internal: true
|
internal: true
|
||||||
on_click:
|
on_click:
|
||||||
- switch.toggle: sleep_modus
|
- switch.toggle: sleep_modus
|
||||||
@@ -504,22 +520,30 @@ sensor:
|
|||||||
- platform: wifi_signal
|
- platform: wifi_signal
|
||||||
name: ${device_name} RSSI
|
name: ${device_name} RSSI
|
||||||
update_interval: 60s
|
update_interval: 60s
|
||||||
|
on_value:
|
||||||
|
- if:
|
||||||
|
condition:
|
||||||
|
wifi.connected:
|
||||||
|
then:
|
||||||
|
- lambda: id(disp1).set_component_text_printf("home.wifi_icon", "%s", "\U0000E5A8");
|
||||||
|
else:
|
||||||
|
- lambda: id(disp1).set_component_text_printf("home.wifi_icon", "%s", "\U0000FFFF");
|
||||||
|
|
||||||
##### INTERNAL TEMPERATUE SENSOR, ADC VALUE #####
|
##### INTERNAL TEMPERATURE SENSOR, ADC VALUE #####
|
||||||
- platform: adc
|
- platform: adc
|
||||||
id: ntc_source
|
id: ntc_source
|
||||||
pin: 38
|
pin: 38
|
||||||
update_interval: 10s
|
update_interval: 60s
|
||||||
attenuation: 11db
|
attenuation: 11db
|
||||||
|
|
||||||
##### INTERNAL TEMPERATUE SENSOR, adc reading converted to resistance (calculation)#####
|
##### INTERNAL TEMPERATURE SENSOR, adc reading converted to resistance (calculation)#####
|
||||||
- platform: resistance
|
- platform: resistance
|
||||||
id: resistance_sensor
|
id: resistance_sensor
|
||||||
sensor: ntc_source
|
sensor: ntc_source
|
||||||
configuration: DOWNSTREAM
|
configuration: DOWNSTREAM
|
||||||
resistor: 11.2kOhm
|
resistor: 11.2kOhm
|
||||||
|
|
||||||
##### INTERNAL TEMPERATUE SENSOR, resistance to temperature (calculation) #####
|
##### INTERNAL TEMPERATURE SENSOR, resistance to temperature (calculation) #####
|
||||||
- platform: ntc
|
- platform: ntc
|
||||||
name: ${device_name} Temperature
|
name: ${device_name} Temperature
|
||||||
id: temp_nspanel
|
id: temp_nspanel
|
||||||
@@ -557,7 +581,7 @@ sensor:
|
|||||||
- number.set:
|
- number.set:
|
||||||
id: display_brightness
|
id: display_brightness
|
||||||
value: !lambda 'return int(x);'
|
value: !lambda 'return int(x);'
|
||||||
# send text field percentage of current_lightslider_val
|
# send text field percentage of current_lightslider_val
|
||||||
- lambda: id(disp1).set_component_text_printf("settings.a03", "%i", id(display_brightness_global));
|
- lambda: id(disp1).set_component_text_printf("settings.a03", "%i", id(display_brightness_global));
|
||||||
|
|
||||||
###### Display DIM Brightness GET VALUE FROM NSPanel SLIDER #####
|
###### Display DIM Brightness GET VALUE FROM NSPanel SLIDER #####
|
||||||
@@ -573,7 +597,7 @@ sensor:
|
|||||||
- number.set:
|
- number.set:
|
||||||
id: display_dim_brightness
|
id: display_dim_brightness
|
||||||
value: !lambda 'return int(x);'
|
value: !lambda 'return int(x);'
|
||||||
# send text field percentage of current_lightslider_val
|
# send text field percentage of current_lightslider_val
|
||||||
- lambda: id(disp1).set_component_text_printf("settings.a04", "%i", id(display_dim_brightness_global));
|
- lambda: id(disp1).set_component_text_printf("settings.a04", "%i", id(display_dim_brightness_global));
|
||||||
|
|
||||||
###### Send current page to HA
|
###### Send current page to HA
|
||||||
@@ -600,6 +624,7 @@ text_sensor:
|
|||||||
ip_address:
|
ip_address:
|
||||||
name: ${device_name} IP
|
name: ${device_name} IP
|
||||||
disabled_by_default: true
|
disabled_by_default: true
|
||||||
|
id: ip_address
|
||||||
ssid:
|
ssid:
|
||||||
name: ${device_name} SSID
|
name: ${device_name} SSID
|
||||||
disabled_by_default: true
|
disabled_by_default: true
|
||||||
@@ -615,6 +640,10 @@ text_sensor:
|
|||||||
name: ${device_name} Notification Text
|
name: ${device_name} Notification Text
|
||||||
id: notification_text
|
id: notification_text
|
||||||
|
|
||||||
|
- platform: template
|
||||||
|
name: ${device_name} Settings Entity
|
||||||
|
id: settings_entity
|
||||||
|
|
||||||
##### last click sensor, the main action variable - push to HA #####
|
##### last click sensor, the main action variable - push to HA #####
|
||||||
- platform: nextion
|
- platform: nextion
|
||||||
nextion_id: disp1
|
nextion_id: disp1
|
||||||
@@ -635,7 +664,9 @@ text_sensor:
|
|||||||
- globals.set:
|
- globals.set:
|
||||||
id: lastclick_general_global
|
id: lastclick_general_global
|
||||||
value: !lambda return x;
|
value: !lambda return x;
|
||||||
|
- lambda: |-
|
||||||
|
id(page_timer)->execute(int(id(page_timeout).state));
|
||||||
|
|
||||||
##### last click lightsettings page, the main action variable - push to HA #####
|
##### last click lightsettings page, the main action variable - push to HA #####
|
||||||
- platform: nextion
|
- platform: nextion
|
||||||
nextion_id: disp1
|
nextion_id: disp1
|
||||||
@@ -656,6 +687,8 @@ text_sensor:
|
|||||||
- globals.set:
|
- globals.set:
|
||||||
id: lastclick_lightsettings_global
|
id: lastclick_lightsettings_global
|
||||||
value: !lambda return x;
|
value: !lambda return x;
|
||||||
|
- lambda: |-
|
||||||
|
id(page_timer)->execute(int(id(page_timeout).state));
|
||||||
|
|
||||||
##### last click coversettings page, the main action variable - push to HA #####
|
##### last click coversettings page, the main action variable - push to HA #####
|
||||||
- platform: nextion
|
- platform: nextion
|
||||||
@@ -677,6 +710,8 @@ text_sensor:
|
|||||||
- globals.set:
|
- globals.set:
|
||||||
id: lastclick_coversettings_global
|
id: lastclick_coversettings_global
|
||||||
value: !lambda return x;
|
value: !lambda return x;
|
||||||
|
- lambda: |-
|
||||||
|
id(page_timer)->execute(int(id(page_timeout).state));
|
||||||
|
|
||||||
##### last click climate page, the main action variable - push to HA #####
|
##### last click climate page, the main action variable - push to HA #####
|
||||||
- platform: nextion
|
- platform: nextion
|
||||||
@@ -698,6 +733,8 @@ text_sensor:
|
|||||||
- globals.set:
|
- globals.set:
|
||||||
id: lastclick_climatesettings_global
|
id: lastclick_climatesettings_global
|
||||||
value: !lambda return x;
|
value: !lambda return x;
|
||||||
|
- lambda: |-
|
||||||
|
id(page_timer)->execute(int(id(page_timeout).state));
|
||||||
|
|
||||||
##### currentpage sensor, the main action variable - push to HA #####
|
##### currentpage sensor, the main action variable - push to HA #####
|
||||||
- platform: nextion
|
- platform: nextion
|
||||||
@@ -719,9 +756,35 @@ text_sensor:
|
|||||||
- globals.set:
|
- globals.set:
|
||||||
id: currentpage_global
|
id: currentpage_global
|
||||||
value: !lambda return x;
|
value: !lambda return x;
|
||||||
|
- lambda: |-
|
||||||
|
id(page_timer)->execute(int(id(page_timeout).state));
|
||||||
|
|
||||||
|
|
||||||
##### START - SWITCH CONFIGURATION #####
|
##### touchevent sensor, Reset the page timeout #####
|
||||||
|
- platform: nextion
|
||||||
|
nextion_id: disp1
|
||||||
|
#name: ${device_name} touchevent
|
||||||
|
id: disp1_touchevent
|
||||||
|
update_interval: 50ms
|
||||||
|
component_name: touchevent
|
||||||
|
internal: true
|
||||||
|
filters:
|
||||||
|
- lambda: |-
|
||||||
|
static std::string touchevent_history = "";
|
||||||
|
if (strcmp(x.c_str(), touchevent_history.c_str()) != 0) {
|
||||||
|
touchevent_history = x;
|
||||||
|
return x;
|
||||||
|
// touchevent_history = "";
|
||||||
|
} else {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
on_value:
|
||||||
|
then:
|
||||||
|
- lambda: |-
|
||||||
|
id(page_timer)->execute(int(id(page_timeout).state));
|
||||||
|
|
||||||
|
|
||||||
|
##### START - SWITCH CONFIGURATION #####
|
||||||
switch:
|
switch:
|
||||||
|
|
||||||
# ##### Restart switch ######
|
# ##### Restart switch ######
|
||||||
@@ -765,16 +828,6 @@ switch:
|
|||||||
restore_state: false
|
restore_state: false
|
||||||
optimistic: true
|
optimistic: true
|
||||||
|
|
||||||
##### UPDATE TFT DISPLAY #####
|
|
||||||
- platform: template
|
|
||||||
name: ${device_name} Update TFT display
|
|
||||||
id: tft_update
|
|
||||||
entity_category: config
|
|
||||||
turn_on_action:
|
|
||||||
- delay: 16ms
|
|
||||||
- lambda: id(disp1).upload_tft();
|
|
||||||
- switch.turn_off: tft_update
|
|
||||||
|
|
||||||
##### PHYSICAL SWITCH 1 #####
|
##### PHYSICAL SWITCH 1 #####
|
||||||
- platform: gpio
|
- platform: gpio
|
||||||
name: ${device_name} Relay 1
|
name: ${device_name} Relay 1
|
||||||
@@ -788,7 +841,7 @@ switch:
|
|||||||
id: relay_2
|
id: relay_2
|
||||||
pin:
|
pin:
|
||||||
number: 19
|
number: 19
|
||||||
|
|
||||||
##### DISPLAY ALWAYS ON #####
|
##### DISPLAY ALWAYS ON #####
|
||||||
- platform: gpio
|
- platform: gpio
|
||||||
name: ${device_name} Screen Power
|
name: ${device_name} Screen Power
|
||||||
@@ -822,6 +875,20 @@ switch:
|
|||||||
value: '1'
|
value: '1'
|
||||||
- lambda: id(disp1).set_component_value("settings.a02",1);
|
- lambda: id(disp1).set_component_value("settings.a02",1);
|
||||||
|
|
||||||
|
##### Relay Local control Fallback #####
|
||||||
|
- platform: template
|
||||||
|
name: ${device_name} Relay 1 Local Fallback
|
||||||
|
id: relay1_fallback
|
||||||
|
entity_category: config
|
||||||
|
restore_state: true
|
||||||
|
optimistic: true
|
||||||
|
|
||||||
|
- platform: template
|
||||||
|
name: ${device_name} Relay 2 Local Fallback
|
||||||
|
id: relay2_fallback
|
||||||
|
entity_category: config
|
||||||
|
restore_state: true
|
||||||
|
optimistic: true
|
||||||
|
|
||||||
##### START - NUMBER CONFIGURATION #####
|
##### START - NUMBER CONFIGURATION #####
|
||||||
number:
|
number:
|
||||||
@@ -880,6 +947,17 @@ number:
|
|||||||
id: temperature_correction_global
|
id: temperature_correction_global
|
||||||
value: !lambda 'return x;'
|
value: !lambda 'return x;'
|
||||||
|
|
||||||
|
##### page-timeout #####
|
||||||
|
- platform: template
|
||||||
|
name: ${device_name} Page Timeout
|
||||||
|
id: page_timeout
|
||||||
|
entity_category: config
|
||||||
|
min_value: 0
|
||||||
|
max_value: 60
|
||||||
|
initial_value: 10
|
||||||
|
step: 1
|
||||||
|
restore_value: true
|
||||||
|
optimistic: true
|
||||||
|
|
||||||
##### START - DISPLAY START CONFIGURATION #####
|
##### START - DISPLAY START CONFIGURATION #####
|
||||||
display:
|
display:
|
||||||
@@ -890,9 +968,11 @@ display:
|
|||||||
on_setup:
|
on_setup:
|
||||||
then:
|
then:
|
||||||
- lambda: id(disp1).send_command_printf("page 8");
|
- lambda: id(disp1).send_command_printf("page 8");
|
||||||
|
- lambda: id(disp1).set_component_text_printf("boot.esph_version", "%s", "3.2.2"); ### esphome-version ###
|
||||||
- wait_until:
|
- wait_until:
|
||||||
api.connected
|
api.connected
|
||||||
- delay: 0.5s
|
- lambda: id(disp1).set_component_text_printf("boot.ip_addr", "%s", id(ip_address).state.c_str());
|
||||||
|
- delay: 1s
|
||||||
- number.set:
|
- number.set:
|
||||||
id: display_brightness
|
id: display_brightness
|
||||||
value: !lambda 'return id(display_brightness_global);'
|
value: !lambda 'return id(display_brightness_global);'
|
||||||
@@ -904,13 +984,25 @@ display:
|
|||||||
- lambda: id(disp1).send_command_printf("settings.brightslider.val=%i", id(display_brightness_global));
|
- lambda: id(disp1).send_command_printf("settings.brightslider.val=%i", id(display_brightness_global));
|
||||||
- lambda: id(disp1).send_command_printf("settings.dimslider.val=%i", id(display_dim_brightness_global));
|
- lambda: id(disp1).send_command_printf("settings.dimslider.val=%i", id(display_dim_brightness_global));
|
||||||
- lambda: id(disp1).send_command_printf("home.sleepmodus.val=%i", id(sleep_modus_global));
|
- lambda: id(disp1).send_command_printf("home.sleepmodus.val=%i", id(sleep_modus_global));
|
||||||
- lambda: |-
|
- lambda: id(disp1).set_component_value("settings.a02", id(sleep_modus_global) == 1);
|
||||||
id(disp1).set_component_value("settings.a02",0);
|
- delay: 1s
|
||||||
if (id(sleep_modus_global) == 1)
|
|
||||||
{
|
|
||||||
id(disp1).set_component_value("settings.a02",1);
|
|
||||||
}
|
|
||||||
- delay: 0.5s
|
|
||||||
- switch.template.publish:
|
- switch.template.publish:
|
||||||
id: nextion_init
|
id: nextion_init
|
||||||
state: on
|
state: on
|
||||||
|
|
||||||
|
### Script for page_timer
|
||||||
|
script:
|
||||||
|
- id: page_timer
|
||||||
|
mode: restart
|
||||||
|
parameters:
|
||||||
|
delay: int
|
||||||
|
then:
|
||||||
|
- lambda: ESP_LOGD("nspanel", "start page-timer delay %i", int(id(page_timeout).state));
|
||||||
|
- delay: !lambda return delay *1000;
|
||||||
|
- lambda: |-
|
||||||
|
if (id(disp1_currentpage).state == "home" or id(disp1_currentpage).state == "screensaver" or id(disp1_currentpage).state == "boot" or int(id(page_timeout).state) == 0) {
|
||||||
|
ESP_LOGD("nspanel", "no page-jump");
|
||||||
|
} else {
|
||||||
|
ESP_LOGD("nspanel", "timer->home");
|
||||||
|
id(disp1).send_command_printf("page 0");
|
||||||
|
}
|
||||||
|
|||||||
BIN
nspanel_eu.HMI
Normal file
BIN
nspanel_eu.HMI
Normal file
Binary file not shown.
BIN
nspanel_eu.tft
Normal file
BIN
nspanel_eu.tft
Normal file
Binary file not shown.
BIN
nspanel_us.HMI
Normal file
BIN
nspanel_us.HMI
Normal file
Binary file not shown.
BIN
nspanel_us.tft
Normal file
BIN
nspanel_us.tft
Normal file
Binary file not shown.
Reference in New Issue
Block a user