13 Commits

Author SHA1 Message Date
Edward Firmo
acd57abdf6 Fix the blueprint update instructions 2024-03-08 14:20:44 +01:00
Edward Firmo
a47c70ae80 Bump HMI to v4.3dev4 2024-03-08 13:36:06 +01:00
Edward Firmo
26c5a42914 Lint 2024-03-08 13:33:42 +01:00
Edward Firmo
32e9246ace Clean-up logs
To reduce RAM requirements
2024-03-08 13:23:30 +01:00
Edward Firmo
1d52396e96 Redraws hw buttons bars after page constructor 2024-03-08 13:20:22 +01:00
Edward Firmo
fa8ee066ac Return notific button engine to Blueprint
Solves #1867
2024-03-08 13:06:55 +01:00
Edward Firmo
6042d3ea94 Fix icon selection
Solves #1178
Solves #1864
2024-03-08 09:56:28 +01:00
Edward Firmo
48a4b3edbf Merge pull request #1865 from andythomas/docs_at240307
Updated docs
2024-03-08 09:51:18 +01:00
Edward Firmo
ae090a2481 Added thanks in the release notes 2024-03-08 09:50:36 +01:00
Andy Thomas
2ebc92439c Lint 2024-03-07 13:00:35 +01:00
Andy Thomas
33c3d55879 Update climate addon docs
Include a concrete example with data.
2024-03-07 12:44:01 +01:00
Andy Thomas
9f24df32c4 Update 'Blueprint' doc 2024-03-07 09:36:54 +01:00
Andy Thomas
631516f7c6 Update 'compiling errors' doc 2024-03-07 09:25:42 +01:00
101 changed files with 215 additions and 368 deletions

View File

