Compare commits
187 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 |
50
README.md
50
README.md
@@ -1,4 +1,9 @@
|
||||
# NSPanel Custom with HA Blueprint
|
||||
|
||||
[](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 +12,25 @@ 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 Video](https://www.youtube.com/watch?v=3afPFg6kUdc)
|
||||
|
||||
ℹ️ 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 +50,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 +73,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 +141,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 +173,4 @@ Marcfager: https://github.com/marcfager/nspanel-mf
|
||||
lovejoy77: https://github.com/lovejoy777/NSpanel
|
||||
|
||||
Hellis81: https://github.com/Hellis81/NS-panel
|
||||
|
||||
|
||||
BIN
custom_configuration/nspanel_blank.tft
Normal file
BIN
custom_configuration/nspanel_blank.tft
Normal file
Binary file not shown.
BIN
custom_configuration/nspanel_blank_9600.tft
Normal file
BIN
custom_configuration/nspanel_blank_9600.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.
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
|
||||
@@ -105,12 +116,22 @@ button:
|
||||
|
||||
##### 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
|
||||
@@ -166,6 +187,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 +198,46 @@ 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 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 send thermostat cycle state ####
|
||||
- service: send_thermostat_cycle_state
|
||||
variables:
|
||||
@@ -391,7 +453,7 @@ binary_sensor:
|
||||
number: 27
|
||||
inverted: true
|
||||
|
||||
##### Restart NSPanel Button #####
|
||||
##### Restart NSPanel Button - Setting Page #####
|
||||
- platform: nextion
|
||||
name: ${device_name} Restart
|
||||
page_id: 7
|
||||
@@ -400,6 +462,15 @@ binary_sensor:
|
||||
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
|
||||
|
||||
##### Sleep Modus NSPanel Button #####
|
||||
- platform: nextion
|
||||
name: ${device_name} Sleep Modus
|
||||
@@ -459,12 +530,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
|
||||
@@ -536,6 +607,14 @@ 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
|
||||
|
||||
##### last click sensor, the main action variable - push to HA #####
|
||||
- platform: nextion
|
||||
nextion_id: disp1
|
||||
@@ -662,9 +741,33 @@ switch:
|
||||
assumed_state: off
|
||||
optimistic: true
|
||||
|
||||
##### Notification unread #####
|
||||
- platform: template
|
||||
name: ${device_name} Notification unread
|
||||
id: notification_unread
|
||||
entity_category: config
|
||||
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
|
||||
|
||||
##### UPDATE TFT DISPLAY #####
|
||||
- platform: template
|
||||
name: Update TFT display
|
||||
name: ${device_name} Update TFT display
|
||||
id: tft_update
|
||||
entity_category: config
|
||||
turn_on_action:
|
||||
@@ -786,17 +889,10 @@ 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");
|
||||
- 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 #####
|
||||
- number.set:
|
||||
id: display_brightness
|
||||
value: !lambda 'return id(display_brightness_global);'
|
||||
@@ -814,3 +910,7 @@ display:
|
||||
{
|
||||
id(disp1).set_component_value("settings.a02",1);
|
||||
}
|
||||
- delay: 0.5s
|
||||
- switch.template.publish:
|
||||
id: nextion_init
|
||||
state: on
|
||||
|
||||
Reference in New Issue
Block a user