6 Commits

Author SHA1 Message Date
Edward Firmo
d71a1e1fe8 Change slider focus with click on temperature values 2024-01-08 16:04:03 +01:00
Edward Firmo
cded65a9ec Lint 2024-01-08 15:49:13 +01:00
Edward Firmo
f24ba9739d Lint 2024-01-08 15:40:33 +01:00
Edward Firmo
86acccc36b Updated install 2024-01-08 15:37:15 +01:00
Edward Firmo
cfb8352f85 Lint 2024-01-08 12:39:03 +01:00
Edward Firmo
a056106a9f Lint 2024-01-08 12:35:59 +01:00
36 changed files with 241 additions and 59 deletions

View File

@@ -27,9 +27,11 @@ This upgrade is designed to significantly increase the available memory on the E
While the change is around the corner, there's no need to rush. You have time to get ready for this transition.
When it's time to switch, youll need to flash your device using a serial cable, similar to what you did for your first custom firmware installation.
If you happen to need a serial firmware installation before March, consider giving `esp-idf` a try earlier. Its already supported and a good step towards future-proofing your setup.
If you happen to need a serial firmware installation before March, consider giving `esp-idf` a try earlier.
Its already supported and a good step towards future-proofing your setup.
And if you're not able to make the switch by March or can't flash via serial, don't worry. Youll still have the option to use the `arduino` framework and update your device wirelessly (OTA).
And if you're not able to make the switch by March or can't flash via serial, don't worry.
Youll still have the option to use the `arduino` framework and update your device wirelessly (OTA).
For all the details on customizing the framework, our [customization docs](docs/customization.md#framework-esp-idf) are there to help.
We're committed to making this transition as smooth as possible, so reach out if you have any concerns or need assistance.
@@ -106,7 +108,8 @@ We did our best to support your legacy settings and avoid breaking your system,
12. ***Action required:* Reset your wake-up page selection.**
We've enhanced the wake-up page functionality for improved consistency after power cycles.
Previously, the system didn't remember your selection following a power outage. With our latest update, this issue has been resolved.
Previously, the system didn't remember your selection following a power outage.
With our latest update, this issue has been resolved.
However, this improvement requires you to reselect your wake-up page one more time.
Thanks for your cooperation in making these settings more reliable for everyday use.
@@ -140,7 +143,8 @@ Expect a unified visual experience that aligns the look and feel of icons throug
### 2. Additional custom buttons on Home page
It's that simple, now you have 7 buttons where used to be 3. Well, where used to be 4, as the space previously used by the Alarm button is now a custom button. 😉
It's that simple, now you have 7 buttons where used to be 3.
Well, where used to be 4, as the space previously used by the Alarm button is now a custom button. 😉
### 3. Outdoor temperature selectable font size
@@ -162,9 +166,11 @@ You can also select the size of the icons on the buttos pages:
### 5. Support to CJK languages (experimental)
You will find 3 new TFT files on the repository for the CJK languages. These files are considerably bigger, as the fonts requires more memory, but it should work fine in your panel.
You will find 3 new TFT files on the repository for the CJK languages.
These files are considerably bigger, as the fonts requires more memory, but it should work fine in your panel.
**ATTENTION:** This is an experimental feature and may contain bugs or some areas missing translations. Please report if you find anything.
**ATTENTION:** This is an experimental feature and may contain bugs or some areas missing translations.
Please report if you find anything.
### 6. Improved TFT transfer
@@ -197,13 +203,15 @@ To enable an alternative upload TFT baud rate, add the desired value in your sub
upload_tft_baud_rate: "9600"
```
If an invalid value is entered, 115200 bps will be used. The default value for this substitution (in case it is not set by users) will be 921600 bps.
If an invalid value is entered, 115200 bps will be used.
The default value for this substitution (in case it is not set by users) will be 921600 bps.
During a TFT transfer, the system will always fall back to the standard baud rate (115200 bps) if other tentatives fails.
### 7. Multiple Alarm Control Panels
Now alarm control panel entities can be assigned to chips and custom buttons in the Home page, but also to hardware buttons, any of the buttons pages or entities pages, similarly to other domains.
Now alarm control panel entities can be assigned to chips and custom buttons in the Home page,
but also to hardware buttons, any of the buttons pages or entities pages, similarly to other domains.
### 8. Support to `remote`
@@ -222,7 +230,8 @@ Chips now have an 'invert' option on the blueprint settings, providing additiona
### 11. Add swipe control to Screensaver page
You can now navigate to button pages from the screensaver while your panel is in sleep mode. The swipe controls will function as they do on the Home page.
You can now navigate to button pages from the screensaver while your panel is in sleep mode.
The swipe controls will function as they do on the Home page.
### 12. Enhanced control for automation entities on buttons
@@ -232,15 +241,18 @@ This update allows for a more personalized and efficient control experience, tai
#### Key features
- **Toggle:** This action will enable or disable the automation. It is set as the default option.
- **Toggle:** This action will enable or disable the automation.
It is set as the default option.
- **Trigger:** This action will execute the automation regardless of its current state, providing more flexibility.
#### How to use
1. Access your configuration for automation under **Services** > **Automations & Scenes**. Select the automation associated with your panel setup.
1. Access your configuration for automation under **Services** > **Automations & Scenes**.
Select the automation associated with your panel setup.
1. Scroll to the **ADVANCED SETTINGS** section at the end.
1. From the menu, select your desired action - either **Toggle** or **Trigger**.
1. Apply the setting. This will then be effective across all relevant entities.
1. Apply the setting.
This will then be effective across all relevant entities.
This update is specially designed to cater to diverse user needs, ensuring a more intuitive and responsive smart home experience.
@@ -265,11 +277,13 @@ This new add-on enables the NSPanel to manage both heating and cooling systems s
#### Note to Users
This feature enhances the capabilities of the NSPanel without compromising its existing functionalities.
Users who previously used the NSPanel for single-mode (either heating or cooling) control can now explore dual-mode options for a more comprehensive climate control solution.
Users who previously used the NSPanel for single-mode (either heating or cooling) control can
now explore dual-mode options for a more comprehensive climate control solution.
### 14. Enhanced Climate Page for Dual Thermostat Control
Leveraging the capabilities introduced with the Dual Thermostat Controller add-on, the existing climate page has been upgraded to support systems with dual temperature settings.
Leveraging the capabilities introduced with the Dual Thermostat Controller add-on,
the existing climate page has been upgraded to support systems with dual temperature settings.
This enhancement allows users to effectively manage thermostats that require both heating and cooling target temperatures, directly from the NSPanel's interface.
While originally developed to complement the new add-on,
this refined climate page also seamlessly extends its functionality to existing thermostats with dual set capabilities,
@@ -279,7 +293,8 @@ offering a more versatile and comprehensive climate control experience.
We have improved the functionality of our system by enhancing the timeout flexibility for Sleep, Page Fallback, and Dimming settings.
The previous timeout limit of 300 seconds has been significantly expanded, offering users more control and customization options for these specific features.
This enhancement allows for a wider range of use cases, catering to the needs of those who require extended periods for these settings, while still maintaining the option for shorter durations.
This enhancement allows for a wider range of use cases, catering to the needs of those who require extended periods for these settings,
while still maintaining the option for shorter durations.
### 16. Display time on the `screensaver` page

Binary file not shown.

Binary file not shown.

View File

@@ -104,7 +104,7 @@ Text tft_version
Dragging : 0
Send Component ID : on press and release
Associated Keyboard: none
Text : 4.2beta.1
Text : 4.2beta.2
Max. Text Size : 9
Text esph_version

View File

@@ -485,6 +485,10 @@ Text target_high
Text :
Max. Text Size : 10
Events
Touch Release Event
active_slider.val=is_temp_range.val
Text target_low
Attributes
ID : 43
@@ -495,6 +499,10 @@ Text target_low
Text :
Max. Text Size : 10
Events
Touch Release Event
active_slider.val=2
Slider slider_high
Attributes
ID : 7

Binary file not shown.

Binary file not shown.

View File

@@ -101,7 +101,7 @@ Text tft_version
Dragging : 0
Send Component ID : on press and release
Associated Keyboard: none
Text : 4.2beta.1
Text : 4.2beta.2
Max. Text Size : 9
Text esph_version

View File

@@ -485,6 +485,10 @@ Text target_high
Text :
Max. Text Size : 10
Events
Touch Release Event
active_slider.val=is_temp_range.val
Text target_low
Attributes
ID : 43
@@ -495,6 +499,10 @@ Text target_low
Text :
Max. Text Size : 10
Events
Touch Release Event
active_slider.val=2
Slider slider_high
Attributes
ID : 7

Binary file not shown.

Binary file not shown.

View File

@@ -104,7 +104,7 @@ Text tft_version
Dragging : 0
Send Component ID : on press and release
Associated Keyboard: none
Text : 4.2beta.1
Text : 4.2beta.2
Max. Text Size : 9
Text esph_version

View File

@@ -485,6 +485,10 @@ Text target_high
Text :
Max. Text Size : 10
Events
Touch Press Event
active_slider.val=is_temp_range.val
Text target_low
Attributes
ID : 43
@@ -495,6 +499,10 @@ Text target_low
Text :
Max. Text Size : 10
Events
Touch Release Event
active_slider.val=2
Slider slider_high
Attributes
ID : 7

Binary file not shown.

View File

@@ -104,7 +104,7 @@ Text tft_version
Dragging : 0
Send Component ID : on press and release
Associated Keyboard: none
Text : 4.2beta.1
Text : 4.2beta.2
Max. Text Size : 9
Text esph_version

View File

@@ -485,6 +485,10 @@ Text target_high
Text :
Max. Text Size : 10
Events
Touch Release Event
active_slider.val=is_temp_range.val
Text target_low
Attributes
ID : 43
@@ -495,6 +499,10 @@ Text target_low
Text :
Max. Text Size : 10
Events
Touch Release Event
active_slider.val=2
Slider slider_high
Attributes
ID : 7

Binary file not shown.

View File

@@ -101,7 +101,7 @@ Text tft_version
Dragging : 0
Send Component ID : on press and release
Associated Keyboard: none
Text : 4.2beta.1
Text : 4.2beta.2
Max. Text Size : 9
Text esph_version

View File

@@ -485,6 +485,10 @@ Text target_high
Text :
Max. Text Size : 10
Events
Touch Release Event
active_slider.val=is_temp_range.val
Text target_low
Attributes
ID : 43
@@ -495,6 +499,10 @@ Text target_low
Text :
Max. Text Size : 10
Events
Touch Release Event
active_slider.val=2
Slider slider_high
Attributes
ID : 7

Binary file not shown.

View File

@@ -104,7 +104,7 @@ Text tft_version
Dragging : 0
Send Component ID : on press and release
Associated Keyboard: none
Text : 4.2beta.1
Text : 4.2beta.2
Max. Text Size : 9
Text esph_version

View File

@@ -485,6 +485,10 @@ Text target_high
Text :
Max. Text Size : 10
Events
Touch Release Event
active_slider.val=is_temp_range.val
Text target_low
Attributes
ID : 43
@@ -495,6 +499,10 @@ Text target_low
Text :
Max. Text Size : 10
Events
Touch Release Event
active_slider.val=2
Slider slider_high
Attributes
ID : 7

View File

@@ -1,7 +1,8 @@
# ESPHome
### Logging
Avoid excessive log, or at least avoid excessive log at DEBUG level, but if you look around this project, many of the functionalities will log like this:
## Logging
Avoid excessive log, or at least avoid excessive log at DEBUG level,
but if you look around this project, many of the functionalities will log like this:
```yaml
sensor:
@@ -18,8 +19,12 @@ sensor:
}
```
### Page opened
When a new page is opened, a script name `page_changed` (whith a parameter `page` containing a string with the page name) is called and that one will call a page specific script named `page_<page_name>`. In addition, pages with multiple pages (entitypageXX, buttonpageXX and weatherXX) will also call a generic page named `page_entitypage`, `page_buttonpage` or `page_weather` with a parameter `page_number` containing the number of the page called.
## Page opened
When a new page is opened, a script name `page_changed` (whith a parameter `page` containing a
string with the page name) is called and that one will call a page specific script named `page_<page_name>`.
In addition, pages with multiple pages (entitypageXX, buttonpageXX and weatherXX) will also call
a generic page named `page_entitypage`, `page_buttonpage` or `page_weather` with a parameter
`page_number` containing the number of the page called.
If you want to execute expecific code when a page is opened, you can extend the functionality of that specific page:
@@ -42,11 +47,13 @@ script:
# Code to run when buttonpage02 is opened
```
#### Managing conflicts with Upload TFT
The TFT upload is the most resource conmsuming task in this project and should have all the resources available, so when creating something, please take in account:
## Managing conflicts with Upload TFT
The TFT upload is the most resource conmsuming task in this project and should have all the resources available,
so when creating something, please take in account:
#### Stop your scripts before the upload starts
If you create a new script that should be stopped previous a Upload TFT starts, please add your script to the `stop_all` script like this:
### Stop your scripts before the upload starts
If you create a new script that should be stopped previous a Upload TFT starts,
please add your script to the `stop_all` script like this:
```yaml
script:
@@ -55,8 +62,9 @@ script:
- script.stop: my_new_script_id
```
#### Check for upload status before starting any action
There is a global `is_uploading_tft` which will be true when the upload TFT process starts, so you can use this in your code like this:
### Check for upload status before starting any action
There is a global `is_uploading_tft` which will be true when the upload TFT process starts,
so you can use this in your code like this:
```yaml
sensor:

View File

@@ -1,22 +1,35 @@
# Alarm Control Panel
You can control an Alarm Control Panel from your NSPanel, which will allow you to set the alarm mode between the standard modes supported by Home Assistant (Home, Away, Night, Vacation or Custom bypass) or disarm the alarm.
You can control an Alarm Control Panel from your NSPanel,
which will allow you to set the alarm mode between the standard modes supported by
Home Assistant (Home, Away, Night, Vacation or Custom bypass) or disarm the alarm.
Currently, only alarms without a code or alarms with a numeric code will be supported. If your alarm requires a text code, you will still be able to display it on your NSPanel, however, when you click in any button it will send services calls to Home Assistant without the code and it will fail for the calls where a code is required.
Currently, only alarms without a code or alarms with a numeric code will be supported.
If your alarm requires a text code, you will still be able to display it on your NSPanel,
however, when you click in any button it will send services calls to Home Assistant
without the code and it will fail for the calls where a code is required.
### Security advisory
By default, the communication between your NSPanel (ESPHome) and Home Assistant (HA) is not encrypted, which means a person with access to your network could potentially monitor the communication between your panel and HA and replicate the service calls.
Although this is not a big issue for most of the service calls (turn-on a light, close a curtain, etc.), it can be a problem when controlling your alarm system.<br>
Based on that, we hardly reccoment the use of API encryption for all users controlling an Alarm system via a NSPanel.
You can easily enable this by following the ["API encryption" example available here](customization.md#api-encryption).
> [!IMPORTANT]
> **Security advisory**
> By default, the communication between your NSPanel (ESPHome) and Home Assistant (HA) is not encrypted,
> which means a person with access to your network could potentially monitor the communication between your panel and HA and replicate the service calls.
> Although this is not a big issue for most of the service calls (turn-on a light,
close a curtain, etc.), it can be a problem when controlling your alarm system.
>
> Based on that, we hardly reccoment the use of API encryption for all users controlling an Alarm system via a NSPanel.
> You can easily enable this by following the ["API encryption" example available here](customization.md#api-encryption).
## Configuration
### Allow the device to make Home Assistant service calls
First, you have to configure your Home Assistant to allow your panel to make service calls. All other services are called from the Blueprint, however this requires the ESPHome to send an event containing in plain text all the information needed to the service call, which could be a security issue, so all the alarm calls will be driven by the panel to ensure a safer environment.<br>
To enable this option, go to your ESPHome integrations panel (Settings > Devices and Services > ESPHome) and click "Configure" next to the entry related to your panel:
First, you have to configure your Home Assistant to allow your panel to make service calls.
All other services are called from the Blueprint, however this requires the ESPHome to send
an event containing in plain text all the information needed to the service call,
which could be a security issue, so all the alarm calls will be driven by the panel to ensure a safer environment.
To enable this option, go to your ESPHome integrations panel (Settings > Devices and Services > ESPHome)
and click "Configure" next to the entry related to your panel:
![image](https://github.com/Blackymas/NSPanel_HA_Blueprint/assets/94725493/37bfc622-c0cd-4941-a397-3eeb2ddbe6a2)
@@ -26,14 +39,16 @@ Then check the option "Allow the device to make Home Assistant service calls":
### Blueprint settings
Open the automation based on the NSPanel Blueprint and look for a section related to "Alarm Control Panel".<br>
Open the automation based on the NSPanel Blueprint and look for a section related to "Alarm Control Panel".
Select your alarm control panel entity, click "Save", and your are done. :sunglasses:
![image](https://github.com/Blackymas/NSPanel_HA_Blueprint/assets/94725493/859d3f4b-9a05-4694-9e2c-c32ab3a5e22f)
## Controlling your alarm from your panel
When an alarm control panel is set in your Blueprint automation, you will see the alarm icon on your panel's Home page.
When an alarm control panel is set in your Blueprint automation,
you will see the alarm icon on your panel's Home page.
This icon will change following the alarm state as described in the table below.
A click on that icon will show the Alarm Control Panel page:
@@ -41,7 +56,8 @@ A click on that icon will show the Alarm Control Panel page:
![image](https://github.com/Blackymas/NSPanel_HA_Blueprint/assets/94725493/bc312981-3d5a-42c7-b0b4-203457ff549f)
You can change your alarm settings with a single click on the button related to the new state you want to set your alarm to, or close the page to go back to Home page.
You can change your alarm settings with a single click on the button related to the new state
you want to set your alarm to, or close the page to go back to Home page.
### Description of states shown with the alarm icon
@@ -57,4 +73,4 @@ pending | Amber |![shield-outline](https://github.com/Blackymas/NSPanel_HA_Bluep
arming | Amber |![shield-outline](https://github.com/Blackymas/NSPanel_HA_Blueprint/assets/94725493/31bcd613-04d6-455a-a443-3299211d487e)| mdi:shield-outline | The alarm is arming.
disarming | Amber |![shield-off-outline](https://github.com/Blackymas/NSPanel_HA_Blueprint/assets/94725493/37c02584-dd65-4575-8d95-c7346de599e4)| mdi:shield-off-outline | The alarm is disarming.
triggered | Red |![shield-alert-outline](https://github.com/Blackymas/NSPanel_HA_Blueprint/assets/94725493/ee1ec55b-e671-4aa0-9baa-77eb2a8c8c7f)| mdi:shield-alert-outline | The alarm is triggered.
unknown / unavailable | White |![shield-alert-outline](https://github.com/Blackymas/NSPanel_HA_Blueprint/assets/94725493/a382e5ab-2e16-453c-bc9b-b3dcd3825de7)| mdi:shield-alert-outline | The alarm state is unknown or unavailable
unknown / unavailable | White |![shield-alert-outline](https://github.com/Blackymas/NSPanel_HA_Blueprint/assets/94725493/a382e5ab-2e16-453c-bc9b-b3dcd3825de7)| mdi:shield-alert-outline | The alarm state is unknown or unavailable.

View File

@@ -29,7 +29,7 @@ Lets embark on this journey together to create a smart home thats uniquely
- [Flashing the Device for the First Time](#flashing-the-device-for-the-first-time)
- [Integrating Your Panel to Home Assistant](#integrating-your-panel-to-home-assistant)
- [Making Changes Over The Air (OTA)](#making-changes-over-the-air-ota)
- [Updating](#updating)
- [Updating Your NSPanel Firmware](#updating-your-nspanel-firmware)
- [Migrating from Other Custom Firmware](#migrating-from-other-custom-firmware)
- [Upload TFT](#upload-tft)
- [Select the Right File](#select-the-right-file)
@@ -170,15 +170,67 @@ For first-time flashing of your NSPanel with ESPHome, you may need:
4. Appropriate screwdriver to disassemble your panel's controller module (touch plate)
#### Connecting Your Device via USB-to-Serial TTL Interface
Before disassembling your panel, review the following resources:
Before you begin disassembling your panel, it is recommended to review the following resources for guidance:
- [YouTube - Mark Watt Tech - HOW TO - Setup the SIMPLEST Smart Home Scene Controller](https://www.youtube.com/watch?v=jpSTA_ILB8g&t=323s)
- @blakadder's [Sonoff NSPanel EU Switch in Detail](https://blakadder.com/nspanel-teardown/)
- [ESPHome - Physically Connecting to Your Device](https://esphome.io/guides/physical_device_connection)
While this guide does not cover the firmware transfer process in detail,
here are some important points to consider during the setup:
>>>>> Pending: (Pictures of the board & wiring will be added here)
>>>>> Pending: (Steps to generate firmware on ESPHome Dashboard will be added here)
>>>>> Pending: (Steps to flash the firmware using serial TTL will be added here)
![US model - Board to TTL wiring](pics/us_board_ttl_wiring.jpg)
![US model - Board to TTL wiring (zoom)](pics/us_board_ttl_wiring_zoom.jpg)
![TTL wiring (zoom)](pics/us_ttl_wiring_zoom.jpg)
1. Handle with care the pins connecting the front panel (which includes the main board and screen) to the back part (the section mounted to the wall).
These pins are fragile and can break or bend, potentially rendering your panel nonfunctional.
2. Ensure that the pin `IO0` on the panel's board is connected to the `GND` pin on the back part connectors.
This connection is necessary to put the ESP32 into firmware transfer mode.
3. Before connecting the TTL adapter to your panel's board, verify that the adapter is set to output 3.3VDC.
Using a voltage higher than 3.3VDC, such as 5VDC, can damage your panel.
4. To avoid short circuits, consider moving the panel's board away from the metal backing of the display.
The use of a non-conductive tool, like the blue plastic one shown in the picture, can be helpful.
5. Note the cross-connection of `RX` and `TX` pins.
The following pin-out should be used:
<!-- markdownlint-disable MD033 -->
| Panel's Board | TTL USB-to-Serial |
| :--: | :--: |
| `3V3` | `VCC`, `3V3`, or `3.3V` |
| `TX` | `RX` |
| `RX` | `TX` |
| `GND` | `GND` |
| `IO0` | `GND`<br>This can be connected to a `GND` pin on the panel's board. |
<!-- markdownlint-enable MD033 -->
By following these guidelines and referring to the provided resources, you can safely prepare your NSPanel for firmware updates.
#### Transferring the Firmware to Your Device
After ensuring your device is properly connected, proceed to update or install the firmware using the ESPHome Dashboard.
1. **Access the ESPHome Dashboard** and locate your NSPanel device.
2. **Open the Installation Options:** Click on the three-dot menu next to your device and select **Install**.
![ESPHome Dashboard Install Option](pics/ha_esphome_dashboard_install_01.png)
3. **Choose the Installation Method:**
- If you're **updating** your panel, the **Wirelessly** option is typically the right choice.
This method will compile and transfer the firmware directly to your panel over Wi-Fi.
- For **initial installations** or updates via a USB-to-Serial TTL adapter, select either **Plug into this computer** or **Manual download**.
Both these options will compile the firmware and prompt you to download it to your computer.
4. **Transfer Firmware via USB-to-Serial TTL:**
- Navigate to [ESPHome Web](https://web.esphome.io/) on your computer.
- Click **Connect** and choose the serial interface connected to your USB-to-Serial TTL adapter.
![ESPHome Web Interface](pics/esphome_web_home.png)
- Once connected, opt to install an existing firmware to your panel.
Select the compiled firmware file and initiate the installation.
The firmware installation process will take a few minutes.
After completion, reassemble your panel and mount it back on the wall.
Power it up, and it should appear online in the ESPHome Dashboard within a couple of minutes, running the latest firmware.
### Integrating your panel to Home Assistant
Once your panel loaded the new ESPHome firmware, it should be automatically detected by Home Assistant and you should get a notification about that.
@@ -201,12 +253,38 @@ It might take a minute or two until the device's page gets fully populated, but
You can always get back to the device's page under your [ESPHome integration's page](https://my.home-assistant.io/redirect/integration/?domain=esphome).
### Making changes Over The Air (OTA)
>>>>> Pending: (add instructions how to flash wirelessly)
### Making Changes Over The Air (OTA)
Once your NSPanel is flashed with ESPHome, updating the firmware wirelessly via Over The Air (OTA) updates is a straightforward process.
This method eliminates the need for a USB-to-serial TTL adapter for most firmware updates.
### Updating
>>>>> Pending: (add instructions how to flash wirelessly)
>>>>> Pending: (considerations - update all to the same version)
#### Steps for OTA Updates
1. After making your changes in the yaml editor, click the **Install** button located at the top of the editor.
Alternatively, you can click the three-dot menu next to your device on the ESPHome Dashboard and select **Install**.
![ESPHome Dashboard 3-dot Menu](pics/ha_esphome_dashboard_3dot_menu.png)
2. A dialog box will appear with different installation options:
![ESPHome Dashboard Installation Options](pics/ha_esphome_dashboard_install_01.png)
3. Choose the first option to transfer the firmware **Wirelessly**.
ESPHome will compile the firmware with the new settings and automatically transfer it to your device via Wi-Fi.
- The compilation and transfer process may take a few minutes.
- Once complete, your panel will restart automatically with the new firmware.
Using OTA for firmware updates is a time-efficient way to keep your NSPanel updated with the latest changes and enhancements, ensuring a smooth and hassle-free user experience.
### Updating Your NSPanel Firmware
Regularly updating your NSPanel firmware ensures that you have the latest features and improvements from this project and ESPHome.
To update your device's firmware to the latest version, simply follow the [Steps for OTA Updates](#steps-for-ota-updates) as outlined above.
> [!IMPORTANT]
> This project comprises three integral parts: ESPHome, the TFT file, and the Blueprint.
> It is crucial that all three components are updated to the same version to ensure compatibility and optimal performance.
> When updating the ESPHome firmware, make sure to also update the TFT file and the Blueprint to the corresponding version.
Keeping each component of the NSPanel HA Blueprint in sync with the same version enhances the stability and functionality of your smart panel.
### Migrating from other custom firmware
The installation in a NSPanel with Sonoff's original firmware should be straighforward, however,
@@ -222,7 +300,22 @@ please [create a new issue](https://github.com/Blackymas/NSPanel_HA_Blueprint/is
which custom firmware you have installed before migrating to NSPanel HA Blueprint.
## Upload TFT
>>>>> Pending:
The NSPanel utilizes a Nextion display, which is equipped with its own controller, memory, and firmware.
This setup enables the display to render UI components and respond to commands sent from ESPHome.
The firmware and UI elements for the Nextion display are compiled into a TFT file, which needs to be loaded onto the display for proper functionality.
ESPHome manages the transfer of the TFT file to the Nextion display.
It does this by connecting to an HTTP/HTTPS server, downloading the required TFT file, and then transferring it to the display.
This process is crucial for updating or changing the UI and functionality of the display.
In our GitHub repository, you can find all the necessary TFT files for this project, catering to different models of the NSPanel.
These files are specifically designed to work with the various functionalities and features provided in each update of the NSPanel HA Blueprint.
Make sure to select and upload the correct TFT file corresponding to your specific model of NSPanel to ensure smooth operation and access to all the latest features.
> [!TIP]
> For troubleshooting TFT transfer issues, consult our [TFT Transfer Troubleshooting Guide](tft_upload.md).
### Select the right file
Open the device's page under [ESPHome integration's page](https://my.home-assistant.io/redirect/integration/?domain=esphome)
@@ -269,7 +362,7 @@ If the transfer don't starts in a few seconds, ESPHome will retry automatically
Once started, the transfer shouldn't take more than 10 to 20 minutes. If after this time it isn't close to finnish, please cancel the process by restarting your device, then try it again.
> [!TIP]
> For troubleshooting TFT transfer issues, consult our [TFT Transfer Troubleshooting Guide](tft_upload.md) first.
> For troubleshooting TFT transfer issues, consult our [TFT Transfer Troubleshooting Guide](tft_upload.md).
### Troubleshooting TFT transfer issues
We have an useful guide for [troubleshooting TFT transfer issues](tft_upload.md). Please take a look there.

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 KiB

View File

@@ -11,11 +11,13 @@
The following is a list of common issues affecting the TFT upload, along with suggested solutions.
These issues are not specific to the NSPanel HA Blueprint project but are common to Nextion displays and ESPHome.
### Resolving "SYSTEM DATA ERROR" on Display
### Resolving "System data ERROR!" on Display
![System Data ERROR](pics/us_system_data_error_upside_down.jpg)
#### Don't Panic!
The "SYSTEM DATA ERROR" message, sometimes displayed upside-down, appears when a TFT upload is incomplete.
The "System data ERROR!" message, sometimes displayed upside-down, appears when a TFT upload is incomplete.
While it may seem alarming, this message simply indicates that the TFT file on the display is invalid.
A successful TFT upload will resolve this issue.

Binary file not shown.

Binary file not shown.

Binary file not shown.