@@ -213,7 +213,11 @@ or our [online documentation](https://github.com/Blackymas/NSPanel_HA_Blueprint/
Discover our upcoming projects in our [Milestones](https://github.com/Blackymas/NSPanel_HA_Blueprint/milestones?direction=asc&sort=title&state=open).
## Special Thanks
*Details to be added.*
We extend our heartfelt thanks to the contributors who have played a pivotal role in enhancing the NSPanel's capabilities and documentation in this release:
- **@shing6326**: For diligently addressing and fixing issues related to the new Fan oscillating feature.
Your efforts have significantly improved its functionality and reliability (#1839).
- **@andythomas**: For the comprehensive enhancements made to our documentation.
Your contributions have made our guides more informative and accessible, enriching the user experience for everyone (#1865).
## Previous releases
- [v4.2.6 - Enhancing Stability and User Experience](https://github.com/Blackymas/NSPanel_HA_Blueprint/releases/tag/v4.2.6)

View File

@@ -21,6 +21,10 @@ Don't use it for directly power your cooler/heater if exceeding the panel specif
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):
> [!NOTE]
> Occasionally, ESPHome updates may result in the `entity_id` of embedded thermostats being appended with `_2`.
> If you experience this change, refer to this [forum post](https://community.home-assistant.io/t/esphome-devices-all-renamed-with-2-added/388146) on the Home Assistant Forum for guidance.
```yaml
substitutions:
# Settings - Editable values
@@ -81,9 +85,9 @@ heat_overrun|Optional|Number representing a temperature hysteresis in the select
- For more details on the keys, please take a look at [ESPHome Base Climate Configurations](https://esphome.io/components/climate/index.html#base-climate-configuration)
and [ESPHome Climate Thermostat - Additional actions behavior](https://esphome.io/components/climate/thermostat.html#additional-actions-behavior).
### Examples
## Examples
#### Cooler
### Cooler
```yaml
substitutions:
@@ -122,7 +126,7 @@ packages:
refresh: 300s
```
#### Heater
### Heater
```yaml
substitutions:
@@ -161,7 +165,7 @@ packages:
refresh: 300s
```
#### Dual
### Dual
```yaml
substitutions:
@@ -202,3 +206,39 @@ packages:
- nspanel_esphome_addon_climate_dual.yaml
refresh: 300s
```
### 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.
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.3°C` below and `0.1°C` above the target temperature, respectively.
These adjustments, `0.3` and `0.1`, have been effectively maintaining the desired temperature in all of our four rooms.
The thermostat's settings range from a minimum of `15°C` to a maximum of `22°C`, with a granularity of `0.1°C` for adjustments.
Furthermore, I have selected `21.2°C` as the default target temperature.
```yaml
##### addon-configuration #####
## addon_climate ##
heater_relay: "1" #Use relay 1
temp_min: "15"
temp_max: "22"
temp_step: "0.1"
cold_tolerance: "0.3"
hot_tolerance: "0.1"
##### CHANGE ME END #####
climate:
- id: !extend thermostat_embedded
preset:
- name: Home
default_target_temperature_low: 21.2
mode: "heat"
```
Please note that employing any filter to smooth the temperature readings, such as averaging, is discouraged.
Such filtering methods can delay the response times of an already slow underfloor heating system.
Despite this, the temperature stability achieved is quite satisfactory, as illustrated in the graph below.
![Temperature vs Time](pics/addon_underfloor.png)
*On March 5th, around 9:30 PM, a window was opened, and all heaters were set to 'off.'*

View File

@@ -403,11 +403,6 @@ It accommodates extensive customizations, impacting both visual appeal and funct
- `meridiem` (string[]): Array of strings for AM/PM labels, applicable if the time format includes meridiem.
- `chip_font` (int): Font Id for icons or chips displayed on the "Home" page.
- `custom_buttons_font` (int): Font Id for custom button icons on the "Home" page.
- `notification_icon` (string):
Icon codepoint from [HASwitchPlate Material Design Icons](https://htmlpreview.github.io/?https://github.com/jobr99/Generate-HASP-Fonts/blob/master/cheatsheet.html)
for the notification button.
- `notification_icon_color_normal` (int[]): RGB color array for the notification icon under normal conditions.
- `notification_icon_color_unread` (int[]): RGB color array for the notification icon when there are unread notifications.
- `qrcode` (bool): Flag indicating whether the QR code button is enabled.
- `qrcode_icon` (string):
Icon codepoint from [HASwitchPlate Material Design Icons](https://htmlpreview.github.io/?https://github.com/jobr99/Generate-HASP-Fonts/blob/master/cheatsheet.html)
@@ -434,9 +429,6 @@ data:
meridiem: ["AM", "PM"]
chip_font: 8
custom_buttons_font: 9
notification_icon: "\uE1ED" # Example for mdi:email
notification_icon_color_normal: [255, 255, 255] # White
notification_icon_color_unread: [255, 0, 0] # Red
qrcode: true
qrcode_icon: "\uE432" # Example for mdi:qrcode-scan
qrcode_icon_color: [0, 255, 0] # Green

View File

@@ -19,7 +19,7 @@ For an easier overview, the menu items "Icon Color" and "Label Color" will not b
You will be presented with a list of all of your ESPHome ESP32 devices and you must select your panel from the list.
This is technically the only required field, as basic functionality will be available when the Blueprint knows to which panel it have to send the settings.
This is technically the only required field, as basic functionality will be available when the Blueprint knows to which panel it has to send the settings.
> [!NOTE]
> You cannot have more than one blueprint based automation per each panel
@@ -90,22 +90,22 @@ The behavior of these buttons will depend on the entity's domain (light, media p
## Alarm Control Panel
An alarm control panel entity can be controlled by your panel.
When you assign the entity here, it's icon will be shown as a button on the Home page.
When you assign the entity here, its icon will be shown as a button on the Home page.
## Climate
### Climate to Control (Optional)
Here you select the main climate entity controlled by your panel.
It's temperature will be used on the Home page and by clicking on that value you will be able to control the climate settings.
Its temperature will be used on the Home page and by clicking on that value you will be able to control the climate settings.
You can optionally use your panel to control a climate system locally, using it's temperature sensor and relays.
You will find more details about this on the Add-on Climate docummentation.
You can optionally use your panel to control a climate system locally, using its temperature sensor and relays.
You will find more details about this on the Add-on Climate documentation.
If you are using the Add-on Climate, it will create a climate entity in your panel's device page.
If you are using the climate add-on, it will create a climate entity in your panel's device page.
You still have to select that entity on this field in the blueprint settings to have it used as your main climate.
Additional climate entities can be assigned to buttons and will be explained later in this documment.
Additional climate entities can be assigned to buttons and will be explained later in this document.
On the blueprint settings, you will also find settings for sensors and custom buttons to be shown on all the climate pages.
@@ -118,7 +118,7 @@ Activates the QR Code page and shows the QR Code button on the Home page.
### QR Code content (Optional)
String, which is shown as a QR Code on the NSPanel.
This can be a simple text, a URL or could also be used for a simplified login to the Wi-Fi.
This can be a simple text, an URL or could also be used for a simplified login to the Wi-Fi.
Here is an example (simply change SSID and password to your credentials and either use "WPA" or "WEP"):
`WIFI:S:SSID;T:WPA/WEP;P:PASSWORD;;`

View File

@@ -83,12 +83,11 @@ The instructions to upload TFT will vary depending on the version you are instal
### For Blueprint Component
1. Use your preferred code editor to edit the blueprint file under `/homeassistant/blueprints/automation/Blackymas/nspanel_blueprint.yaml`.
2. In the `source_url` key, change the URL replacing `main` by the version you want to install.
3. Go to **Developer Tools**, select the tab **YAML** and click the button to reload **AUTOMATIONS**.
4. Go to the [Blueprints dashboard](https://my.home-assistant.io/redirect/blueprints/) (under **Settings** > **Automations & Scenes**, then select tab **Blueprints**).
5. Find the Blueprint named **NSPanel Configuration** and click on the 3-dot menu related to that.
6. Click **Re-import blueprint**.
7. Go back to **Developer Tools**, select the tab **YAML** and click the button to reload **AUTOMATIONS**.
2. Go to the GitHub repository and select the [branch (`main`, `beta` or `dev`)](https://github.com/Blackymas/NSPanel_HA_Blueprint/branches) or the [tag](https://github.com/Blackymas/NSPanel_HA_Blueprint/tags) (for previous versions) you want to use.
3. Find the file `nspanel_blueprint.yaml` in the root of the branch/tag, then click on it to open the file content visualization.
4. Click the button "**Copy raw file**" in the top right area of the code box. This will copy the entire code to the clipboard.
5. Go back to your code editor in Home Assistant and replace the entire old code by the one in your clipboard (typically CTRL+A & CTRL+V).
6. Go to **Developer Tools**, select the tab **YAML** and click the button to reload **AUTOMATIONS**.
## Additional Notes
- Please note that the images provided in this guide might become outdated as the project evolves.

View File

@@ -1,17 +1,23 @@
# Compiling Errors Guide
The most common cases for compiling errors are related to build files needing to be cleaned up and to lack of resourced on your ESPHome comoiler host.
The most common cases for compiling errors are related to build files needing to be cleaned up and the lack of resources on your ESPHome compiler host.
These are our suggestions for both cases:
## Clean-up build files
Go to your ESPHome Dashboard, click the 3-dot meny related to your device and then "**Clean Build Files**":
Go to your ESPHome Dashboard, click the 3-dot menu related to your device and then "**Clean Build Files**":
![image](https://raw.githubusercontent.com/Blackymas/NSPanel_HA_Blueprint/dev/docs/pics/esphome_dashboard_clean_build_files.png)
## Limited resources on ESPHome compiler host
### Free Up Server Resources
1. Add the following to your device's YAML to reduce resource usage (this may slow down the compilation process):
1. First, please check the available memory of the ESPHome compiler host. 4GB of memory are recommended if you are installing ESPHome as a Home Assistant add-on.
Therefore, a RasPi 4 with 4GB RAM is the minimum if you are using a Raspberry Pi.
A manual installation requires at least 2GB of memory and 500MB of swap space or 3GB of memory.
With less memory the compiler will crash!
2. Add the following to your device's YAML to reduce resource usage (this may slow down the compilation process):
```yaml
# Limit the amount of resources used for compiling
@@ -23,15 +29,15 @@ Go to your ESPHome Dashboard, click the 3-dot meny related to your device and th
> Place this in a dedicated customization section in your YAML for easier maintenance,
similar to [this example](https://github.com/Blackymas/NSPanel_HA_Blueprint/blob/main/docs/customization.md#instructions).
2. Restart your host system, not just Home Assistant. Use the advanced options to **Reboot system**, which also restarts add-ons and can free up memory.
3. Restart your host system, not just Home Assistant. Use the advanced options to **Reboot system**, which also restarts add-ons and can free up memory.
3. Temporarily stop non-essential add-ons in Home Assistant, especially resource-intensive ones like Studio Code Server.
4. Temporarily stop non-essential add-ons in Home Assistant, especially resource-intensive ones like Studio Code Server.
4. [Clean up build files](#clean-up-build-files)
5. [Clean up build files](#clean-up-build-files)
5. Try compiling again.
6. Try compiling again.
6. After completion, restart your host system to reactivate the stopped add-ons.
7. After completion, restart your host system to reactivate the stopped add-ons.
### Compile Using Your Computer
1. Install ESPHome on your computer (Windows, Mac, or Linux) following this guide: [Installing ESPHome Manually](https://esphome.io/guides/installing_esphome.html).

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

View File

@@ -51,11 +51,8 @@ climate:
internal: false
on_state:
- lambda: |-
static const char *const TAG = "addon_climate_base.climate.thermostat_embedded.on_state";
ESP_LOGD(TAG, "Starting");
page_climate->execute();
page_home->execute();
ESP_LOGD(TAG, "Finished");
globals:
##### Is embedded thermostat visible on climate page? #####
@@ -83,7 +80,6 @@ script:
then:
- lambda: |-
if (embedded and !id(is_uploading_tft)) {
static const char *const TAG = "addon_climate_base.script.change_climate_state";
auto FahrenheitToCelsius = [](float fahrenheit) -> float {
return (fahrenheit - 32.0) * 5.0 / 9.0;
};
@@ -97,26 +93,17 @@ script:
if (key == "temperature") {
temperature = stof(value) / 10;
if (temp_unit_fahrenheit) temperature = FahrenheitToCelsius(temperature);
ESP_LOGD(TAG, "set_target_temperature(%f)", temperature);
call.set_target_temperature(temperature);
} else if (key == "target_temp_high") {
temperature = stof(value) / 10;
if (temp_unit_fahrenheit) temperature = FahrenheitToCelsius(temperature);
ESP_LOGD(TAG, "set_target_temperature_high(%f)", temperature);
call.set_target_temperature_high(temperature);
} else if (key == "target_temp_low") {
temperature = stof(value) / 10;
if (temp_unit_fahrenheit) temperature = FahrenheitToCelsius(temperature);
ESP_LOGD(TAG, "set_target_temperature_low(%f)", temperature);
call.set_target_temperature_low(temperature);
} else if (key == "hvac_mode") {
ESP_LOGD(TAG, "hvac_mode(%s)", value.c_str());
call.set_mode(value);
} else {
ESP_LOGE(TAG, "Invalid call:");
ESP_LOGE(TAG, " Embedded: %s", YESNO(embedded));
ESP_LOGE(TAG, " Key: %s", key.c_str());
ESP_LOGE(TAG, " Value: %s", value.c_str());
}
call.perform();
}
@@ -131,7 +118,6 @@ script:
- lambda: |-
id(is_addon_climate_visible) = (current_page->state == "climate" and detailed_entity->state == "embedded_climate");
if (id(is_addon_climate_visible) and !id(is_uploading_tft)) {
static const char *const TAG = "addon_climate_base.script.page_climate";
auto CelsiusToFahrenheit = [](float celsius) -> float {
return (celsius * 9 / 5) + 32;
};
@@ -139,9 +125,6 @@ script:
bool temp_unit_fahrenheit = (temp_units == "°F" || temp_units == "F" || temp_units == "°f" || temp_units == "f");
ClimateTraits traits = thermostat_embedded->get_traits();
ESP_LOGV(TAG, "Climate page constructor:");
ESP_LOGV(TAG, " Add-on mode: %s", (${addon_climate_dual}) ? "Dual" : ((${addon_climate_heat}) ? "Heat" : ((${addon_climate_cool}) ? "Cool" : "Unknown")));
ESP_LOGV(TAG, " Temp. units: %s", temp_unit_fahrenheit ? "Fahrenheit" : "Celsius");
disp1->set_component_text_printf("page_label", id(addon_climate_friendly_name).c_str());
float temp_step = traits.get_visual_target_temperature_step();
float temp_offset = traits.get_visual_min_temperature();

View File

@@ -50,9 +50,6 @@ api:
url: string
then:
- lambda: |-
static const char *const TAG = "addon_upload_tft.api.services.upload_tft";
ESP_LOGD(TAG, "Custom TFT file upload requested");
ESP_LOGD(TAG, " URL: %s", url.c_str());
std::string clean_url = url;
// Convert to lowercase
std::transform(clean_url.begin(), clean_url.end(), clean_url.begin(),

View File

@@ -18,7 +18,7 @@ substitutions:
temp_units: "°C"
invalid_cooldown: "100ms"
##### DON'T CHANGE THIS ######
version: "4.3dev3"
version: "4.3dev4"
##############################
##### External components #####
@@ -66,6 +66,9 @@ esphome:
}
}
device_name->publish_state(result.c_str());
notification_label->publish_state("");
notification_text->publish_state("");
notification_unread->turn_off();
- script.execute: restore_settings
- wait_until:
condition:
@@ -158,6 +161,8 @@ time:
- seconds: 0
then:
- script.execute: refresh_datetime
- script.execute: refresh_relays
- script.execute: refresh_hardware_buttons_bars
on_time_sync:
then:
@@ -411,9 +416,6 @@ api:
meridiem: string[] # Optional array for AM/PM labels if included in time format.
chip_font: int # Font Id for chip icons displayed on the "Home" page.
custom_buttons_font: int # Font Id for icons on custom buttons.
notification_icon: string # Icon codepoint for the notification button, sourced from HASwitchPlate Material Design Icons.
notification_icon_color_normal: int[] # RGB color array for normal notification icon state.
notification_icon_color_unread: int[] # RGB color array for unread notifications state.
qrcode: bool # Enable/disable flag for QR code button display.
qrcode_icon: string # Icon codepoint for QR code button, sourced from HASwitchPlate Material Design Icons.
qrcode_icon_color: int[] # RGB color array for QR code button icon.
@@ -461,19 +463,8 @@ api:
// Outdoor temperature font size
disp1->send_command_printf("home.outdoor_temp.font==%" PRIi32, outdoor_temp_font);
// Notification button
disp1->send_command_printf("is_notification=%i", (notification_text->state.empty() and notification_label->state.empty()) ? 0 : 1);
disp1->set_component_text_printf("home.bt_notific", "%s", notification_icon.c_str());
id(home_notify_icon_color_normal) = esphome::display::ColorUtil::color_to_565(esphome::Color(notification_icon_color_normal[0],
notification_icon_color_normal[1],
notification_icon_color_normal[2]));
id(home_notify_icon_color_unread) = esphome::display::ColorUtil::color_to_565(esphome::Color(notification_icon_color_unread[0],
notification_icon_color_unread[1],
notification_icon_color_unread[2]));
disp1->set_component_font_color("home.bt_notific", notification_unread->state ? id(home_notify_icon_color_unread) : id(home_notify_icon_color_normal));
// QRCode button
disp1->send_command_printf("is_qrcode=%i", qrcode ? 1 : 0);
set_component_visibility->execute("home.bt_qrcode", qrcode);
disp1->set_component_text_printf("home.bt_qrcode", "%s", qrcode_icon.c_str());
disp1->set_component_font_color("home.bt_qrcode", esphome::display::ColorUtil::color_to_565(esphome::Color(qrcode_icon_color[0], qrcode_icon_color[1], qrcode_icon_color[2])));
@@ -513,7 +504,10 @@ api:
# This service removes any displayed notifications from the screen, helping to keep the user interface clean and focused on its primary functions.
- service: notification_clear
then:
- script.execute: notification_clear
- lambda: |-
notification_label->publish_state("");
notification_text->publish_state("");
notification_unread->turn_off();
# Displays a notification message on the screen, useful for alerts or informational updates.
- service: notification_show
@@ -533,7 +527,6 @@ api:
notification_label->publish_state(label.c_str());
notification_text->publish_state(message.c_str());
timer_reset_all->execute(current_page->state.c_str());
refresh_notification->execute();
notification_unread->turn_on();
if (notification_sound->state) buzzer->play("two short:d=4,o=5,b=100:16e6,16e6");
}
@@ -544,8 +537,6 @@ api:
page_title: string # Title for the alarm settings page, displayed prominently at the top.
state: string # Current state of the alarm system (e.g., "armed_home", "disarmed").
supported_features: int # Bitmask representing the alarm system's supported features, determining available controls on the page.
# Refer to Home Assistant Alarm Control Panel Supported Features for specific bitmask values:
# https://github.com/home-assistant/core/blob/33ff6b5b6ee3d92f4bb8deb9594d67748ea23d7c/homeassistant/components/alarm_control_panel/const.py#L32
code_format: string # Format required for the alarm code (numeric, alphanumeric).
code_arm_required: bool # Indicates if a code is needed to arm the system.
entity: string # Entity ID for the alarm system, enabling state updates and control.
@@ -638,8 +629,6 @@ api:
variables:
current_temp: float # Current temperature reading.
supported_features: int # Bitmask indicating the supported features of the climate device, such as temperature control (1) and fan mode (4).
# Combine bitmask values for multiple features. See Home Assistant Climate Component Constants for details:
# https://github.com/home-assistant/core/blob/33ff6b5b6ee3d92f4bb8deb9594d67748ea23d7c/homeassistant/components/climate/const.py#L156C7-L156C27
target_temp: float # Desired target temperature setting.
target_temp_high: float # Upper limit of the target temperature range for devices supporting ranges.
target_temp_low: float # Lower limit of the target temperature range.
@@ -682,8 +671,6 @@ api:
media_position: float # Current playback position in the media in seconds.
media_position_delta: float # Time elapsed since the last media position update in seconds.
supported_features: int # Bitmask indicating the media player's supported features (e.g., play, pause, volume control).
# Refer to Home Assistant Media Player Supported Features for detailed bitmask values:
# https://github.com/home-assistant/core/blob/33ff6b5b6ee3d92f4bb8deb9594d67748ea23d7c/homeassistant/components/media_player/const.py#L23
then:
- lambda: |-
if (current_page->state == "media_player" and !id(is_uploading_tft)) {
@@ -821,7 +808,6 @@ api:
- service: wake_up
variables:
reset_timer: bool # Determines whether to reset the sleep and dimming timers upon waking the display.
# Setting this to true keeps the display active during user presence, while false retains the current timer settings.
then:
- lambda: |-
if (!id(is_uploading_tft)) {
@@ -881,11 +867,6 @@ display:
##### START - GLOBALS CONFIGURATION #####
globals:
- id: mui_decimal_separator
type: char
restore_value: true
initial_value: "'.'"
###### Buttons settings ######
# Bit # Settings #
# 0 # Left Bt - Enabled #
@@ -932,6 +913,23 @@ globals:
type: uint8_t
restore_value: true
initial_value: '0'
##### Relay icons #####
- id: home_relay1_icon
type: char[4]
restore_value: true
initial_value: ''
- id: home_relay1_icon_color
type: uint16_t
restore_value: true
initial_value: '65535'
- id: home_relay2_icon
type: char[4]
restore_value: true
initial_value: ''
- id: home_relay2_icon_color
type: uint16_t
restore_value: true
initial_value: '65535'
##### Versioning #####
- id: version_blueprint
@@ -951,24 +949,24 @@ globals:
restore_value: false
initial_value: 'false'
##### Media Player #####
###### Last volume level from Home Assistant ######
- id: last_volume_level
type: uint8_t
restore_value: false
initial_value: '0'
###### Last duration from Home Assistant ######
- id: last_media_duration
type: uint
restore_value: false
initial_value: '0'
###### Last duration from Home Assistant ######
- id: last_media_position
type: uint
restore_value: false
initial_value: '0'
##### Add-on Climate #####
##### Is embedded thermostat set as main climate entity? #####
- id: is_embedded_thermostat
type: bool
@@ -1000,7 +998,7 @@ globals:
restore_value: false
initial_value: '{"AM", "PM"}'
#### MUI strings ####
#### Localization (MUI) ####
- id: mui_please_confirm_global
type: std::string
restore_value: true
@@ -1009,6 +1007,10 @@ globals:
type: std::string
restore_value: true
initial_value: '"Unavailable"'
- id: mui_decimal_separator
type: char
restore_value: true
initial_value: "'.'"
##### Chips #####
- id: home_chip_font_id
@@ -1022,32 +1024,6 @@ globals:
restore_value: true
initial_value: '8'
##### Relay icons #####
- id: home_relay1_icon
type: char[4]
restore_value: true
initial_value: ''
- id: home_relay1_icon_color
type: uint16_t
restore_value: true
initial_value: '65535'
- id: home_relay2_icon
type: char[4]
restore_value: true
initial_value: ''
- id: home_relay2_icon_color
type: uint16_t
restore_value: true
initial_value: '65535'
- id: home_notify_icon_color_normal
type: uint16_t
restore_value: false
- id: home_notify_icon_color_unread
type: uint16_t
restore_value: false
##### Screensaver #####
- id: screensaver_display_time
type: bool
@@ -1560,16 +1536,6 @@ switch:
entity_category: config
optimistic: true
restore_mode: ALWAYS_OFF
on_turn_on:
- wait_until:
condition:
- lambda: !lambda return (blueprint_status->state > 99);
- lambda: disp1->set_component_font_color("home.bt_notific", id(home_notify_icon_color_unread));
on_turn_off:
- wait_until:
condition:
- lambda: !lambda return (blueprint_status->state > 99);
- lambda: disp1->set_component_font_color("home.bt_notific", id(home_notify_icon_color_normal));
##### Notification sound #####
- name: Notification sound
@@ -1632,8 +1598,8 @@ switch:
##### START - TEXT SENSOR CONFIGURATION #####
text_sensor:
##### Device name - Used by bluepring to find service's names #####
- name: Device Name
id: device_name
- id: device_name
name: Device Name
platform: template
icon: mdi:identifier
entity_category: diagnostic
@@ -1641,34 +1607,34 @@ text_sensor:
disabled_by_default: false
##### Entity Id of the entity displayed on the detailed pages
- name: Detailed Entity
id: detailed_entity
- id: detailed_entity
name: Detailed Entity
platform: template
icon: mdi:tablet-dashboard
internal: false
disabled_by_default: false
##### Current page name #####
- name: Current Page
id: current_page
- id: current_page
name: Current Page
platform: template
icon: mdi:tablet-dashboard
internal: false
disabled_by_default: false
- name: Notification Label
- id: notification_label
name: Notification Label
platform: template
id: notification_label
- name: Notification Text
- id: notification_text
name: Notification Text
platform: template
id: notification_text
##### NSPanel event sensor, the main action sensor - push to HA #####
- name: NSPanel event
- id: disp1_nspanel_event
name: NSPanel event
platform: nextion
nextion_id: disp1
id: disp1_nspanel_event
component_name: nspanelevent
internal: true
filters:
@@ -1702,10 +1668,10 @@ text_sensor:
ESP_LOGE("text_sensor.nspanelevent", " Entity: %s", entity.c_str());
##### NSPanel event - Execute actions from ESPHome - NO push to HA #####
- name: NSPanel local event
- id: disp1_local_event
name: NSPanel local event
platform: nextion
nextion_id: disp1
id: disp1_local_event
component_name: localevent
internal: true
filters:
@@ -2051,18 +2017,6 @@ script:
id(embedded_indoor_temp) = embedded_indoor_temperature;
display_embedded_temp->execute();
- id: notification_clear
mode: restart
then:
- lambda: |-
if (!id(is_uploading_tft)) {
notification_label->publish_state("");
notification_text->publish_state("");
notification_unread->turn_off();
refresh_notification->execute();
if (current_page->state == "notification") goto_page->execute("home");
}
- id: page_alarm
mode: restart
then: # There's nothing here so far
@@ -2201,6 +2155,8 @@ script:
else if (page == "weather03") page_weather03->execute();
else if (page == "weather04") page_weather04->execute();
else if (page == "weather05") page_weather05->execute();
- delay: 1s
- script.execute: refresh_hardware_buttons_bars
- id: page_climate
mode: restart
@@ -2265,7 +2221,6 @@ script:
then:
- script.execute: refresh_relays
- script.execute: refresh_wifi_icon
- script.execute: refresh_notification
- id: page_keyb_num
mode: restart
@@ -2384,7 +2339,6 @@ script:
}
disp1->set_component_text_printf("home.meridiem", "%s", (time_format_str.find("%p") != std::string::npos) ? meridiem_text.c_str() : " ");
disp1->set_component_text_printf("home.time", "%s", id(time_provider).now().strftime(time_format_str).c_str());
refresh_hardware_buttons_bars->execute();
- id: refresh_hardware_buttons_bars
mode: restart
@@ -2425,22 +2379,6 @@ script:
}
}
- id: refresh_notification
mode: restart
then:
- wait_until:
condition:
- lambda: !lambda return id(setup_sequence_completed);
- lambda: |-
bool is_notification = ((not notification_text->state.empty()) or (not notification_label->state.empty()));
disp1->send_command_printf("is_notification=%i", is_notification ? 1 : 0);
set_component_visibility->execute("home.bt_notific", is_notification);
- wait_until:
condition:
- lambda: return (blueprint_status->state > 99);
- lambda: |-
disp1->set_component_font_color("home.bt_notific", notification_unread->state ? id(home_notify_icon_color_unread) : id(home_notify_icon_color_normal));
- id: refresh_relays
mode: restart
then:
@@ -2742,7 +2680,6 @@ script:
disp1->set_component_font_color("home.chip_relay1", id(home_relay1_icon_color));
disp1->set_component_font_color("home.chip_relay2", id(home_relay2_icon_color));
timer_reset_all->execute("boot");
notification_clear->execute();
id(setup_sequence_completed) = true;
- wait_until:
condition:
@@ -2767,7 +2704,6 @@ script:
ha_button->stop();
ha_call_service->stop();
init_hardware_climate->stop();
notification_clear->stop();
page_alarm->stop();
page_blank->stop();
page_boot->stop();

View File

@@ -9,7 +9,7 @@ Program.s
int back_page_id=0
int dimdelta=0
int api=0 // 0 = disconnected from HA, 1 = connected to HA
int is_qrcode=0,is_notification=0,is_utilities=0
int is_utilities=0
int brightness=100,brightness_dim=40,brightness_sleep=0
int display_mode=1 // 1 = EU, 2 = US, 3 = US landscape, 4 = blank
int charset=1 // 1 = International (original), 2 = CJK

View File

@@ -24,8 +24,6 @@ Page alarm
vis bt_bypass,0
}
vis unavailable,0
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -16,8 +16,6 @@ Page boot
covx baud,baud_rate.txt,0,0
baud_rate.txt+=" bps"
vis unavailable,0
Postinitialize Event
sendme
Page Exit Event
@@ -103,7 +101,7 @@ Text tft_version
Dragging : 0
Send Component ID : on press and release
Associated Keyboard: none
Text : 4.3dev3
Text : 4.3dev4
Max. Text Size : 9
Text esph_version

View File

@@ -35,8 +35,6 @@ Page buttonpage01
}
vis page_index,1
}
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -35,8 +35,6 @@ Page buttonpage02
}
vis page_index,1
}
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -35,8 +35,6 @@ Page buttonpage03
}
vis page_index,1
}
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -35,8 +35,6 @@ Page buttonpage04
page_index.txt+="●"
vis page_index,1
}
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -33,8 +33,6 @@ Page climate
page home
}
vis unavailable,0
Postinitialize Event
sendme
Page Exit Event

View File

@@ -17,8 +17,6 @@ Page confirm
page home
}
vis unavailable,0
Postinitialize Event
sendme
Variable (int32) page_id

View File

@@ -17,8 +17,6 @@ Page cover
page home
}
vis unavailable,0
Postinitialize Event
sendme
Variable (string) va1

View File

@@ -30,8 +30,6 @@ Page entitypage01
{
page_index.txt+="â—‹"
}
Postinitialize Event
sendme
Text value01_label

View File

@@ -30,8 +30,6 @@ Page entitypage02
{
page_index.txt+="â—‹"
}
Postinitialize Event
sendme
Text value01_label

View File

@@ -30,8 +30,6 @@ Page entitypage03
{
page_index.txt+="â—‹"
}
Postinitialize Event
sendme
Text value01_label

View File

@@ -30,8 +30,6 @@ Page entitypage04
page_index.txt+="â—‹"
}
page_index.txt+="●"
Postinitialize Event
sendme
Text value01_label

View File

@@ -18,8 +18,6 @@ Page fan
}
vis unavailable,0
vis bt_oscillate,0
Postinitialize Event
sendme
Variable (string) fansetting

View File

@@ -20,8 +20,6 @@ Page home
{
vis bt_entities,0
}
vis bt_notific,is_notification
vis bt_qrcode,is_qrcode
vis bt_utilities,is_utilities
if(display_mode==3)
{
@@ -29,8 +27,6 @@ Page home
vis right_bt_text,0
}
vis unavailable,0
Postinitialize Event
sendme
Variable (string) lastclick
@@ -355,7 +351,10 @@ Text bt_qrcode
Events
Touch Release Event
page qrcode
if(bt_qrcode.txt!="")
{
page qrcode
}
Text bt_entities
Attributes

View File

@@ -17,8 +17,6 @@ Page keyb_num
page page_id.val
}
vis unavailable,0
Postinitialize Event
sendme
Variable (int32) page_id

View File

@@ -37,8 +37,6 @@ Page light
vis color_button,0
}
vis unavailable,0
Postinitialize Event
sendme
Variable (int32) rgb565

View File

@@ -17,8 +17,6 @@ Page media_player
page home
}
vis unavailable,0
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -17,8 +17,6 @@ Page notification
page home
}
vis unavailable,0
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -13,8 +13,6 @@ Page qrcode
Events
Preinitialize Event
vis unavailable,0
Postinitialize Event
sendme
Text qrcode_label

View File

@@ -15,8 +15,6 @@ Page screensaver
vis text,0
dim=brightness_sleep
vis unavailable,0
Postinitialize Event
sendme
Touch Release Event

View File

@@ -19,8 +19,6 @@ Page settings
vis lbl_sleep,0
vis bt_sleep,0
vis unavailable,0
Postinitialize Event
sendme
Text bright_text

View File

@@ -20,8 +20,6 @@ Page utilities
vis title_icon,1
vis title,1
vis button_back,1
Postinitialize Event
sendme
Variable (int32) line_main_d

View File

@@ -17,8 +17,6 @@ Page weather01
page home
}
vis unavailable,0
Postinitialize Event
sendme
Text day

View File

@@ -17,8 +17,6 @@ Page weather02
page home
}
vis unavailable,0
Postinitialize Event
sendme
Text day

View File

@@ -17,8 +17,6 @@ Page weather03
page home
}
vis unavailable,0
Postinitialize Event
sendme
Text day

View File

@@ -17,8 +17,6 @@ Page weather04
page home
}
vis unavailable,0
Postinitialize Event
sendme
Text day

View File

@@ -17,8 +17,6 @@ Page weather05
page home
}
vis unavailable,0
Postinitialize Event
sendme
Text day

View File

@@ -9,7 +9,7 @@ Program.s
int back_page_id=0
int dimdelta=0
int api=0 // 0 = disconnected from HA, 1 = connected to HA
int is_qrcode=0,is_notification=0,is_utilities=0
int is_utilities=0
int brightness=100,brightness_dim=40,brightness_sleep=0
int display_mode=2 // 1 = EU, 2 = US, 3 = US landscape, 4 = blank
int charset=1 // 1 = International (original), 2 = CJK

View File

@@ -24,8 +24,6 @@ Page alarm
vis bt_bypass,0
}
vis unavailable,0
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -16,8 +16,6 @@ Page boot
covx baud,baud_rate.txt,0,0
baud_rate.txt+=" bps"
vis unavailable,0
Postinitialize Event
sendme
Page Exit Event
@@ -103,7 +101,7 @@ Text tft_version
Dragging : 0
Send Component ID : on press and release
Associated Keyboard: none
Text : 4.3dev3
Text : 4.3dev4
Max. Text Size : 9
Events

View File

@@ -35,8 +35,6 @@ Page buttonpage01
}
vis page_index,1
}
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -35,8 +35,6 @@ Page buttonpage02
}
vis page_index,1
}
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -35,8 +35,6 @@ Page buttonpage03
}
vis page_index,1
}
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -22,8 +22,6 @@ Page buttonpage04
vis page_index,1
vis page_label,1
}
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -33,8 +33,6 @@ Page climate
page home
}
vis unavailable,0
Postinitialize Event
sendme
Page Exit Event

View File

@@ -17,8 +17,6 @@ Page confirm
page home
}
vis unavailable,0
Postinitialize Event
sendme
Variable (int32) page_id

View File

@@ -17,8 +17,6 @@ Page cover
page home
}
vis unavailable,0
Postinitialize Event
sendme
Variable (string) va1

View File

@@ -30,8 +30,6 @@ Page entitypage01
{
page_index.txt+="â—‹"
}
Postinitialize Event
sendme
Text value01_label

View File

@@ -30,8 +30,6 @@ Page entitypage02
{
page_index.txt+="â—‹"
}
Postinitialize Event
sendme
Text value01_label

View File

@@ -30,8 +30,6 @@ Page entitypage03
{
page_index.txt+="â—‹"
}
Postinitialize Event
sendme
Text value01_label

View File

@@ -30,8 +30,6 @@ Page entitypage04
page_index.txt+="â—‹"
}
page_index.txt+="●"
Postinitialize Event
sendme
Text value01_label

View File

@@ -18,8 +18,6 @@ Page fan
}
vis unavailable,0
vis bt_oscillate,0
Postinitialize Event
sendme
Variable (string) fansetting

View File

@@ -20,8 +20,6 @@ Page home
{
vis bt_entities,0
}
vis bt_notific,is_notification
vis bt_qrcode,is_qrcode
vis bt_utilities,is_utilities
if(display_mode==3)
{
@@ -29,8 +27,6 @@ Page home
vis right_bt_text,0
}
vis unavailable,0
Postinitialize Event
sendme
Variable (string) lastclick
@@ -355,7 +351,10 @@ Text bt_qrcode
Events
Touch Release Event
page qrcode
if(bt_qrcode.txt!="")
{
page qrcode
}
Text bt_entities
Attributes

View File

@@ -17,8 +17,6 @@ Page keyb_num
page page_id.val
}
vis unavailable,0
Postinitialize Event
sendme
Variable (int32) page_id

View File

@@ -37,8 +37,6 @@ Page light
vis color_button,0
}
vis unavailable,0
Postinitialize Event
sendme
Variable (int32) rgb565

View File

@@ -17,8 +17,6 @@ Page media_player
page home
}
vis unavailable,0
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -17,8 +17,6 @@ Page notification
page home
}
vis unavailable,0
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -13,8 +13,6 @@ Page qrcode
Events
Preinitialize Event
vis unavailable,0
Postinitialize Event
sendme
Text qrcode_label

View File

@@ -15,8 +15,6 @@ Page screensaver
vis text,0
dim=brightness_sleep
vis unavailable,0
Postinitialize Event
sendme
Touch Release Event

View File

@@ -19,8 +19,6 @@ Page settings
vis lbl_sleep,0
vis bt_sleep,0
vis unavailable,0
Postinitialize Event
sendme
Text bright_text

View File

@@ -20,8 +20,6 @@ Page utilities
vis title_icon,1
vis title,1
vis button_back,1
Postinitialize Event
sendme
Variable (int32) line_main_d

View File

@@ -17,8 +17,6 @@ Page weather01
page home
}
vis unavailable,0
Postinitialize Event
sendme
Text day

View File

@@ -17,8 +17,6 @@ Page weather02
page home
}
vis unavailable,0
Postinitialize Event
sendme
Text day

View File

@@ -17,8 +17,6 @@ Page weather03
page home
}
vis unavailable,0
Postinitialize Event
sendme
Text day

View File

@@ -17,8 +17,6 @@ Page weather04
page home
}
vis unavailable,0
Postinitialize Event
sendme
Text day

View File

@@ -17,8 +17,6 @@ Page weather05
page home
}
vis unavailable,0
Postinitialize Event
sendme
Text day

View File

@@ -9,7 +9,7 @@ Program.s
int back_page_id=0
int dimdelta=0
int api=0 // 0 = disconnected from HA, 1 = connected to HA
int is_qrcode=0,is_notification=0,is_utilities=0
int is_utilities=0
int brightness=100,brightness_dim=40,brightness_sleep=0
int display_mode=3 // 1 = EU, 2 = US, 3 = US landscape, 4 = blank
int charset=1 // 1 = International (original), 2 = CJK

View File

@@ -24,8 +24,6 @@ Page alarm
vis bt_bypass,0
}
vis unavailable,0
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -16,8 +16,6 @@ Page boot
covx baud,baud_rate.txt,0,0
baud_rate.txt+=" bps"
vis unavailable,0
Postinitialize Event
sendme
Page Exit Event
@@ -103,7 +101,7 @@ Text tft_version
Dragging : 0
Send Component ID : on press and release
Associated Keyboard: none
Text : 4.3dev3
Text : 4.3dev4
Max. Text Size : 9
Text esph_version

View File

@@ -35,8 +35,6 @@ Page buttonpage01
}
vis page_index,1
}
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -35,8 +35,6 @@ Page buttonpage02
}
vis page_index,1
}
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -35,8 +35,6 @@ Page buttonpage03
}
vis page_index,1
}
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -35,8 +35,6 @@ Page buttonpage04
page_index.txt+="●"
vis page_index,1
}
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -33,8 +33,6 @@ Page climate
page home
}
vis unavailable,0
Postinitialize Event
sendme
Page Exit Event

View File

@@ -17,8 +17,6 @@ Page confirm
page home
}
vis unavailable,0
Postinitialize Event
sendme
Variable (int32) page_id

View File

@@ -17,8 +17,6 @@ Page cover
page home
}
vis unavailable,0
Postinitialize Event
sendme
Variable (string) va1

View File

@@ -30,8 +30,6 @@ Page entitypage01
{
page_index.txt+="â—‹"
}
Postinitialize Event
sendme
Text value01_label

View File

@@ -30,8 +30,6 @@ Page entitypage02
{
page_index.txt+="â—‹"
}
Postinitialize Event
sendme
Text value01_label

View File

@@ -30,8 +30,6 @@ Page entitypage03
{
page_index.txt+="â—‹"
}
Postinitialize Event
sendme
Text value01_label

View File

@@ -30,8 +30,6 @@ Page entitypage04
page_index.txt+="â—‹"
}
page_index.txt+="●"
Postinitialize Event
sendme
Text value01_label

View File

@@ -18,8 +18,6 @@ Page fan
}
vis unavailable,0
vis bt_oscillate,0
Postinitialize Event
sendme
Variable (string) fansetting

View File

@@ -20,8 +20,6 @@ Page home
{
vis bt_entities,0
}
vis bt_notific,is_notification
vis bt_qrcode,is_qrcode
vis bt_utilities,is_utilities
if(display_mode==3)
{
@@ -29,8 +27,6 @@ Page home
vis right_bt_text,0
}
vis unavailable,0
Postinitialize Event
sendme
Variable (string) lastclick
@@ -355,7 +351,10 @@ Text bt_qrcode
Events
Touch Release Event
page qrcode
if(bt_qrcode.txt!="")
{
page qrcode
}
Text bt_entities
Attributes

View File

@@ -17,8 +17,6 @@ Page keyb_num
page page_id.val
}
vis unavailable,0
Postinitialize Event
sendme
Variable (int32) page_id

View File

@@ -37,8 +37,6 @@ Page light
vis color_button,0
}
vis unavailable,0
Postinitialize Event
sendme
Variable (int32) rgb565

View File

@@ -17,8 +17,6 @@ Page media_player
page home
}
vis unavailable,0
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -17,8 +17,6 @@ Page notification
page home
}
vis unavailable,0
Postinitialize Event
sendme
Variable (string) lastclick

View File

@@ -13,8 +13,6 @@ Page qrcode
Events
Preinitialize Event
vis unavailable,0
Postinitialize Event
sendme
Text qrcode_label

View File

@@ -15,8 +15,6 @@ Page screensaver
vis text,0
dim=brightness_sleep
vis unavailable,0
Postinitialize Event
sendme
Touch Release Event

View File

@@ -19,8 +19,6 @@ Page settings
vis lbl_sleep,0
vis bt_sleep,0
vis unavailable,0
Postinitialize Event
sendme
Text bright_text

View File

@@ -20,8 +20,6 @@ Page utilities
vis title_icon,1
vis title,1
vis button_back,1
Postinitialize Event
sendme
Variable (int32) line_main_d

View File

@@ -17,8 +17,6 @@ Page weather01
page home
}
vis unavailable,0
Postinitialize Event
sendme
Text day

View File

@@ -17,8 +17,6 @@ Page weather02
page home
}
vis unavailable,0
Postinitialize Event
sendme
Text day

View File

@@ -17,8 +17,6 @@ Page weather03
page home
}
vis unavailable,0
Postinitialize Event
sendme
Text day

View File

@@ -17,8 +17,6 @@ Page weather04
page home
}
vis unavailable,0
Postinitialize Event
sendme
Text day

View File

@@ -17,8 +17,6 @@ Page weather05
page home
}
vis unavailable,0
Postinitialize Event
sendme
Text day

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More