Compare commits
129 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 |
28
README.md
28
README.md
@@ -1,10 +1,10 @@
|
|||||||
# NSPanel Custom with HA Blueprint
|
# 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)
|
[](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.
|
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.*
|
### *That means you don't have to customize any code or change any lines in the code.*
|
||||||
|
|
||||||
So you have a nice graphical interface where you can build your NSPanel.
|
So you have a nice graphical interface where you can build your NSPanel.
|
||||||
@@ -14,17 +14,23 @@ 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)
|
||||||
|
|
||||||
🚀 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)
|
||||||
|
|
||||||
⭐ All Feature Requests can be found here [All Feature Request](https://github.com/Blackymas/NSPanel_HA_Blueprint/labels/new%20feature%20request)
|
⭐ 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)
|
🎉 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 :)**_
|
🙋 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:
|
||||||

|

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

|

|
||||||
|

|
||||||
|
|
||||||
(Home and Buttonpage)
|
(Home and Buttonpage)
|
||||||
|
|
||||||
@@ -44,7 +50,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l
|
|||||||

|

|
||||||

|

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

|

|
||||||
@@ -57,7 +63,7 @@ The goal was to create a version that allows everyone to use the NSpanel fully l
|
|||||||

|

|
||||||
|
|
||||||
|
|
||||||
(HA Device Seeting for Example temperature correction)
|
(HA Device Setting for Example temperature correction)
|
||||||
|
|
||||||
|
|
||||||
## Blueprint:
|
## Blueprint:
|
||||||
@@ -67,28 +73,28 @@ The goal was to create a version that allows everyone to use the NSpanel fully l
|
|||||||
|
|
||||||
|
|
||||||
## Features:
|
## 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)
|
- 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
|
- Button design is automatically generated based on the selected entity
|
||||||
- Buttons show current brightness and cover position in the button itself
|
- Buttons show current brightness and cover position in the button itself
|
||||||
- Buttons label can be assigned via blueprint
|
- Buttons label can be assigned via blueprint
|
||||||
- Weather + 5 days weather forcast
|
- Weather + 5 days weather forecast
|
||||||
- Thermostat + Touch + Relay control for floor heating
|
- 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
|
- Cover control (open, close, position-slider) - via long press
|
||||||
- Settings page (display brightness, display dim brightness, auto-dim, sleep mode, reboot NSPanel)
|
- Settings page (display brightness, display dim brightness, auto-dim, sleep mode, reboot NSPanel)
|
||||||
- Swipe between pages
|
- Swipe between pages
|
||||||
- Top menu with 10 icons for specific states
|
- Top menu with 10 icons for specific states
|
||||||
- Heating control (hot water)
|
- Heating control (hot water)
|
||||||
- modern design - design easy to change via Adobe Express (free + design template)
|
- Modern design - design easy to change via Adobe Express (free + design template)
|
||||||
- 2 pysical switches
|
- 2 physical switches
|
||||||
- and much more ;)
|
- and much more ;)
|
||||||
|
|
||||||
|
|
||||||
# Pages
|
# Pages
|
||||||
|
|
||||||
## Home
|
## Home
|
||||||
- current weather with button to Weather Forcast page
|
- Current weather with button to Weather Forcast page
|
||||||
- Hardware buttons can be freely assigned
|
- Hardware buttons can be freely assigned
|
||||||
- Hardware button label or without label
|
- Hardware button label or without label
|
||||||
- Blue line indicates on or off of the entity
|
- Blue line indicates on or off of the entity
|
||||||
@@ -135,8 +141,8 @@ The goal was to create a version that allows everyone to use the NSpanel fully l
|
|||||||
- Hot water button
|
- Hot water button
|
||||||
|
|
||||||
|
|
||||||
## Weather Forcast
|
## Weather Forecast
|
||||||
- 5 days Weather Forcast via swipe (Integration Accuweather - but should also go with another integration)
|
- 5 days Weather Forecast via swipe (Integration Accuweather - but should also go with another integration)
|
||||||
- Lowest and highest temperature outside
|
- Lowest and highest temperature outside
|
||||||
- Date
|
- Date
|
||||||
- Rain probability
|
- Rain probability
|
||||||
|
|||||||
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
@@ -124,6 +124,14 @@ api:
|
|||||||
- service: upload_tft
|
- service: upload_tft
|
||||||
then:
|
then:
|
||||||
- lambda: 'id(disp1)->upload_tft();'
|
- 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 to send a command "printf" directly to the display #####
|
||||||
- service: send_command_printf
|
- service: send_command_printf
|
||||||
@@ -179,6 +187,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:
|
||||||
@@ -189,6 +198,46 @@ api:
|
|||||||
switch.is_on: nextion_init
|
switch.is_on: nextion_init
|
||||||
- lambda: 'id(disp1).set_component_background_color(component.c_str(), message);'
|
- 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 to send thermostat cycle state ####
|
||||||
- service: send_thermostat_cycle_state
|
- service: send_thermostat_cycle_state
|
||||||
variables:
|
variables:
|
||||||
@@ -404,7 +453,7 @@ binary_sensor:
|
|||||||
number: 27
|
number: 27
|
||||||
inverted: true
|
inverted: true
|
||||||
|
|
||||||
##### Restart NSPanel Button #####
|
##### Restart NSPanel Button - Setting Page #####
|
||||||
- platform: nextion
|
- platform: nextion
|
||||||
name: ${device_name} Restart
|
name: ${device_name} Restart
|
||||||
page_id: 7
|
page_id: 7
|
||||||
@@ -413,6 +462,15 @@ binary_sensor:
|
|||||||
on_click:
|
on_click:
|
||||||
- button.press: restart_nspanel
|
- 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 #####
|
##### Sleep Modus NSPanel Button #####
|
||||||
- platform: nextion
|
- platform: nextion
|
||||||
name: ${device_name} Sleep Modus
|
name: ${device_name} Sleep Modus
|
||||||
@@ -472,12 +530,12 @@ sensor:
|
|||||||
reference_resistance: 10kOhm
|
reference_resistance: 10kOhm
|
||||||
filters:
|
filters:
|
||||||
- lambda: return x + id(temperature_correction_global);
|
- lambda: return x + id(temperature_correction_global);
|
||||||
on_value:
|
# on_value:
|
||||||
then:
|
# then:
|
||||||
- wait_until:
|
# - wait_until:
|
||||||
switch.is_on: nextion_init
|
# 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("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);
|
# - lambda: id(disp1).set_component_text_printf("climate.current_temp", "%.1f", id(temp_nspanel).state);
|
||||||
|
|
||||||
##### current value of page-climate target_temp #####
|
##### current value of page-climate target_temp #####
|
||||||
- platform: template
|
- platform: template
|
||||||
@@ -549,6 +607,14 @@ text_sensor:
|
|||||||
name: ${device_name} BSSID
|
name: ${device_name} BSSID
|
||||||
disabled_by_default: true
|
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 #####
|
##### last click sensor, the main action variable - push to HA #####
|
||||||
- platform: nextion
|
- platform: nextion
|
||||||
nextion_id: disp1
|
nextion_id: disp1
|
||||||
@@ -675,9 +741,33 @@ switch:
|
|||||||
assumed_state: off
|
assumed_state: off
|
||||||
optimistic: true
|
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 #####
|
##### UPDATE TFT DISPLAY #####
|
||||||
- platform: template
|
- platform: template
|
||||||
name: Update TFT display
|
name: ${device_name} Update TFT display
|
||||||
id: tft_update
|
id: tft_update
|
||||||
entity_category: config
|
entity_category: config
|
||||||
turn_on_action:
|
turn_on_action:
|
||||||
@@ -799,17 +889,10 @@ display:
|
|||||||
tft_url: ${nextion_update_url}
|
tft_url: ${nextion_update_url}
|
||||||
on_setup:
|
on_setup:
|
||||||
then:
|
then:
|
||||||
- lambda: id(disp1).send_command_printf("page 9"); ##### CHANGE! - Loading page #####
|
- lambda: id(disp1).send_command_printf("page 8");
|
||||||
- wait_until:
|
- wait_until:
|
||||||
api.connected
|
api.connected
|
||||||
- delay: 0.5s
|
- 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:
|
- number.set:
|
||||||
id: display_brightness
|
id: display_brightness
|
||||||
value: !lambda 'return id(display_brightness_global);'
|
value: !lambda 'return id(display_brightness_global);'
|
||||||
@@ -827,3 +910,7 @@ display:
|
|||||||
{
|
{
|
||||||
id(disp1).set_component_value("settings.a02",1);
|
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