Compare commits
379 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 | ||
|
|
1f6eabeeee | ||
|
|
0309dec38d | ||
|
|
143b80f630 | ||
|
|
6001ab425c | ||
|
|
817d187dd8 | ||
|
|
ab0e622dd9 | ||
|
|
1541c07e99 | ||
|
|
a823bf9739 | ||
|
|
ec79ccf008 | ||
|
|
bd5fb7adc6 | ||
|
|
5e80691b3e | ||
|
|
fbbb10b4e8 | ||
|
|
593a9f8592 | ||
|
|
45f3ab2f13 | ||
|
|
3422a49973 | ||
|
|
e70a661f2f | ||
|
|
7380a485fd | ||
|
|
ddbdf6fcab | ||
|
|
e3e7b16b6a | ||
|
|
4fc051acda | ||
|
|
281d284f67 | ||
|
|
f1a0cd3086 | ||
|
|
773b39f7e5 | ||
|
|
8608b3b397 | ||
|
|
8bbeace1b2 | ||
|
|
cb9ba1a2ff | ||
|
|
204d574457 | ||
|
|
21a8598f87 | ||
|
|
53dabf89fe | ||
|
|
512189af4e | ||
|
|
491b5cb23e | ||
|
|
8ae14a4cff | ||
|
|
c3de9950ac | ||
|
|
3b32ae3754 | ||
|
|
471eab4e93 | ||
|
|
d44ced1cd5 | ||
|
|
2d0212b2f8 | ||
|
|
b018c22922 | ||
|
|
bacfe4bec9 | ||
|
|
8295284b65 | ||
|
|
03842f1a42 | ||
|
|
9363ee3b48 | ||
|
|
42ed489a1c | ||
|
|
4993695a73 | ||
|
|
a56db0170c | ||
|
|
0ac19e4096 | ||
|
|
14328846a7 | ||
|
|
b3648e947d | ||
|
|
ca736ac139 | ||
|
|
cf7f943d82 | ||
|
|
e6e286edd0 | ||
|
|
6c86ed1f7f | ||
|
|
3a4c3fe37d | ||
|
|
ec67e93af0 | ||
|
|
88472c7de1 | ||
|
|
c0e8a46865 | ||
|
|
a7aa574d8c | ||
|
|
e32df95471 | ||
|
|
c19cdd3703 | ||
|
|
1fafff21b9 | ||
|
|
bf11e4c6e6 | ||
|
|
37750c642b | ||
|
|
9340e3c6cd | ||
|
|
280f88de2e | ||
|
|
5b8f19b425 | ||
|
|
fe7da90f30 | ||
|
|
2b1cf79f46 | ||
|
|
5513f1d1ab | ||
|
|
fae2f043e7 | ||
|
|
8e9aa4efc1 | ||
|
|
3871a97d8a | ||
|
|
3f634e3eb5 | ||
|
|
e0455e1635 | ||
|
|
71935d37f8 | ||
|
|
34f057dba4 | ||
|
|
7c42431143 | ||
|
|
cd766c2cad | ||
|
|
1d12f87a5e | ||
|
|
1305284855 | ||
|
|
24a415f773 | ||
|
|
d6d8de0b8e | ||
|
|
50e53ae596 | ||
|
|
92f52be4f1 | ||
|
|
3d01355b75 | ||
|
|
fffc70e733 | ||
|
|
79427157a8 | ||
|
|
942bacdc28 | ||
|
|
415465ee62 | ||
|
|
a21dc7524c | ||
|
|
0e417e5e91 | ||
|
|
1a36d9bf36 | ||
|
|
3d7564b003 | ||
|
|
7bebb0e8bf | ||
|
|
34daabcaad | ||
|
|
817aa011cf | ||
|
|
7f2ecd360e | ||
|
|
f259e202bd | ||
|
|
045c1ed939 | ||
|
|
532f0f5ffe | ||
|
|
805317e865 | ||
|
|
a1e420e2cf | ||
|
|
549a978736 | ||
|
|
184f25cb3f | ||
|
|
dd14d6f88c | ||
|
|
7a4f9f6f70 | ||
|
|
e7df0e5099 | ||
|
|
bda5a311c6 | ||
|
|
e5c44c9510 | ||
|
|
387376a36b | ||
|
|
4c53f18d5b | ||
|
|
919a4fe707 | ||
|
|
d30557a3a6 | ||
|
|
bc453a917f | ||
|
|
e0a1117a4a | ||
|
|
62a73ad255 | ||
|
|
55de07ecde | ||
|
|
c60aca7e54 | ||
|
|
d8cf4fbd2b | ||
|
|
795260ccaf | ||
|
|
5d1ab726ae | ||
|
|
c3b4eb8a87 | ||
|
|
46582e3010 | ||
|
|
592200e7d6 | ||
|
|
dcd60b8cc4 | ||
|
|
a63c4f1412 | ||
|
|
b1579c7ea9 | ||
|
|
f5b9b1714a | ||
|
|
95ad152139 | ||
|
|
fbc35f697f | ||
|
|
8513dd20a8 | ||
|
|
97a728d7ab | ||
|
|
86efacc40b | ||
|
|
e2944af7e7 | ||
|
|
9f5acb35ba | ||
|
|
5d6c64943c | ||
|
|
32c4ccbbef | ||
|
|
47ac25b446 | ||
|
|
5804383c2b | ||
|
|
4efeb2d937 | ||
|
|
a19f35262f | ||
|
|
7e6612e69e | ||
|
|
ec54777aeb | ||
|
|
5c655fd0b7 | ||
|
|
c6a36e84ff | ||
|
|
29ea6d8915 | ||
|
|
c1e051a80a | ||
|
|
c84d2e6c20 | ||
|
|
2d329387ad | ||
|
|
d67c136830 | ||
|
|
ef6985de03 | ||
|
|
8a440ee8b3 | ||
|
|
aad610cf17 | ||
|
|
05463fa11b | ||
|
|
05d18daa8e | ||
|
|
62ccc1820e | ||
|
|
44170c919a | ||
|
|
8ebe91899a | ||
|
|
696e53513e | ||
|
|
c48347ffe8 | ||
|
|
eb2c16d559 | ||
|
|
e34cce9730 | ||
|
|
87df765987 | ||
|
|
0c38297b7c | ||
|
|
46fd56b9a8 | ||
|
|
b0615fc491 | ||
|
|
578f6703e4 | ||
|
|
ddec4e5bb5 | ||
|
|
0e57210f37 | ||
|
|
07cac5ea68 | ||
|
|
7477a31ed8 | ||
|
|
8ceb618371 | ||
|
|
82f9d97e82 | ||
|
|
16c56df970 | ||
|
|
f63ba79128 | ||
|
|
0eb1ca04b2 | ||
|
|
5ed3166e61 | ||
|
|
4d78d7fa10 | ||
|
|
96f58f40dc | ||
|
|
7b3b83f96b | ||
|
|
ebfa90bf93 | ||
|
|
57c062d9de | ||
|
|
769d0c1b7a | ||
|
|
511089b4da | ||
|
|
bef5a814e4 | ||
|
|
e2d994f2ed | ||
|
|
46731705ca | ||
|
|
16f131685a |
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
|
||||
55
README.md
55
README.md
@@ -1,4 +1,11 @@
|
||||
# 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://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgithub.com%2FBlackymas%2FNSPanel_HA_Blueprint%2Fblob%2Fmain%2Fnspanel_blueprint.yaml)
|
||||
|
||||
This project allows you to configure your complete NSPanel via a Blueprint with UI.
|
||||
### *That means you don't have to customize any code or change any lines in the code.*
|
||||
|
||||
@@ -7,15 +14,26 @@ And the best thing is, the installation takes only a few minutes.
|
||||
|
||||
The goal was to create a version that allows everyone to use the NSpanel fully local without having to deal with programming or reading hours of documentation - *AND YES WE DID IT!!!!* ;)
|
||||
|
||||
📕 Full documentation and installation is available here [NSPanel Configuration, Setup and HowTo ](https://github.com/Blackymas/NSPanel_HA_Blueprint/wiki). (coming soon)
|
||||
📕 Full documentation and installation is available here [NSPanel Configuration, Setup and HowTo](https://github.com/Blackymas/NSPanel_HA_Blueprint/wiki).
|
||||
|
||||
📌 Step by Step - [Setup and Overview Video´s](https://github.com/Blackymas/NSPanel_HA_Blueprint/wiki)
|
||||
|
||||
ℹ️ Version 2.0.0
|
||||
|
||||
🚀 How to create "Issues" when I have a problem [WIKI HowTo](https://github.com/Blackymas/NSPanel_HA_Blueprint/wiki)
|
||||
|
||||
⭐ All Feature Requests can be found here [All Feature Request](https://github.com/Blackymas/NSPanel_HA_Blueprint/labels/new%20feature%20request)
|
||||
|
||||
🎉 Roadmap Roadmap can be found here [Roadmap](https://github.com/Blackymas/NSPanel_HA_Blueprint/labels/roadmap)
|
||||
|
||||
💥 Please move pull request to DEV branch and not to main branch - thanks!
|
||||
|
||||
🙋 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:
|
||||

|
||||

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

|
||||

|
||||
|
||||
(Home and Buttonpage)
|
||||
|
||||
@@ -35,12 +53,20 @@ The goal was to create a version that allows everyone to use the NSpanel fully l
|
||||

|
||||

|
||||
|
||||
(Coversetting and Weather Forcast)
|
||||
(Coversetting and Weather Forecast)
|
||||
|
||||
|
||||

|
||||

|
||||
|
||||
(NSPanel Settings)
|
||||
(NSPanel Settings and Boot Screen)
|
||||
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
(HA Device Setting for Example temperature correction)
|
||||
|
||||
|
||||
## Blueprint:
|
||||
@@ -50,28 +76,28 @@ The goal was to create a version that allows everyone to use the NSpanel fully l
|
||||
|
||||
|
||||
## Features:
|
||||
- easy to use and simple configuration via Blueprint - no change in the code is necessary
|
||||
- Easy to use and simple configuration via Blueprint - no change in the code is necessary
|
||||
- 32 buttons on 4 button pages with long press function for settings (more buttons are also possible)
|
||||
- Button design is automatically generated based on the selected entity
|
||||
- Buttons show current brightness and cover position in the button itself
|
||||
- Buttons label can be assigned via blueprint
|
||||
- Weather + 5 days weather forcast
|
||||
- Weather + 5 days weather forecast
|
||||
- Thermostat + Touch + Relay control for floor heating
|
||||
- Light control (brightness-slider, colorwheel, TempColor-slider) - via Long Press
|
||||
- Light control (brightness-slider, colorwheel, TempColor-slider) - via long Press
|
||||
- Cover control (open, close, position-slider) - via long press
|
||||
- Settings page (display brightness, display dim brightness, auto-dim, sleep mode, reboot NSPanel)
|
||||
- Swipe between pages
|
||||
- Top menu with 10 icons for specific states
|
||||
- Heating control (hot water)
|
||||
- modern design - design easy to change via Adobe Express (free + design template)
|
||||
- 2 pysical switches
|
||||
- Modern design - design easy to change via Adobe Express (free + design template)
|
||||
- 2 physical switches
|
||||
- and much more ;)
|
||||
|
||||
|
||||
# Pages
|
||||
|
||||
## Home
|
||||
- current weather with button to Weather Forcast page
|
||||
- Current weather with button to Weather Forcast page
|
||||
- Hardware buttons can be freely assigned
|
||||
- Hardware button label or without label
|
||||
- Blue line indicates on or off of the entity
|
||||
@@ -118,8 +144,8 @@ The goal was to create a version that allows everyone to use the NSpanel fully l
|
||||
- Hot water button
|
||||
|
||||
|
||||
## Weather Forcast
|
||||
- 5 days Weather Forcast via swipe (Integration Accuweather - but should also go with another integration)
|
||||
## Weather Forecast
|
||||
- 5 days Weather Forecast via swipe (Integration Accuweather - but should also go with another integration)
|
||||
- Lowest and highest temperature outside
|
||||
- Date
|
||||
- Rain probability
|
||||
@@ -150,3 +176,4 @@ Marcfager: https://github.com/marcfager/nspanel-mf
|
||||
lovejoy77: https://github.com/lovejoy777/NSpanel
|
||||
|
||||
Hellis81: https://github.com/Hellis81/NS-panel
|
||||
|
||||
|
||||
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.
BIN
custom_configuration/OLD NSPanel version/nspanel_old.HMI
Normal file
BIN
custom_configuration/OLD NSPanel version/nspanel_old.HMI
Normal file
Binary file not shown.
BIN
custom_configuration/OLD NSPanel version/nspanel_old.tft
Normal file
BIN
custom_configuration/OLD NSPanel version/nspanel_old.tft
Normal file
Binary file not shown.
BIN
custom_configuration/nspanel_blank.HMI
Normal file
BIN
custom_configuration/nspanel_blank.HMI
Normal file
Binary file not shown.
BIN
custom_configuration/nspanel_blank.tft
Normal file
BIN
custom_configuration/nspanel_blank.tft
Normal file
Binary file not shown.
BIN
nspanel.HMI
BIN
nspanel.HMI
Binary file not shown.
BIN
nspanel.tft
BIN
nspanel.tft
Binary file not shown.
10088
nspanel_blueprint.yaml
Normal file
10088
nspanel_blueprint.yaml
Normal file
File diff suppressed because it is too large
Load Diff
@@ -11,8 +11,10 @@
|
||||
# ## usage of secrets-file ## -> comment in ###### Change ME ######
|
||||
# device_name: "nspanel-name" # Wird im Blueprint benötigt!
|
||||
# wifi_ssid: !secret nspanel_wifi_ssid # add in your esphome secrets file.
|
||||
# wifi_password: !secret nspanel_wifi_password # add in your esphome secrets file.
|
||||
# ota_password: !secret nspanel_ota_password # add in your esphome secrets file.
|
||||
# wifi_password: !secret nspanel_wifi_password # add in your esphome secrets file. -> per default this is also used for ota_password and web_password
|
||||
# ota_password: !secret nspanel_ota_password # add in your esphome secrets file. - manual change in code required to activate
|
||||
# web_password: !secret nspanel_web_password # add in your esphome secrets file. - manual change in code required to activate
|
||||
# api_password: !secret nspanel_api_password # add in your esphome secrets file. - manual change in code required to activate
|
||||
# nextion_update_url: !secret nspanel_update_url # add in your esphome secrets file. Example: "http://"HOME ASSISTANT IP":8123/local/nspanel/nspanel.tft"
|
||||
|
||||
# ## static ip config ##
|
||||
@@ -22,6 +24,11 @@
|
||||
# dns: "10.0.0.138"
|
||||
# domain: ".local"
|
||||
|
||||
##### if you rename this file to .nspanel_esphome.yaml then you can activate nested config
|
||||
##### use the ADVANCED CONFIG-Section as device configuration
|
||||
##### https://esphome.io/guides/configuration-types.html#yaml-insertion-operator
|
||||
# <<: !include .nspanel_esphome.yaml
|
||||
|
||||
##### END OF ADVANCED CONFIGURATION ##############################################################
|
||||
|
||||
##### WIFI SETUP #####
|
||||
@@ -36,7 +43,7 @@ wifi:
|
||||
# subnet: ${subnet}
|
||||
# dns1: ${dns}
|
||||
# domain: ${domain}
|
||||
# Enable fallback hotspot (captive portal) in case wifi connection fails
|
||||
##### Enable fallback hotspot (captive portal) in case wifi connection fails
|
||||
ap:
|
||||
ssid: "${device_name}"
|
||||
password: ${wifi_password}
|
||||
@@ -62,11 +69,15 @@ web_server:
|
||||
port: 80
|
||||
auth:
|
||||
username: admin
|
||||
password: ${ota_password}
|
||||
password: ${wifi_password}
|
||||
##### advanced config - change to use web_password #####
|
||||
# password: ${web_password}
|
||||
|
||||
##### OTA PASSWORD #####
|
||||
ota:
|
||||
password: ${ota_password}
|
||||
password: ${wifi_password}
|
||||
##### advanced config - change to use ota_password #####
|
||||
# password: ${ota_password}
|
||||
safe_mode: true
|
||||
reboot_timeout: 3min
|
||||
num_attempts: 3
|
||||
@@ -96,21 +107,41 @@ uart:
|
||||
baud_rate: 115200
|
||||
id: tf_uart
|
||||
|
||||
###### REBOOT BUTTON #####
|
||||
##### START - BUTTON CONFIGURATION #####
|
||||
button:
|
||||
###### REBOOT BUTTON #####
|
||||
- platform: restart
|
||||
name: ${device_name} Restart
|
||||
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 #####
|
||||
api:
|
||||
##### advanced config - activate to use api_password #####
|
||||
# password: ${api_password}
|
||||
services:
|
||||
|
||||
##### SERVICE TO UPDATE THE HMI FILE #####
|
||||
- service: upload_tft
|
||||
then:
|
||||
- lambda: 'id(disp1)->upload_tft();'
|
||||
|
||||
##### SERVICE TO UPDATE THE TFT FILE from URL #####
|
||||
- service: upload_tft_url
|
||||
variables:
|
||||
url: string
|
||||
then:
|
||||
- lambda: 'id(disp1)->set_tft_url(url.c_str());'
|
||||
- lambda: 'id(disp1)->upload_tft();'
|
||||
|
||||
##### Service to send a command "printf" directly to the display #####
|
||||
- service: send_command_printf
|
||||
@@ -140,7 +171,7 @@ api:
|
||||
- lambda: 'id(disp1).set_component_value(component.c_str(), message);'
|
||||
|
||||
##### Service to send a command "hide componente" directly to the display #####
|
||||
- service: send_command_hide
|
||||
- service: send_command_hide ### unused ###
|
||||
variables:
|
||||
component: string
|
||||
then:
|
||||
@@ -149,7 +180,7 @@ api:
|
||||
- lambda: 'id(disp1).hide_component(component.c_str());'
|
||||
|
||||
##### Service to send a command "show componente" directly to the display #####
|
||||
- service: send_command_show
|
||||
- service: send_command_show ### unused ###
|
||||
variables:
|
||||
component: string
|
||||
then:
|
||||
@@ -157,6 +188,13 @@ api:
|
||||
switch.is_on: nextion_init
|
||||
- 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: send_command_font_color
|
||||
variables:
|
||||
@@ -166,6 +204,7 @@ api:
|
||||
- wait_until:
|
||||
switch.is_on: nextion_init
|
||||
- lambda: 'id(disp1).set_component_font_color(component.c_str(), message);'
|
||||
|
||||
##### Service to send a command "background color" directly to the display #####
|
||||
- service: send_command_background_color
|
||||
variables:
|
||||
@@ -176,6 +215,67 @@ api:
|
||||
switch.is_on: nextion_init
|
||||
- lambda: 'id(disp1).set_component_background_color(component.c_str(), message);'
|
||||
|
||||
##### Service to show a notification-message on the screen #####
|
||||
- service: notification_show
|
||||
variables:
|
||||
label: string
|
||||
text: string
|
||||
then:
|
||||
- wait_until:
|
||||
switch.is_on: nextion_init
|
||||
- lambda: |-
|
||||
id(disp1).send_command_printf("page notification");
|
||||
id(disp1).set_component_text_printf("notification.notifi_label", "%s", label.c_str());
|
||||
id(disp1).set_component_text_printf("notification.notifi_text01", "%s", text.c_str());
|
||||
id(notification_label).publish_state(label.c_str());
|
||||
id(notification_text).publish_state(text.c_str());
|
||||
- switch.turn_on: notification_unread
|
||||
- if:
|
||||
condition:
|
||||
switch.is_on: notification_sound
|
||||
then:
|
||||
- rtttl.play: "two short:d=4,o=5,b=100:16e6,16e6"
|
||||
|
||||
##### Service to clear the notification #####
|
||||
- service: notification_clear
|
||||
then:
|
||||
- wait_until:
|
||||
switch.is_on: nextion_init
|
||||
- lambda: |-
|
||||
id(notification_label).publish_state("");
|
||||
id(notification_text).publish_state("");
|
||||
- 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 #####
|
||||
# Example tones : https://codebender.cc/sketch:109888#RTTTL%20Songs.ino
|
||||
- service: play_rtttl
|
||||
variables:
|
||||
song_str: string
|
||||
then:
|
||||
- rtttl.play:
|
||||
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: send_thermostat_cycle_state
|
||||
variables:
|
||||
@@ -185,126 +285,12 @@ api:
|
||||
switch.is_on: nextion_init
|
||||
- lambda: |-
|
||||
//ESP_LOGD("nextion", "thermostat sendig value %f", value);
|
||||
int left=16; // 16 is empty left.
|
||||
int mid=17; // 17 is empty mid.
|
||||
int right=18; // 18 is empty right.
|
||||
if (value < 13.5) {
|
||||
left=16;
|
||||
mid=17;
|
||||
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;
|
||||
}
|
||||
int v = int(2 * std::min(std::max(value - 13.5, 0.0), 5.0));
|
||||
int left = v + (v ? 19 : 16); // 16 is empty left.
|
||||
v = int(2 * std::min(std::max(value - 18.0, 0.0), 4.0));
|
||||
int mid = v + (v ? 29 : 17); // 17 is empty mid.
|
||||
v = int(2 * std::min(std::max(value - 21.5, 0.0), 5.5));
|
||||
int right = v + (v ? 37 : 18); // 18 is empty right.
|
||||
// sends the 3 images to the display
|
||||
//ESP_LOGD("nextion", "thermostat left %i", left);
|
||||
//ESP_LOGD("nextion", "thermostat mid %i", mid);
|
||||
@@ -368,7 +354,7 @@ globals:
|
||||
restore_value: no
|
||||
initial_value: ''
|
||||
|
||||
##### lastclick_ccurrentpage State #####
|
||||
##### lastclick_currentpage State #####
|
||||
- id: currentpage_global
|
||||
type: std::string
|
||||
restore_value: no
|
||||
@@ -380,22 +366,80 @@ binary_sensor:
|
||||
###### LEFT BUTTON BELOW DISPLAY TO TOGGLE RELAY#####
|
||||
- platform: gpio
|
||||
name: ${device_name} Left Button
|
||||
id: left_button
|
||||
pin:
|
||||
number: 14
|
||||
inverted: true
|
||||
on_click:
|
||||
then:
|
||||
- if:
|
||||
condition:
|
||||
and:
|
||||
- switch.is_on: relay1_fallback
|
||||
- not:
|
||||
api.connected:
|
||||
then:
|
||||
- switch.toggle: relay_1
|
||||
- lambda: id(disp1).send_command_printf("home.icon_top_01.pic=51");
|
||||
- lambda: id(disp1).send_command_printf("home.left_bt_pic.pic=98");
|
||||
- if:
|
||||
condition:
|
||||
switch.is_on: relay_1
|
||||
then:
|
||||
- lambda: id(disp1).send_command_printf("home.icon_top_01.pic=105");
|
||||
|
||||
|
||||
##### RIGHT BUTTON BELOW DISPLAY TO TOGGLE RELAY #####
|
||||
- platform: gpio
|
||||
name: ${device_name} Right Button
|
||||
id: right_button
|
||||
pin:
|
||||
number: 27
|
||||
inverted: true
|
||||
on_click:
|
||||
then:
|
||||
- if:
|
||||
condition:
|
||||
and:
|
||||
- switch.is_on: relay2_fallback
|
||||
- not:
|
||||
api.connected:
|
||||
then:
|
||||
- switch.toggle: relay_2
|
||||
- lambda: id(disp1).send_command_printf("home.icon_top_02.pic=51");
|
||||
- lambda: id(disp1).send_command_printf("home.right_bt_pic.pic=98");
|
||||
- if:
|
||||
condition:
|
||||
switch.is_on: relay_2
|
||||
then:
|
||||
- lambda: id(disp1).send_command_printf("home.icon_top_02.pic=106");
|
||||
|
||||
##### Restart NSPanel Button #####
|
||||
##### JUMP PAGE TO SETTING PAGE #####
|
||||
- platform: nextion
|
||||
name: $device_name setting page
|
||||
page_id: 0
|
||||
component_id: 53
|
||||
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 #####
|
||||
- platform: nextion
|
||||
name: ${device_name} Restart
|
||||
page_id: 7
|
||||
component_id: 9
|
||||
component_id: 15
|
||||
internal: true
|
||||
on_click:
|
||||
- button.press: restart_nspanel
|
||||
|
||||
##### Restart NSPanel Button - Boot Page #####
|
||||
- platform: nextion
|
||||
name: ${device_name} Restart
|
||||
page_id: 8
|
||||
component_id: 5
|
||||
internal: true
|
||||
on_click:
|
||||
- button.press: restart_nspanel
|
||||
@@ -404,7 +448,7 @@ binary_sensor:
|
||||
- platform: nextion
|
||||
name: ${device_name} Sleep Modus
|
||||
page_id: 7
|
||||
component_id: 4
|
||||
component_id: 16
|
||||
internal: true
|
||||
on_click:
|
||||
- switch.toggle: sleep_modus
|
||||
@@ -433,22 +477,30 @@ sensor:
|
||||
- platform: wifi_signal
|
||||
name: ${device_name} RSSI
|
||||
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
|
||||
id: ntc_source
|
||||
pin: 38
|
||||
update_interval: 10s
|
||||
update_interval: 60s
|
||||
attenuation: 11db
|
||||
|
||||
##### INTERNAL TEMPERATUE SENSOR, adc reading converted to resistance (calculation)#####
|
||||
##### INTERNAL TEMPERATURE SENSOR, adc reading converted to resistance (calculation)#####
|
||||
- platform: resistance
|
||||
id: resistance_sensor
|
||||
sensor: ntc_source
|
||||
configuration: DOWNSTREAM
|
||||
resistor: 11.2kOhm
|
||||
|
||||
##### INTERNAL TEMPERATUE SENSOR, resistance to temperature (calculation) #####
|
||||
##### INTERNAL TEMPERATURE SENSOR, resistance to temperature (calculation) #####
|
||||
- platform: ntc
|
||||
name: ${device_name} Temperature
|
||||
id: temp_nspanel
|
||||
@@ -459,12 +511,12 @@ sensor:
|
||||
reference_resistance: 10kOhm
|
||||
filters:
|
||||
- lambda: return x + id(temperature_correction_global);
|
||||
on_value:
|
||||
then:
|
||||
- wait_until:
|
||||
switch.is_on: nextion_init
|
||||
- lambda: id(disp1).set_component_text_printf("home.current_temp", "%.1f°", id(temp_nspanel).state); # onboard temp (thermostat temp) to home page.
|
||||
# - lambda: id(disp1).set_component_text_printf("climate.current_temp", "%.1f", id(temp_nspanel).state);
|
||||
# on_value:
|
||||
# then:
|
||||
# - wait_until:
|
||||
# switch.is_on: nextion_init
|
||||
# - lambda: id(disp1).set_component_text_printf("home.current_temp", "%.1f°", id(temp_nspanel).state); # onboard temp (thermostat temp) to home page.
|
||||
# - lambda: id(disp1).set_component_text_printf("climate.current_temp", "%.1f", id(temp_nspanel).state);
|
||||
|
||||
##### current value of page-climate target_temp #####
|
||||
- platform: template
|
||||
@@ -529,6 +581,7 @@ text_sensor:
|
||||
ip_address:
|
||||
name: ${device_name} IP
|
||||
disabled_by_default: true
|
||||
id: ip_address
|
||||
ssid:
|
||||
name: ${device_name} SSID
|
||||
disabled_by_default: true
|
||||
@@ -536,6 +589,18 @@ text_sensor:
|
||||
name: ${device_name} BSSID
|
||||
disabled_by_default: true
|
||||
|
||||
- platform: template
|
||||
name: ${device_name} Notification Label
|
||||
id: notification_label
|
||||
|
||||
- platform: template
|
||||
name: ${device_name} 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 #####
|
||||
- platform: nextion
|
||||
nextion_id: disp1
|
||||
@@ -556,6 +621,8 @@ text_sensor:
|
||||
- globals.set:
|
||||
id: lastclick_general_global
|
||||
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 #####
|
||||
- platform: nextion
|
||||
@@ -577,6 +644,8 @@ text_sensor:
|
||||
- globals.set:
|
||||
id: lastclick_lightsettings_global
|
||||
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 #####
|
||||
- platform: nextion
|
||||
@@ -598,6 +667,8 @@ text_sensor:
|
||||
- globals.set:
|
||||
id: lastclick_coversettings_global
|
||||
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 #####
|
||||
- platform: nextion
|
||||
@@ -619,6 +690,8 @@ text_sensor:
|
||||
- globals.set:
|
||||
id: lastclick_climatesettings_global
|
||||
value: !lambda return x;
|
||||
- lambda: |-
|
||||
id(page_timer)->execute(int(id(page_timeout).state));
|
||||
|
||||
##### currentpage sensor, the main action variable - push to HA #####
|
||||
- platform: nextion
|
||||
@@ -640,6 +713,32 @@ text_sensor:
|
||||
- globals.set:
|
||||
id: currentpage_global
|
||||
value: !lambda return x;
|
||||
- lambda: |-
|
||||
id(page_timer)->execute(int(id(page_timeout).state));
|
||||
|
||||
|
||||
##### 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 #####
|
||||
@@ -662,15 +761,29 @@ switch:
|
||||
assumed_state: off
|
||||
optimistic: true
|
||||
|
||||
##### UPDATE TFT DISPLAY #####
|
||||
##### Notification unread #####
|
||||
- platform: template
|
||||
name: Update TFT display
|
||||
id: tft_update
|
||||
name: ${device_name} Notification unread
|
||||
id: notification_unread
|
||||
entity_category: config
|
||||
turn_on_action:
|
||||
- delay: 16ms
|
||||
- lambda: id(disp1).upload_tft();
|
||||
- switch.turn_off: tft_update
|
||||
restore_state: true
|
||||
optimistic: true
|
||||
|
||||
##### Notification sound #####
|
||||
- platform: template
|
||||
name: ${device_name} Notification sound
|
||||
id: notification_sound
|
||||
entity_category: config
|
||||
restore_state: true
|
||||
optimistic: true
|
||||
|
||||
##### Confirmation Message #####
|
||||
- platform: template
|
||||
name: ${device_name} Confirmation Message
|
||||
id: confirmation_message
|
||||
entity_category: config
|
||||
restore_state: false
|
||||
optimistic: true
|
||||
|
||||
##### PHYSICAL SWITCH 1 #####
|
||||
- platform: gpio
|
||||
@@ -719,6 +832,20 @@ switch:
|
||||
value: '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 #####
|
||||
number:
|
||||
@@ -777,6 +904,17 @@ number:
|
||||
id: temperature_correction_global
|
||||
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 #####
|
||||
display:
|
||||
@@ -786,17 +924,12 @@ display:
|
||||
tft_url: ${nextion_update_url}
|
||||
on_setup:
|
||||
then:
|
||||
- lambda: id(disp1).send_command_printf("page 9"); ##### CHANGE! - Loading page #####
|
||||
- lambda: id(disp1).send_command_printf("page 8");
|
||||
- lambda: id(disp1).set_component_text_printf("boot.esph_version", "%s", "3.2"); ### esphome-version ###
|
||||
- wait_until:
|
||||
api.connected
|
||||
- delay: 0.5s
|
||||
- rtttl.play: "two short:d=4,o=5,b=100:16e6,16e6"
|
||||
- delay: 0.5s
|
||||
- switch.template.publish:
|
||||
id: nextion_init
|
||||
state: on
|
||||
- lambda: id(disp1).send_command_printf("page 0"); #### home page #####
|
||||
- delay: 2s ##### gives the display time to update other components & set the home page #####
|
||||
- lambda: id(disp1).set_component_text_printf("boot.ip_addr", "%s", id(ip_address).state.c_str());
|
||||
- delay: 1s
|
||||
- number.set:
|
||||
id: display_brightness
|
||||
value: !lambda 'return id(display_brightness_global);'
|
||||
@@ -808,9 +941,25 @@ display:
|
||||
- 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("home.sleepmodus.val=%i", id(sleep_modus_global));
|
||||
- lambda: |-
|
||||
id(disp1).set_component_value("settings.a02",0);
|
||||
if (id(sleep_modus_global) == 1)
|
||||
{
|
||||
id(disp1).set_component_value("settings.a02",1);
|
||||
}
|
||||
- lambda: id(disp1).set_component_value("settings.a02", id(sleep_modus_global) == 1);
|
||||
- delay: 1s
|
||||
- switch.template.publish:
|
||||
id: nextion_init
|
||||
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.
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user