From 386d39d85ac434bfec52803197a466549e1b7f5f Mon Sep 17 00:00:00 2001 From: Andy Thomas Date: Fri, 29 Mar 2024 09:33:04 +0100 Subject: [PATCH 01/10] Update addon_climate.md --- docs/addon_climate.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/addon_climate.md b/docs/addon_climate.md index 495440f..b78d133 100644 --- a/docs/addon_climate.md +++ b/docs/addon_climate.md @@ -19,7 +19,7 @@ Don't use it for directly power your cooler/heater if exceeding the panel specif ## Installation You will need to add the reference to `addon_climate_heat`, `addon_climate_cool` or `addon_climate_dual` files on your ESPHome settings in the `package` section -and after the `remote_package` (base code), as shown bellow (for `heat` in this example): +and after the `remote_package` (base code), as shown below (for `heat` in this example): > [!NOTE] > Occasionally, ESPHome updates may result in the `entity_id` of embedded thermostats being appended with `_2`. @@ -210,7 +210,7 @@ packages: ### Real Use Case Example: Water Underfloor Heating with NSPanel The NSPanel works nicely as a replacement for existing water underfloor heating controllers, installed at eye level and often powered by 100-240VAC. In my specific use case, the control valve is of the 'normally closed' type, meaning that an open relay indicates 'no heating.' -I have utilized relay #1 for this purpose. It's important to note that this setup does not act as a PID controller but operates on a simple on-off mechanism. +I have utilized relay #1 for this purpose. It's important to note that this setup does not act as a PID controller, but operates on a simple on-off mechanism. The system initiates heating at a preset value below and turns it off at a value above the set point. I have set these values to `0.1°C` below and `0.1°C` above the target temperature, respectively. These adjustments have been effectively maintaining the desired temperature in all of our four rooms. From ea459c8bf42db1435fda6365c4f13a71b25cc034 Mon Sep 17 00:00:00 2001 From: Andy Thomas Date: Fri, 29 Mar 2024 09:51:01 +0100 Subject: [PATCH 02/10] Update customization.md --- docs/customization.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/docs/customization.md b/docs/customization.md index 5d3b0a6..44fe95c 100644 --- a/docs/customization.md +++ b/docs/customization.md @@ -541,11 +541,7 @@ time: ### Frameworks > [!IMPORTANT] > When switching between frameworks, make sure to update the device with a serial cable as the partition table is different between the two frameworks -as [OTA Update Component](https://esphome.io/components/ota) updates will not change the partition table. - -The `arduino` protocol still more popular and therefore more components are available, but as `esp-idf` is maintained by EspressIF and is kept updated, -more boards are supported and the memory management is better, making it ideal if you wanna customize your panel to support memory consumption functionalities, -like `bluetooth_proxy` or [Improv](https://www.improv-wifi.com/). +as [OTA Update Component](https://esphome.io/components/ota) updates will not change the partition table. While it will appear to work, the device will boot the old framework after a reset. This project currently uses `esp-idf` as default framework. You can overlap the settings with this customization. @@ -553,6 +549,12 @@ You can overlap the settings with this customization. > [!NOTE] > For more info about frameworks, please visit [ESPHome docs](https://esphome.io/components/esp32). +`esp-idf` is maintained by EspressIF and is kept updated, +more boards are supported and the memory management is better, making it ideal if you wanna customize your panel to support memory consumption functionalities, +like `bluetooth_proxy` or [Improv](https://www.improv-wifi.com/). Consequently, this project uses `esp-idf` as the default framework since `v4.3`. + +However, the `arduino` protocol still very popular and, therefore, more components are available and the project allows to switch between the frameworks by adding the following lines in your panel's yaml file. + #### Framework `arduino` ```yaml # Change framework to `arduino` @@ -563,6 +565,7 @@ esp32: #### Framework `esp-idf` ```yaml # Change framework to `esp-idf` +# (should not be required) esp32: framework: type: esp-idf From cccbdd96fd66e3593fcb09c906aaf7fa476c465c Mon Sep 17 00:00:00 2001 From: Andy Thomas Date: Fri, 29 Mar 2024 09:57:53 +0100 Subject: [PATCH 03/10] Update different_version.md --- docs/different_version.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/different_version.md b/docs/different_version.md index dd14926..163d7df 100644 --- a/docs/different_version.md +++ b/docs/different_version.md @@ -65,11 +65,11 @@ They're created for each new release, allowing easy access to different project ### For Nextion TFT Component The instructions to upload TFT will vary depending on the version you are installing and the framework you are using. -#### v4.2 or later (ESP-IDF) or v4.2.5 or later (Arduino) +#### v4.2 or later (if you are using ESP-IDF) or v4.2.5 or later (if you are using Arduino) 1. Go to your device's page under **Settings** > **Devices & Services** > **ESPHome**. 2. On the **Configuration** group, press **Update TFT display** and wait for the upload to complete. The system will automatically find the right TFT file for the ESPHome version you are running. -#### v4.1 or earlier, or v4.2.4 or earlier for Arduino framework +#### v4.1 or earlier (in either case) or v4.2.4 or earlier (if you are using Arduino) 1. On the GitHub repository, click on your chosen version name on the [NSPanel_HA_Blueprint Tags](https://github.com/Blackymas/NSPanel_HA_Blueprint/tags) list, then select the tab **Code**. 2. Double-check that the correct version is shown below the repository name: From a665abd22c35e12b504816839fedc870403ee2db Mon Sep 17 00:00:00 2001 From: Andy Thomas Date: Fri, 29 Mar 2024 10:07:18 +0100 Subject: [PATCH 04/10] Update error_initializing.md --- docs/error_initializing.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/error_initializing.md b/docs/error_initializing.md index 05d6da8..cc408f7 100644 --- a/docs/error_initializing.md +++ b/docs/error_initializing.md @@ -1,11 +1,11 @@ # Panel startup issues When your panel starts, a number of different things needs to be set and the ESPHome must establish connection to the Nextion display used by your panel -and also to your Home Assistant, which will provide the propper settings required by your panel. +and also to your Home Assistant, which will provide the proper settings required by your panel. If everything goes right, the boot page will be shown for just a few seconds, then the wake-up page will be shown. If something happens during this process, your panel may get stuck on this page. -In many cases, restarting your panel can resolve the issue, but if after a reboot it still showing the boot page, this guide may help you. +In many cases, restarting your panel can resolve the issue, but if it is still showing the boot page after a reboot, this guide may help you. Understanding what is shown on the boot page can be useful to find the cause of the problem or when you are looking for help. @@ -13,11 +13,11 @@ Understanding what is shown on the boot page can be useful to find the cause of Your boot page probably looks like this: -**Before ESPHome is connected:** +**Before Home Assistant/ESPHome is connected:** ![Boot page Initializing](pics/eu_boot_initializing.png) -**When ESPHome is connected:** +**When Home Assistant/ESPHome is connected:** ![Boot page with IP](pics/eu_boot_with_ip_address.png) @@ -49,7 +49,7 @@ If some of those versions are not shown, you can have an indication of where a p - **TFT** version will always be shown, as that is part of the display itself. - **ESPHome** version will be shown as soon the ESPHome establishes the communication with the display. -- **Blueprint** version requires both ESPHome and Blueprint to establish communication to be shown. +- **Blueprint** version requires both ESPHome and the Blueprint (in Home Assistant) to establish communication to be shown. In normal situation, all the versions should be displayed and should be the same. Different patch versions are supported. @@ -86,7 +86,7 @@ In some cases you can also see duplicate entities on the device's page in Home A | You may have an older version of the blueprint installed or the blueprint isn't installed into your Home Assistant. | [Install the blueprint](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgithub.com%2FBlackymas%2FNSPanel_HA_Blueprint%2Fblob%2Fmain%2Fnspanel_blueprint.yaml).
[Update the blueprint](howto.md#update-blueprint).| | You don't have an automation created using the blueprint. | On Home Assistant, go to **Settings** --> **Automations & Scenes** --> **Blueprints** --> **NSPanel Configuration** --> **CREATE AUTOMATION** and follow the [instructions to setup your automation](blueprint.md).
**Attention!!** You need one automation per panel, if you have more than one panel set. | | Your panel is not selected in the automation. | Open the automation related to your panel and make sure the right device is set on the **NSPanel device** field. | -| Your panel's connection to Home Assistant may have issues.
This could be from an invalid entity Id, or some service missing registration. | Reconnect the Panel's device to Home Assistant:
1. Go to **Settings** --> **Devices & Services** --> **ESPHome**
2. Delete the device
3. Restart Home Assistant host
4. Go back to **Settings** --> **Devices & Services**
5. Click **Add integration**
6. Select **ESPHome**
7. Enter your panel's hostname or IP address.| +| Your panel's connection to Home Assistant may have issues.
This could be from an invalid entity Id (e.g. ending with `_2`), or some service missing registration. | Reconnect the Panel's device to Home Assistant:
1. Go to **Settings** --> **Devices & Services** --> **ESPHome**
2. Delete the device
3. Restart Home Assistant host
4. Go back to **Settings** --> **Devices & Services**
5. Click **Add integration**
6. Select **ESPHome**
7. Enter your panel's hostname or IP address.| ## Additional Tips and Resources @@ -94,8 +94,8 @@ In some cases you can also see duplicate entities on the device's page in Home A After troubleshooting, if issues persist, consult the [Issues](https://github.com/Blackymas/NSPanel_HA_Blueprint/issues) and feel free to create a new one asking for more personalized assistance. Please share as much info as possible, like: -1. Describing (or a picture of) what is in your screen -2. Are updating from a previous version of this same project, or coming from another NSPanel customization (which one?) or customizing for the first time a panel with original Sonoff settings? +1. Describing (or a picture of) what is on your screen +2. Are you updating from a previous version of this project, or you coming from another NSPanel customization (which one?) or are you customizing for the first time a panel with the original Sonoff settings? 3. Please share the ESPHome logs from when your panel starts to the moment the upload fails. 4. Describe what you have already tried. From 653b525bf0caeee70310a619b62061782b9d87a1 Mon Sep 17 00:00:00 2001 From: Andy Thomas Date: Fri, 29 Mar 2024 10:14:26 +0100 Subject: [PATCH 05/10] Update howto.md --- docs/howto.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/howto.md b/docs/howto.md index 5d1344e..89d6aed 100644 --- a/docs/howto.md +++ b/docs/howto.md @@ -138,13 +138,13 @@ The new firmware will be built and then flashed to your panel, which will restar 4. The display starts the update process and then restarts. ## Notification via HA -To show a notification on the NSPAnel, the following service call can be used: +To show a notification on the NSPanel, the following service call can be used: ```yaml service: esphome.panelname_notification_show data: - label: Example text - message: Example text + label: Example label text + message: Example message text ``` > [!NOTE] > For more details about this service call, please refer to our [API documentation](api.md#notification-show-service-notification_show). @@ -177,7 +177,7 @@ trigger: ## Climate control with Relays > [!ATTENTION] -> Although these instructions are still valid, since v4.0 there is a better way to setup a climate control using the panel's relays an the [add-on climate](addon_climate.md). +> Although these instructions are still valid, since v4.0 there is a better way to setup a climate control using the panel's relays an the [add-on climate](addon_climate.md), which will continue to work even if Home Assistant and/or WiFi are not available. You probably only want to use this approach, if you are not using the build-in thermometer. In order to use the NSPanel to control a radiator or underfloor heating, at least one Generic Thermostat must be created in the HA. More information can be found here: https://www.home-assistant.io/integrations/generic_thermostat/ From ea5e349d7ae7516f9b5d6c36a061e1252e920b28 Mon Sep 17 00:00:00 2001 From: Andy Thomas Date: Fri, 29 Mar 2024 10:32:05 +0100 Subject: [PATCH 06/10] Update install.md --- docs/install.md | 6 +++++- .../ha_esphome_dashboard_new_device_05.png | Bin 44309 -> 69739 bytes .../ha_esphome_dashboard_new_device_05c.png | Bin 0 -> 21675 bytes 3 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 docs/pics/ha_esphome_dashboard_new_device_05c.png diff --git a/docs/install.md b/docs/install.md index e554490..da4c19e 100644 --- a/docs/install.md +++ b/docs/install.md @@ -88,8 +88,12 @@ Follow these steps to add a new device in the ESPHome Dashboard: ![Skip Installation](pics/ha_esphome_dashboard_new_device_03.png) 5. Locate your newly created device in the ESPHome Dashboard and click **Edit**. ![Edit Device](pics/ha_esphome_dashboard_new_device_04.png) -6. (Optional) For enhanced security, consider copying the `api:` section to a temporary file. +6. (Optional) For enhanced security, consider copying the `api:` entry to your panel's yaml file while adding the key itself to the secrets file ![API Section](pics/ha_esphome_dashboard_new_device_05.png) + +which can be edited clicking `secrets` at the top right of your ESPHome menu. + + ![API Section](pics/ha_esphome_dashboard_new_device_05c.png) 7. Note the device name at the beginning of the file under `esphome`. ![Device Name](pics/ha_esphome_dashboard_new_device_05b.png) 8. Clear all existing content and paste the following YAML configuration: diff --git a/docs/pics/ha_esphome_dashboard_new_device_05.png b/docs/pics/ha_esphome_dashboard_new_device_05.png index 3c8bb7c3592da0c641e3f3d744814f57a40398f0..1663c69ce716e16d60ff23791041bb5d6b1f5de9 100644 GIT binary patch literal 69739 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 N14T835;^0*{{d$2`yBuP diff --git a/docs/pics/ha_esphome_dashboard_new_device_05c.png b/docs/pics/ha_esphome_dashboard_new_device_05c.png new file mode 100644 index 0000000000000000000000000000000000000000..a0cfe54108830c85c0c56e07e3cb6e36c174cbde GIT binary patch literal 21675 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 literal 0 HcmV?d00001 From ab04f7a86db168d08a5407c6a3f395ba12a1c84d Mon Sep 17 00:00:00 2001 From: Andy Thomas Date: Fri, 29 Mar 2024 11:28:49 +0100 Subject: [PATCH 07/10] Markdown lint --- docs/customization.md | 3 ++- docs/howto.md | 22 ++++++++++++---------- docs/install.md | 2 -- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/docs/customization.md b/docs/customization.md index 44fe95c..8b308af 100644 --- a/docs/customization.md +++ b/docs/customization.md @@ -553,7 +553,8 @@ You can overlap the settings with this customization. more boards are supported and the memory management is better, making it ideal if you wanna customize your panel to support memory consumption functionalities, like `bluetooth_proxy` or [Improv](https://www.improv-wifi.com/). Consequently, this project uses `esp-idf` as the default framework since `v4.3`. -However, the `arduino` protocol still very popular and, therefore, more components are available and the project allows to switch between the frameworks by adding the following lines in your panel's yaml file. +However, the `arduino` protocol still very popular and, therefore, more components are available and the project allows to switch between the frameworks +by adding the following lines in your panel's yaml file. #### Framework `arduino` ```yaml diff --git a/docs/howto.md b/docs/howto.md index 89d6aed..0da632f 100644 --- a/docs/howto.md +++ b/docs/howto.md @@ -12,15 +12,15 @@ You can write a short message with your findings, and we'll include it here. Below are the topics covered in this document, each with relevant tips and solutions. 1. [How do I create "Issues" when I have a problem ](#how-to-create-issues-when-i-have-a-problem) -1. [Update Blueprint](#update-blueprint) -1. [Update ESPHome](#update-esphome) -1. [Update TFT](#update-tft) -1. [Notification via HA](#notification-via-ha) -1. [Climate control with relays](#climate-control-with-relays) -1. [Call a page directly](#call-a-page-directly) -1. [Play RTTTL Sound](#play-rtttl-sound) -1. [Start automations via Input_Boolean](#start-automations-via-input_boolean) -1. [Updating Wi-Fi and OTA passwords in ESPHome with this project](#updating-wi-fi-settings-and-ota-passwords-in-esphome-with-this-project) +2. [Update Blueprint](#update-blueprint) +3. [Update ESPHome](#update-esphome) +4. [Update TFT](#update-tft) +5. [Notification via HA](#notification-via-ha) +6. [Climate control with relays](#climate-control-with-relays) +7. [Call a page directly](#call-a-page-directly) +8. [Play RTTTL Sound](#play-rtttl-sound) +9. [Start automations via Input_Boolean](#start-automations-via-input_boolean) +10. [Updating Wi-Fi and OTA passwords in ESPHome with this project](#updating-wi-fi-settings-and-ota-passwords-in-esphome-with-this-project) ## How to create "issues" when I have a problem @@ -177,7 +177,9 @@ trigger: ## Climate control with Relays > [!ATTENTION] -> Although these instructions are still valid, since v4.0 there is a better way to setup a climate control using the panel's relays an the [add-on climate](addon_climate.md), which will continue to work even if Home Assistant and/or WiFi are not available. You probably only want to use this approach, if you are not using the build-in thermometer. +> Although these instructions are still valid, since v4.0 there is a better way to setup a climate control using the panel's relays an the [add-on climate](addon_climate.md), +> which will continue to work even if Home Assistant and/or WiFi are not available. +> You probably only want to use this approach, if you are not using the build-in thermometer. In order to use the NSPanel to control a radiator or underfloor heating, at least one Generic Thermostat must be created in the HA. More information can be found here: https://www.home-assistant.io/integrations/generic_thermostat/ diff --git a/docs/install.md b/docs/install.md index da4c19e..45ec0ea 100644 --- a/docs/install.md +++ b/docs/install.md @@ -143,12 +143,10 @@ Learn about secrets in ESPHome: [Home Assistant Secrets in ESPHome](https://www. > it is strongly recommended to use HTTP, especially when employing the `arduino` framework. > The support for HTTPS in this context can be unstable, > often leading to issues with file transfers. - 12. (Optional) Enhance security with API encryption by adding the copied key from step 6 to the **My Customization** area. > [!TIP] > You can get a new randomly generated valid key from [ESPHome Native API Component](https://esphome.io/components/api.html#configuration-variables) page. - 13. After finalizing settings, click **Save** and close the YAML window. Your NSPanel is now configured in your ESPHome Dashboard. From a00e87b14705397f5e023452da4166b64f72a08e Mon Sep 17 00:00:00 2001 From: Andy Thomas Date: Fri, 29 Mar 2024 17:01:42 +0100 Subject: [PATCH 08/10] markdown lint --- docs/install.md | 56 ++++++++++++++++++++++++------------------------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/docs/install.md b/docs/install.md index 45ec0ea..301a92f 100644 --- a/docs/install.md +++ b/docs/install.md @@ -97,35 +97,35 @@ which can be edited clicking `secrets` at the top right of your ESPHome menu. 7. Note the device name at the beginning of the file under `esphome`. ![Device Name](pics/ha_esphome_dashboard_new_device_05b.png) 8. Clear all existing content and paste the following YAML configuration: - ```yaml - substitutions: - # Settings - Editable values - device_name: "YOUR_NSPANEL_NAME" - friendly_name: "Your panel's friendly name" - wifi_ssid: !secret wifi_ssid - wifi_password: !secret wifi_password - nextion_update_url: "http://homeassistant.local:8123/local/nspanel_eu.tft" # Optional - # Add-on configuration (if needed) - # heater_relay: "1" # Possible values: "1" or "2" +```yaml +substitutions: + # Settings - Editable values + device_name: "YOUR_NSPANEL_NAME" + friendly_name: "Your panel's friendly name" + wifi_ssid: !secret wifi_ssid + wifi_password: !secret wifi_password + nextion_update_url: "http://homeassistant.local:8123/local/nspanel_eu.tft" # Optional + # Add-on configuration (if needed) + # heater_relay: "1" # Possible values: "1" or "2" - # Customization area - ##### My customization - Start ##### - ##### My customization - End ##### +# Customization area +##### My customization - Start ##### +##### My customization - End ##### - # Core and optional configurations - packages: - remote_package: - url: https://github.com/Blackymas/NSPanel_HA_Blueprint - ref: main - files: - - nspanel_esphome.yaml # Basic package - # Optional advanced and add-on configurations - # - esphome/nspanel_esphome_advanced.yaml - # - nspanel_esphome_addon_climate_cool.yaml - # - nspanel_esphome_addon_climate_heat.yaml - # - nspanel_esphome_addon_climate_dual.yaml - refresh: 300s - ``` +# Core and optional configurations +packages: + remote_package: + url: https://github.com/Blackymas/NSPanel_HA_Blueprint + ref: main + files: + - nspanel_esphome.yaml # Basic package + # Optional advanced and add-on configurations + # - esphome/nspanel_esphome_advanced.yaml + # - nspanel_esphome_addon_climate_cool.yaml + # - nspanel_esphome_addon_climate_heat.yaml + # - nspanel_esphome_addon_climate_dual.yaml + refresh: 300s +``` ![YAML Code](pics/ha_esphome_dashboard_new_device_06.png) 9. Modify the **Settings** section with your device name (as noted in step 7) and Wi-Fi details. @@ -136,7 +136,6 @@ Learn about secrets in ESPHome: [Home Assistant Secrets in ESPHome](https://www. ensuring that the file is accessible to the NSPanel. This URL will be used by ESPHome to download the TFT file to your panel. For more information on hosting the TFT file and setting up the URL, see the [Upload TFT](#upload-tft) section. - > [!CAUTION] > **Prefer HTTP over HTTPS for File Transfer** > While you might encounter examples using HTTPS in URLs for file transfer, @@ -144,7 +143,6 @@ Learn about secrets in ESPHome: [Home Assistant Secrets in ESPHome](https://www. > The support for HTTPS in this context can be unstable, > often leading to issues with file transfers. 12. (Optional) Enhance security with API encryption by adding the copied key from step 6 to the **My Customization** area. - > [!TIP] > You can get a new randomly generated valid key from [ESPHome Native API Component](https://esphome.io/components/api.html#configuration-variables) page. 13. After finalizing settings, click **Save** and close the YAML window. From f964620f57c61716ef4168184c42e790617df2ac Mon Sep 17 00:00:00 2001 From: Edward Firmo <94725493+edwardtfn@users.noreply.github.com> Date: Fri, 29 Mar 2024 19:17:26 +0100 Subject: [PATCH 09/10] Fix indentation for numeric list To not break the display as a list. --- docs/install.md | 68 +++++++++++++++++++++++++++++-------------------- 1 file changed, 40 insertions(+), 28 deletions(-) diff --git a/docs/install.md b/docs/install.md index 301a92f..4eb2ce0 100644 --- a/docs/install.md +++ b/docs/install.md @@ -80,58 +80,68 @@ Detailed steps for a manual installation can be found in the guide [Installing E Follow these steps to add a new device in the ESPHome Dashboard: 1. Click the **+ New Device** button. + 2. Enter a unique name for your new ESPHome device. ![New Device Name](pics/ha_esphome_dashboard_new_device_01.png) + 3. Select **ESP32** as the device type. ![Select ESP32](pics/ha_esphome_dashboard_new_device_02.png) + 4. Click **Skip** as we're not starting the installation yet. ![Skip Installation](pics/ha_esphome_dashboard_new_device_03.png) + 5. Locate your newly created device in the ESPHome Dashboard and click **Edit**. ![Edit Device](pics/ha_esphome_dashboard_new_device_04.png) + 6. (Optional) For enhanced security, consider copying the `api:` entry to your panel's yaml file while adding the key itself to the secrets file ![API Section](pics/ha_esphome_dashboard_new_device_05.png) -which can be edited clicking `secrets` at the top right of your ESPHome menu. + which can be edited clicking `secrets` at the top right of your ESPHome menu. ![API Section](pics/ha_esphome_dashboard_new_device_05c.png) + 7. Note the device name at the beginning of the file under `esphome`. ![Device Name](pics/ha_esphome_dashboard_new_device_05b.png) + 8. Clear all existing content and paste the following YAML configuration: -```yaml -substitutions: - # Settings - Editable values - device_name: "YOUR_NSPANEL_NAME" - friendly_name: "Your panel's friendly name" - wifi_ssid: !secret wifi_ssid - wifi_password: !secret wifi_password - nextion_update_url: "http://homeassistant.local:8123/local/nspanel_eu.tft" # Optional - # Add-on configuration (if needed) - # heater_relay: "1" # Possible values: "1" or "2" + ```yaml + substitutions: + # Settings - Editable values + device_name: "YOUR_NSPANEL_NAME" + friendly_name: "Your panel's friendly name" + wifi_ssid: !secret wifi_ssid + wifi_password: !secret wifi_password + nextion_update_url: "http://homeassistant.local:8123/local/nspanel_eu.tft" # Optional + # Add-on configuration (if needed) + # heater_relay: "1" # Possible values: "1" or "2" -# Customization area -##### My customization - Start ##### -##### My customization - End ##### + # Customization area + ##### My customization - Start ##### + ##### My customization - End ##### -# Core and optional configurations -packages: - remote_package: - url: https://github.com/Blackymas/NSPanel_HA_Blueprint - ref: main - files: - - nspanel_esphome.yaml # Basic package - # Optional advanced and add-on configurations - # - esphome/nspanel_esphome_advanced.yaml - # - nspanel_esphome_addon_climate_cool.yaml - # - nspanel_esphome_addon_climate_heat.yaml - # - nspanel_esphome_addon_climate_dual.yaml - refresh: 300s -``` + # Core and optional configurations + packages: + remote_package: + url: https://github.com/Blackymas/NSPanel_HA_Blueprint + ref: main + files: + - nspanel_esphome.yaml # Basic package + # Optional advanced and add-on configurations + # - esphome/nspanel_esphome_advanced.yaml + # - nspanel_esphome_addon_climate_cool.yaml + # - nspanel_esphome_addon_climate_heat.yaml + # - nspanel_esphome_addon_climate_dual.yaml + refresh: 300s + ``` ![YAML Code](pics/ha_esphome_dashboard_new_device_06.png) + 9. Modify the **Settings** section with your device name (as noted in step 7) and Wi-Fi details. ![Edit Settings](pics/ha_esphome_dashboard_new_device_06b.png) + 10. For Wi-Fi credentials, use `!secret` for added security or input them directly. Learn about secrets in ESPHome: [Home Assistant Secrets in ESPHome](https://www.youtube.com/watch?v=eW4vKDeHh7Y). + 11. (Optional) Adjust `nextion_update_url` to the URL of a TFT file hosted on an HTTP or HTTPS server, ensuring that the file is accessible to the NSPanel. This URL will be used by ESPHome to download the TFT file to your panel. @@ -142,9 +152,11 @@ Learn about secrets in ESPHome: [Home Assistant Secrets in ESPHome](https://www. > it is strongly recommended to use HTTP, especially when employing the `arduino` framework. > The support for HTTPS in this context can be unstable, > often leading to issues with file transfers. + 12. (Optional) Enhance security with API encryption by adding the copied key from step 6 to the **My Customization** area. > [!TIP] > You can get a new randomly generated valid key from [ESPHome Native API Component](https://esphome.io/components/api.html#configuration-variables) page. + 13. After finalizing settings, click **Save** and close the YAML window. Your NSPanel is now configured in your ESPHome Dashboard. From 6c52b16ed13d2b841dafc5bc0103dff8522477a9 Mon Sep 17 00:00:00 2001 From: Edward Firmo <94725493+edwardtfn@users.noreply.github.com> Date: Fri, 29 Mar 2024 19:42:19 +0100 Subject: [PATCH 10/10] Fix missing links --- docs/lovelace_ui.md | 2 +- hmi/dev/manuals_screenshots.md | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/lovelace_ui.md b/docs/lovelace_ui.md index dbba07e..04e9e8a 100644 --- a/docs/lovelace_ui.md +++ b/docs/lovelace_ui.md @@ -12,7 +12,7 @@ If you are coming from there, you have to chose one of the 3 options: ### Common steps -1. Download the file [`nspanel_blank.tft`](../nspanel_blank.tft) from our GitHub repository. +1. Download the file [`nspanel_blank.tft`](../hmi/nspanel_blank.tft) from our GitHub repository. 2. Upload the same file (`nspanel_blank.tft`) to the folder _**"www"**_ in your Home Assistant 3. Double check if the file is available by trying to download it using your local url (typically [`http://homeassistant.local:8123/local/nspanel_blank.tft`](http://homeassistant.local:8123/local/nspanel_blank.tft)). diff --git a/hmi/dev/manuals_screenshots.md b/hmi/dev/manuals_screenshots.md index d6e9cb0..380036c 100644 --- a/hmi/dev/manuals_screenshots.md +++ b/hmi/dev/manuals_screenshots.md @@ -15,9 +15,9 @@ framework.txt="esp-idf" ip_addr.txt="192.168.0.123" ``` -![Boot EU](../docs/pics/eu_boot.png) +![Boot EU](../../docs/pics/eu_boot.png) -![Boot US](../docs/pics/us_boot.png) +![Boot US](../../docs/pics/us_boot.png) ## Home page @@ -59,7 +59,7 @@ value03_state.txt="715 W" value03_icon.txt="" ``` -![Home EU](../docs/pics/eu_home.png) +![Home EU](../../docs/pics/eu_home.png) **US version:** @@ -100,7 +100,7 @@ value03_state.txt="715 W" value03_icon.txt="" ``` -![Home US](../docs/pics/us_home.png) +![Home US](../../docs/pics/us_home.png) ## Settings page @@ -108,8 +108,8 @@ value03_icon.txt="" page settings ``` -![Settings EU](../docs/pics/eu_settings.png) -![Settings US](../docs/pics/us_settings.png) +![Settings EU](../../docs/pics/eu_settings.png) +![Settings US](../../docs/pics/us_settings.png) ## Buttons pages (DRAFT)