Compare commits
6 Commits
eff58b978a
...
d71a1e1fe8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d71a1e1fe8 | ||
|
|
cded65a9ec | ||
|
|
f24ba9739d | ||
|
|
86acccc36b | ||
|
|
cfb8352f85 | ||
|
|
a056106a9f |
@@ -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, you’ll 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. It’s 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.
|
||||
It’s 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. You’ll 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.
|
||||
You’ll 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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||

|
||||
|
||||
@@ -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:
|
||||
|
||||

|
||||
|
||||
## 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:
|
||||
|
||||

|
||||
|
||||
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 || mdi:shield-outline | The alarm is arming.
|
||||
disarming | Amber || mdi:shield-off-outline | The alarm is disarming.
|
||||
triggered | Red || mdi:shield-alert-outline | The alarm is triggered.
|
||||
unknown / unavailable | White || mdi:shield-alert-outline | The alarm state is unknown or unavailable
|
||||
unknown / unavailable | White || mdi:shield-alert-outline | The alarm state is unknown or unavailable.
|
||||
|
||||
117
docs/install.md
@@ -29,7 +29,7 @@ Let’s embark on this journey together to create a smart home that’s 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)
|
||||

|
||||

|
||||

|
||||
|
||||
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**.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
- 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**.
|
||||
|
||||

|
||||
|
||||
2. A dialog box will appear with different installation options:
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||
BIN
docs/pics/esphome_web_home.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
docs/pics/ha_esphome_dashboard_3dot_menu.png
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
BIN
docs/pics/ha_esphome_dashboard_install_01.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
docs/pics/us_board_ttl_wiring.jpg
Normal file
|
After Width: | Height: | Size: 263 KiB |
BIN
docs/pics/us_board_ttl_wiring_zoom.jpg
Normal file
|
After Width: | Height: | Size: 237 KiB |
BIN
docs/pics/us_system_data_error_upside_down.jpg
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
docs/pics/us_ttl_wiring_zoom.jpg
Normal file
|
After Width: | Height: | Size: 310 KiB |
@@ -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
|
||||
|
||||

|
||||
|
||||
#### 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.
|
||||
|
||||
|
||||