diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index af5415a..aa81162 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -28,7 +28,7 @@ body: attributes: label: TFT Version description: Enter the TFT version number. - placeholder: e.g., 4.3.1 + placeholder: e.g., 4.3.2 validations: required: false @@ -36,7 +36,7 @@ body: attributes: label: ESPHome Version description: Enter the ESPHome version number. - placeholder: e.g., 4.3.1 + placeholder: e.g., 4.3.2 validations: required: false @@ -44,7 +44,7 @@ body: attributes: label: Blueprint Version description: Enter the Blueprint version number. - placeholder: e.g., 4.3.1 + placeholder: e.g., 4.3.2 validations: required: false diff --git a/ReleaseNotes.md b/ReleaseNotes.md index d117dcb..a84fce8 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -359,6 +359,216 @@ improving accuracy and reliability for users monitoring their environment. - **Affected Components:** ESPHome and TFT - **Description:** Updated the Boot page to offer clearer visual feedback on version information and system status, with a new progress bar. +## v4.3.2 - Enhancements and Critical Fixes for a Seamless Experience +In this patch, we focus on enhancing the NSPanel experience by introducing critical fixes and requested enhancements to improve overall system stability and user interaction. +This update addresses key issues, such as the incorrect display of the "boot" page upon wake-up, and optimizes the performance of the Utilities Dashboard to prevent potential overload states. +With updates across firmware, user interface, and documentation, v4.3.2 underscores our dedication to delivering a seamless and robust smart home control solution. + +### Device Reboot Issue on Wake Up Resolved (#1947 and #1976) +- **Criticality:** Medium +- **Affected Components:** Blueprint +- **Issue Number:** #1947 and #1976 +- **Description:** Resolved a critical issue causing the NSPanel to boot to the "boot" page rather than the "home" page under certain conditions, such as upon waking. +This correction ensures the panel directly accesses the "home" page, streamlining user interaction by promptly presenting the main interface. +Effective implementation of this fix necessitates clearing the build files before updating. +The procedure below guides you through cleaning build files in the ESPHome Dashboard, an essential step to actualize this update. + +### Utilities Dashboard Performance Bug Resolved (#1949 and #1964) +- **Criticality:** Medium +- **Affected Components:** Blueprint and ESPHome +- **Issue Number:** #1949 and #1964 +- **Description:** Fixed a significant performance bug in the "Utilities Dashboard" related to sensors with high update frequencies. +Previously, sensors updating frequently could overload the Home Assistant host, causing the blueprint execution to delay. +As updates persisted, this led to multiple instances of the blueprint being triggered, eventually hitting the limit of 50 concurrent instances. +This update minimizes the issue, ensuring smooth operation and reducing the chances of a overload state, thereby maintaining efficient and reliable dashboard performance. + +#### How to Clean-up Build Files +1. Navigate to your ESPHome Dashboard. +2. Select the 3-dot menu adjacent to your device's listing. +3. Choose "**Clean Build Files**". + +![Clean Build Files Instruction](https://raw.githubusercontent.com/Blackymas/NSPanel_HA_Blueprint/dev/docs/pics/esphome_dashboard_clean_build_files.png) + +> [!IMPORTANT] +> Cleaning build files is a mandatory step for this update to apply successfully. +> It ensures your NSPanel operates smoothly with the new improvements post-update. + +### Fix for Inverted Chip Icon Color Issue (#1928) +- **Criticality:** Minor +- **Affected Components:** Blueprint, TFT +- **Issue Number:** #1928 +- **Description:** Resolved an issue where the color of icons on inverted chips did not display correctly on the home page, affecting the visual distinction and readability of these elements. +This fix ensures that icons on inverted chips are now properly rendered, maintaining consistency and enhancing the overall aesthetic of the user interface. +This correction contributes to a more intuitive and visually appealing experience for users, reinforcing the clarity of information presented on the NSPanel. + +### Fix for Numeric Button Page Labels Not Displaying (#1961) +- **Criticality:** Minor +- **Affected Components:** Blueprint +- **Issue Number:** #1961 +- **Description:** Resolved an issue where button page labels consisting solely of numbers were not being displayed, ensuring that numeric titles are now properly shown. +This fix enhances interface clarity by allowing users to utilize numerical identifiers for their button pages, thereby improving navigation and usability within the NSPanel environment. + +### Automatic Update for Weather Icon at Sunrise and Sunset (#1971) +- **Criticality:** Minor +- **Affected Components:** Blueprint +- **Issue Number:** #1971 +- **Description:** Addressed a bug where the weather icon on the home page did not automatically update to reflect changes at sunrise and sunset, necessitating a manual page reload. +With this fix, the icon now refreshes automatically to provide an accurate representation of the weather conditions in relation to the day and night cycle. +This improvement ensures a more dynamic and responsive user interface, enhancing the visual experience by seamlessly integrating natural environmental changes. + +### Fix for Missing Titles and Icons on Detailed Entities Pages (#1978) +- **Criticality:** Minor +- **Affected Components:** Blueprint +- **Issue Number:** #1978 +- **Description:** Resolved an issue on detailed entities pages where page titles and icons were not being displayed, leading to a lack of clarity and navigation challenges for users. +This fix ensures that each detailed page now correctly showcases its respective title and icon, +enhancing the overall user interface by providing immediate context and visual cues for better usability and navigation within the NSPanel environment. + +### Swipe Functionality Restored on Button and Home Pages (#1980 and #1994) +- **Criticality:** Minor +- **Affected Components:** TFT +- **Issue Number:** #1980 and #1994 +- **Description:** Addressed issues impacting swipe functionality on button pages and the home page, which previously hindered smooth navigation through swipe gestures. +This update restores proper swipe operation, allowing users to effortlessly switch between pages with a simple gesture. +Enhancing swipe responsiveness contributes to a more fluid and intuitive user experience, reinforcing the ease of navigating the NSPanel's interface. + +### Typo Correction in Blueprint Inputs (#2003) +- **Criticality:** Minor +- **Affected Components:** Blueprint +- **Issue Number:** #2003 +- **Description:** Corrected a minor typo in the blueprint inputs to ensure accuracy and clarity in the configuration options. +This adjustment, made in the description for the `hw_buttons_bar_color_off` input, showcases our commitment to detail and high-quality documentation, +enhancing user experience by providing clear and precise instructions. +- **Special Thanks:** Our thanks go to @colincachia for this attentive correction. +This action highlights the importance of community involvement and the collective effort to maintain the project's high standards, even in the smallest details. + +### Immediate Brightness Adjustment from Home Assistant Fixed +- **Criticality:** Minor +- **Affected Components:** ESPHome +- **Issue Number:** #2006 +- **Description:** Resolved a minor issue affecting brightness adjustments made from Home Assistant. +Previously, when the brightness target was reduced via Home Assistant, the change was not immediately reflected on the NSPanel. +This update ensures that any adjustments to brightness settings are promptly applied, +maintaining consistency between the Home Assistant interface and the NSPanel's display for a more synchronized and responsive user experience. + +### Custom Binary State Entities for Hardware Button Status Display Enhancement (#1904, #1933, #1959, #1973) +- **Criticality:** Enhancement +- **Affected Components:** Blueprint +- **Issue Number:** #1904, #1933, #1959, #1973 +- **Description:** This update introduces the capability to assign custom binary state entities to the hardware button status display. +This significant enhancement allows for the hardware button bar to reflect the status of a different entity than the one assigned to the button itself, +providing users with greater customization and flexibility in their interface interactions. +This development enriches user feedback mechanisms, enabling more intuitive and dynamic control options within the NSPanel environment. +- **Special Thanks:** Our heartfelt appreciation goes to @lafriks for their invaluable contribution and initiative in developing this feature. +These efforts have notably advanced the customization potential of NSPanel, fostering a more versatile and user-centric experience. + +### Enhanced Temperature Measurement Strategy (#1918) +- **Criticality:** Enhancement +- **Affected Components:** ESPHome +- **Issue Number:** #1918 +- **Description:** Thanks to the dedicated efforts and thorough testing by our community, +the NSPanel's built-in temperature sensor now employs a more sophisticated measurement strategy for enhanced accuracy and responsiveness. +By integrating a combination of four samples per measurement and employing a `sliding_window_moving_average` filter with a window size of six, +the sensor's reporting frequency has been adjusted to every 10 seconds. +This methodological enhancement, chiefly proposed and tested by community members @andythomas and @grigi, +ensures a smoother temperature curve and faster response to environmental changes such as opening a window. +While the adjusted frequency means data is reported more often, ESPHome's efficient data transmission only when changes occur ensures that the impact on Home Assistant's data processing is minimal. +This significant improvement, sparked by proactive community involvement, +not only enhances the NSPanel's functionality but also broadens the scope for more dynamic and responsive environmental automations. +- **Special Thanks:** To @andythomas and @grigi for their exceptional work in testing and proposing these adjustments, truly embodying the spirit of community-driven development. +Your active participation and contributions have been instrumental in refining this feature. + +### Enhanced Version Mismatch Notifications for Comprehensive System Compatibility (#1966 and #1968) +- **Criticality:** Enhancement +- **Affected Components:** Blueprint +- **Issue Number:** #1966 and #1968 +- **Description:** The version mismatch notification system has been significantly improved to cover all critical components of the NSPanel project, +including the ESPHome firmware, Home Assistant blueprint, and Nextion TFT file. +This update ensures that notifications are more descriptive, pinpointing which component is out of sync and providing specific instructions for resolution. +This targeted approach helps users quickly identify and rectify compatibility issues, maintaining the system's overall harmony and preventing disruptions in functionality. + +### Documentation Improvement for TFT Upload Process (#1969) +- **Criticality:** Enhancement +- **Affected Components:** Documentation +- **Issue Number:** #1969 +- **Description:** Enhanced the documentation to clarify the necessity of DNS for downloading TFT files from GitHub during the TFT upload process. +This update addresses confusion encountered when manually setting IP addresses as part of customizations, emphasizing that a DNS server must be specified to enable remote TFT downloads. +For setups lacking DNS configuration, the documentation now highlights the alternative of using local TFT transfer via the `nextion_update_url` substitution. +This clarification aims to streamline the TFT update process, ensuring users have a clear understanding of the requirements for successful TFT file downloads and uploads, +thereby enhancing the overall setup experience. + +### Documentation Update for "Folder-Watcher" Engine Use (#1974) +- **Criticality:** Enhancement +- **Affected Components:** Blueprint +- **Issue Number:** #1974 +- **Description:** Updated documentation to provide clearer instructions on the "folder-watcher" engine's use within the NSPanel project. +This engine, which triggers TFT updates upon changes in a user-specified folder, may not be widely used but offers valuable functionality for those who do. +The documentation now more accurately describes how to leverage this feature for automated TFT updates, aiming to improve understanding and ease of use for interested users. + +### Close Icon Visibility Enhancement (#1984) +- **Criticality:** Enhancement +- **Affected Components:** TFT +- **Issue Number:** #1984 +- **Description:** Enhanced the visibility of the "close" icon (represented as an "x" sign) located at the top right corner of various pages. +By slightly increasing the size of this icon, users can now more easily identify and interact with it, improving the overall usability of the NSPanel interface. +This minor yet impactful adjustment ensures a smoother, more intuitive navigation experience for all users. + +### Alarm Control with Hardware Button Enhancement (#1995) +- **Criticality:** Enhancement +- **Affected Components:** Blueprint +- **Issue Number:** #1995 +- **Description:** Enhanced the functionality of hardware buttons for a more intuitive interaction with alarm control panels. +Now, a short click on a hardware button assigned to an entity from the `alarm_control_panel` domain will open its detailed page, aligning with the behavior for `climate` and `media_player` entities. +This update facilitates quicker access to alarm controls directly from the NSPanel, streamlining user interactions. +Long clicks continue to open the detailed page for these and other domains, maintaining a consistent and user-friendly experience across various controls. + +### Documentation Updates for Arduino References (#1997) +- **Criticality:** Enhancement +- **Affected Components:** Documentation +- **Issue Number:** #1997 +- **Description:** Comprehensive updates and refinements were made to the project documentation, with a particular focus on correcting and clarifying references related to the Arduino framework. +This effort led to a thorough review and subsequent enhancement of various sections of the documentation, improving clarity, accuracy, and usefulness across the board. +Special thanks to the author of this PR, @andythomas, whose dedicated work went beyond just addressing +Arduino framework references to include minor fixes and overall improvements to the documentation. +These contributions have significantly elevated the quality of information available to users, ensuring that the documentation remains a reliable and up-to-date resource for the community. + +### Expanded Wake-Up Sensor Support (#1998) +- **Criticality:** Enhancement +- **Affected Components:** Blueprint +- **Issue Number:** #1998 +- **Description:** The range of supported device classes for wake-up sensors on the NSPanel has been significantly expanded. +Now, in addition to the previously supported door, motion, and occupancy sensors, the NSPanel firmware accommodates a wider variety of sensor types. +These enhancements enable the panel to wake up from sleep mode upon detecting various environmental changes, improving responsiveness and user interaction. +The newly supported device classes include: + - door + - garage_door + - lock + - motion + - occupancy + - opening + - smoke + - sound + - vibration + - window +This update broadens the NSPanel's integration capabilities with home automation systems, allowing for a more dynamic and reactive smart home environment. + +### Hebrew Translation Text Reversal Fix (#1999) +- **Criticality:** Enhancement +- **Affected Components:** Blueprint +- **Issue Number:** #1999 +- **Description:** Addressed a specific issue with the Hebrew translation where text was displayed in reverse order, hindering readability and user experience. +This fix ensures that Hebrew text is correctly aligned and presented, enhancing the interface for Hebrew-speaking users. +The commitment to support diverse languages and correct such localization issues underscores our dedication to providing a user-friendly experience for all NSPanel users, +regardless of their language. + +### Enhanced TFT Update Reliability in ESPHome Nextion Component +- **Criticality:** Enhancement +- **Affected Components:** ESPHome +- **Description:** Improved the reliability of TFT updates within the ESPHome Nextion component. +This enhancement optimizes the process of updating the NSPanel's display, ensuring smoother transitions and reducing the potential for update failures. +The upgrade targets the underlying mechanisms of the Nextion component in ESPHome, +refining its functionality to offer a more dependable and efficient update experience for users implementing TFT changes. + ## Support For support or more information about this update, visit our [GitHub repository](https://github.com/Blackymas/NSPanel_HA_Blueprint) @@ -375,6 +585,7 @@ Your efforts have significantly improved its functionality and reliability (#183 Your contributions have made our guides more informative and accessible, enriching the user experience for everyone (#1865). ## Previous releases +- [v4.3.1 - Ensuring Compatibility with ESPHome v2024.3.0 and Enhancing Stability](https://github.com/Blackymas/NSPanel_HA_Blueprint/releases/tag/v4.3.1) - [v4.3 - Welcome to Framework ESP-IDF, an Utilities Dashboard and Enhanced Localization](https://github.com/Blackymas/NSPanel_HA_Blueprint/releases/tag/v4.3.0) - [v4.2.6 - Enhancing Stability and User Experience](https://github.com/Blackymas/NSPanel_HA_Blueprint/releases/tag/v4.2.6) - [v4.2.5 - Celebrating 1000 Stars with Enhanced Functionality and UI Improvements](https://github.com/Blackymas/NSPanel_HA_Blueprint/releases/tag/v4.2.5) diff --git a/components/nspanel_ha_blueprint/nextion_components.h b/components/nspanel_ha_blueprint/nextion_components.h index 56403ed..f85b728 100644 --- a/components/nspanel_ha_blueprint/nextion_components.h +++ b/components/nspanel_ha_blueprint/nextion_components.h @@ -1,51 +1,86 @@ // nextion_components.h #pragma once +#include +#include #include +#include namespace nspanel_ha_blueprint { struct NextionComponent { - std::string page; - std::string component_id; + char page[15]; // 14 characters + null terminator + char component_id[15]; // 14 characters + null terminator bool is_current_page; }; /** * Extracts the page name and component ID from a given input string. - * Handles a special case where "alarm_control_panel" should be shortened to "alarm". + * If the input string omits the page, uses defaultPage. + * Special case: "alarm_control_panel" is shortened to "alarm". * - * @param input The input string containing either the combined page and component ID or just the component ID. - * @param defaultPage The default page name to use if the input string does not specify a page. - * @return A NextionComponent struct containing the extracted or default page name, the component ID, and a flag indicating if it's the current page. + * @param input The input string containing the component ID, optionally prefixed by the page name and a dot. + * @param defaultPage The default page name to use if the input string does not specify a page, limited to 14 characters. + * @return A NextionComponent struct with the extracted or default page name, the component ID, and a flag for current page status. */ NextionComponent extractNextionComponent(const std::string& input, const std::string& defaultPage) { + NextionComponent result{}; size_t dotPos = input.find("."); - NextionComponent result; - - if (dotPos != std::string::npos) { - // Extract page and component_id from the input string - result.page = input.substr(0, dotPos); - result.component_id = input.substr(dotPos + 1); - result.is_current_page = false; // Since there's a dot, it's assumed not to be the current page - // Check for the special case of "alarm_control_panel" - if (result.page == "alarm_control_panel") { - result.page = "alarm"; + if (dotPos != std::string::npos) { + if (input.compare(0, 20, "alarm_control_panel.") == 0) { + strncpy(result.page, "alarm", sizeof(result.page) - 1); + result.page[sizeof(result.page) - 1] = '\0'; + } else { + // Copy up to the dot or 14 characters, whichever is smaller + size_t lengthToCopy = std::min(dotPos, static_cast(14)); + strncpy(result.page, input.c_str(), lengthToCopy); + result.page[lengthToCopy] = '\0'; // Ensure null termination } + + // Extract and copy component_id + const char* componentStart = input.c_str() + dotPos + 1; + strncpy(result.component_id, componentStart, std::min(input.length() - dotPos - 1, static_cast(14))); + result.component_id[14] = '\0'; // Ensure null termination + result.is_current_page = false; } else { - // No dot found, the entire input is considered as component_id - result.page = defaultPage; - result.component_id = input; - result.is_current_page = true; // No specific page mentioned, so it's the current page + // No dot found, use defaultPage and assume it's the current page + strncpy(result.page, defaultPage.c_str(), 14); + result.page[14] = '\0'; // Ensure null termination + + // Input is the component_id + strncpy(result.component_id, input.c_str(), std::min(input.length(), static_cast(14))); + result.component_id[14] = '\0'; // Ensure null termination + result.is_current_page = true; } - // Check if the resolved page matches the defaultPage indicating it's the current page - if (result.page == defaultPage) { + // Additional check to see if the current page matches defaultPage + if (strncmp(result.page, defaultPage.c_str(), 14) == 0) { result.is_current_page = true; } return result; } + /** + * Converts an RGB color represented as a vector of integers to the 16-bit 5-6-5 format supported by Nextion displays. + * + * This function takes a vector containing three integer values representing + * the red, green, and blue components of an RGB color, each in the range 0-255. + * It then converts these values into a single uint16_t value in 5-6-5 format, + * commonly used for color displays. The conversion process masks and shifts + * the components to fit into the 5 bits for red, 6 bits for green, and 5 bits for blue. + * + * @param rgb A vector of integers with exactly three elements: [red, green, blue]. + * @return The color encoded in 16-bit 5-6-5 format, or UINT16_MAX if the input vector + * does not contain at least three elements. + */ + template + inline uint16_t rgbTo565(const Container& rgb) { + if (rgb.size() != 3) { + return UINT16_MAX; // Use UINT16_MAX as an error indicator + } + return ((rgb[0] & 0xF8) << 8) | ((rgb[1] & 0xFC) << 3) | (rgb[2] >> 3); + } + } // namespace nspanel_ha_blueprint diff --git a/components/nspanel_ha_blueprint/utilities.cpp b/components/nspanel_ha_blueprint/utilities.cpp new file mode 100644 index 0000000..8201118 --- /dev/null +++ b/components/nspanel_ha_blueprint/utilities.cpp @@ -0,0 +1,51 @@ +// utilities.cpp +#include "utilities.h" +#include +#include + +namespace nspanel_ha_blueprint { + + UtilitiesGroupValues UtilitiesGroups[8]; + + void resetUtilitiesGroups() { + // Temporary structure to hold the initial values + const UtilitiesGroupValues initialUtilitiesGroups[8] = { + { "grid", "\0", "\0", 0 }, + { "group01", "\0", "\0", 0 }, + { "group02", "\0", "\0", 0 }, + { "group03", "\0", "\0", 0 }, + { "group04", "\0", "\0", 0 }, + { "group05", "\0", "\0", 0 }, + { "group06", "\0", "\0", 0 }, + { "home", "\0", "\0", 0 } + }; + + for (size_t i = 0; i < 8; ++i) { + std::strcpy(UtilitiesGroups[i].group_id, initialUtilitiesGroups[i].group_id); + std::strcpy(UtilitiesGroups[i].value1, initialUtilitiesGroups[i].value1); + std::strcpy(UtilitiesGroups[i].value2, initialUtilitiesGroups[i].value2); + UtilitiesGroups[i].direction = initialUtilitiesGroups[i].direction; + } + } + + uint8_t findUtilitiesGroupIndex(const char* group_id) { + int low = 0; + int high = sizeof(UtilitiesGroups) / sizeof(UtilitiesGroups[0]) - 1; + + while (low <= high) { + int mid = low + (high - low) / 2; + int cmp = strcmp(UtilitiesGroups[mid].group_id, group_id); + + if (cmp < 0) { + low = mid + 1; + } else if (cmp > 0) { + high = mid - 1; + } else { + return static_cast(mid); // Found + } + } + + return UINT8_MAX; // Not found + } + +} // namespace nspanel_ha_blueprint diff --git a/components/nspanel_ha_blueprint/utilities.h b/components/nspanel_ha_blueprint/utilities.h new file mode 100644 index 0000000..e5f6d2d --- /dev/null +++ b/components/nspanel_ha_blueprint/utilities.h @@ -0,0 +1,20 @@ +// utilities.h +#pragma once + +#include + +namespace nspanel_ha_blueprint { + + struct UtilitiesGroupValues { + char group_id[8]; // 7 characters + null terminator + char value1[11]; // 10 characters + null terminator + char value2[11]; // 11 characters + null terminator + int8_t direction; + }; + + extern UtilitiesGroupValues UtilitiesGroups[8]; + + void resetUtilitiesGroups(); + uint8_t findUtilitiesGroupIndex(const char* group_id); + +} // namespace nspanel_ha_blueprint diff --git a/components/nspanel_ha_blueprint_upload_tft/upload_tft.h b/components/nspanel_ha_blueprint_upload_tft/upload_tft.h index a26edec..8ffe34d 100644 --- a/components/nspanel_ha_blueprint_upload_tft/upload_tft.h +++ b/components/nspanel_ha_blueprint_upload_tft/upload_tft.h @@ -42,4 +42,40 @@ namespace nspanel_ha_blueprint_upload_tft { return url; // Return the constructed URL } + /** + * @brief Generates a descriptive text for the NSPanel based on the given display mode and charset. + * + * This function maps numeric codes for the display mode and charset to a human-readable + * description of an NSPanel configuration. It supports different geographic regions and language + * character sets. If the inputs do not match any predefined configuration, the function returns + * an empty string, allowing for easy detection of unexpected or invalid inputs. + * + * @param displayMode An integer representing the display mode of the NSPanel: + * 1 for "EU", 2 for "US", and 3 for "US Landscape". + * @param charset An integer indicating the character set used: + * 1 for "International (original)" and 2 for "CJK languages". + * @return std::string A string describing the NSPanel configuration based on the inputs. + * Returns an empty string if the inputs do not match any known configuration. + */ + std::string getNSPanelText(int displayMode, int charset) { + + if (displayMode < 1 or displayMode > 3 or charset < 1 or charset > 2) return ""; + + std::string text; + // Determine the base text based on the display mode + switch(displayMode) { + case 1: text = "NSPanel EU"; break; + case 2: text = "NSPanel US"; break; + case 3: text = "NSPanel US Landscape"; break; + default: return ""; // Return an empty string for unmatched display modes + } + + // Append the charset text if necessary + if (charset == 2) { + text += " (CJK languages)"; + } + + return text; + } + } // namespace nspanel_ha_blueprint_upload_tft diff --git a/docs/addon_climate.md b/docs/addon_climate.md index 09cb514..b78d133 100644 --- a/docs/addon_climate.md +++ b/docs/addon_climate.md @@ -19,7 +19,7 @@ Don't use it for directly power your cooler/heater if exceeding the panel specif ## Installation You will need to add the reference to `addon_climate_heat`, `addon_climate_cool` or `addon_climate_dual` files on your ESPHome settings in the `package` section -and after the `remote_package` (base code), as shown bellow (for `heat` in this example): +and after the `remote_package` (base code), as shown below (for `heat` in this example): > [!NOTE] > Occasionally, ESPHome updates may result in the `entity_id` of embedded thermostats being appended with `_2`. @@ -210,12 +210,12 @@ packages: ### Real Use Case Example: Water Underfloor Heating with NSPanel The NSPanel works nicely as a replacement for existing water underfloor heating controllers, installed at eye level and often powered by 100-240VAC. In my specific use case, the control valve is of the 'normally closed' type, meaning that an open relay indicates 'no heating.' -I have utilized relay #1 for this purpose. It's important to note that this setup does not act as a PID controller but operates on a simple on-off mechanism. +I have utilized relay #1 for this purpose. It's important to note that this setup does not act as a PID controller, but operates on a simple on-off mechanism. The system initiates heating at a preset value below and turns it off at a value above the set point. -I have set these values to `0.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. +I have set these values to `0.1°C` below and `0.1°C` above the target temperature, respectively. +These adjustments have been effectively maintaining the desired temperature in all of our four rooms. 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. +Furthermore, I have selected `18.3°C` as the default target temperature. ```yaml ##### addon-configuration ##### @@ -224,21 +224,23 @@ Furthermore, I have selected `21.2°C` as the default target temperature. temp_min: "15" temp_max: "22" temp_step: "0.1" - cold_tolerance: "0.3" + cold_tolerance: "0.1" hot_tolerance: "0.1" ##### CHANGE ME END ##### climate: - id: !extend thermostat_embedded + visual: + temperature_step: ${temp_step} preset: - name: Home - default_target_temperature_low: 21.2 + default_target_temperature_low: 18.3 mode: "heat" ``` -Please note that employing any filter to smooth the temperature readings, such as averaging, is discouraged. +Please note that employing any filter to smooth the temperature readings, such as averaging, is discouraged if the relevant timescale exceeds 1min. 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.'* +*On March 24th (around 9:20 PM) and March 25th (around 7:30AM) a window was opened, and all heaters were set to 'off.' for 30min* diff --git a/docs/api.md b/docs/api.md index 4ad5808..385d874 100644 --- a/docs/api.md +++ b/docs/api.md @@ -233,11 +233,11 @@ and provides a structured way to return to either the home page or a specific bu **Usage:** Ideal for interfaces requiring detailed entity information across various contexts. -By specifying the `entity_id` and `back_page`, users are offered a seamless navigation experience, +By specifying the `entity` and `back_page`, users are offered a seamless navigation experience, ensuring they can easily access detailed information and return to their initial navigation point within the interface. **Parameters:** -- `entity_id` (string): The unique identifier of the entity for which details are displayed. +- `entity` (string): The unique identifier of the entity (`entity_id` in Home Assistant) for which details are displayed. - `back_page` (string): The page identifier to return to after viewing entity details. Valid options are `home` for the home page or `buttonpage01` to `buttonpage04` for button pages. No other pages are supported to maintain navigation consistency. @@ -246,7 +246,7 @@ No other pages are supported to maintain navigation consistency. ```yaml service: esphome._entity_details_show data: - entity_id: "light.living_room" + entity: "light.living_room" back_page: "buttonpage01" ``` > [!NOTE] diff --git a/docs/customization.md b/docs/customization.md index bc1e18b..8b308af 100644 --- a/docs/customization.md +++ b/docs/customization.md @@ -225,6 +225,9 @@ api: ### Manual IP Set IP address manually. +> [!ATTENTION] +> At least one DNS server is required to enable TFT transfer direcly from GitHub, otherwise use `nextion_update_url`. + ```yaml # Set IP address manually wifi: @@ -234,6 +237,8 @@ wifi: static_ip: 192.168.0.123 gateway: 192.168.0.1 subnet: 255.255.255.0 + dns1: 1.1.1.1 # At least one DNS server is required to enable TFT transfer direcly from GitHub, otherwise use `nextion_update_url`. + dns2: 8.8.8.8 ``` ### Hidden Wi-Fi @@ -536,11 +541,7 @@ time: ### Frameworks > [!IMPORTANT] > When switching between frameworks, make sure to update the device with a serial cable as the partition table is different between the two frameworks -as [OTA Update Component](https://esphome.io/components/ota) updates will not change the partition table. - -The `arduino` protocol still more popular and therefore more components are available, but as `esp-idf` is maintained by EspressIF and is kept updated, -more boards are supported and the memory management is better, making it ideal if you wanna customize your panel to support memory consumption functionalities, -like `bluetooth_proxy` or [Improv](https://www.improv-wifi.com/). +as [OTA Update Component](https://esphome.io/components/ota) updates will not change the partition table. While it will appear to work, the device will boot the old framework after a reset. This project currently uses `esp-idf` as default framework. You can overlap the settings with this customization. @@ -548,6 +549,13 @@ You can overlap the settings with this customization. > [!NOTE] > For more info about frameworks, please visit [ESPHome docs](https://esphome.io/components/esp32). +`esp-idf` is maintained by EspressIF and is kept updated, +more boards are supported and the memory management is better, making it ideal if you wanna customize your panel to support memory consumption functionalities, +like `bluetooth_proxy` or [Improv](https://www.improv-wifi.com/). Consequently, this project uses `esp-idf` as the default framework since `v4.3`. + +However, the `arduino` protocol still very popular and, therefore, more components are available and the project allows to switch between the frameworks +by adding the following lines in your panel's yaml file. + #### Framework `arduino` ```yaml # Change framework to `arduino` @@ -558,6 +566,7 @@ esp32: #### Framework `esp-idf` ```yaml # Change framework to `esp-idf` +# (should not be required) esp32: framework: type: esp-idf diff --git a/docs/different_version.md b/docs/different_version.md index dd14926..163d7df 100644 --- a/docs/different_version.md +++ b/docs/different_version.md @@ -65,11 +65,11 @@ They're created for each new release, allowing easy access to different project ### For Nextion TFT Component The instructions to upload TFT will vary depending on the version you are installing and the framework you are using. -#### v4.2 or later (ESP-IDF) or v4.2.5 or later (Arduino) +#### v4.2 or later (if you are using ESP-IDF) or v4.2.5 or later (if you are using Arduino) 1. Go to your device's page under **Settings** > **Devices & Services** > **ESPHome**. 2. On the **Configuration** group, press **Update TFT display** and wait for the upload to complete. The system will automatically find the right TFT file for the ESPHome version you are running. -#### v4.1 or earlier, or v4.2.4 or earlier for Arduino framework +#### v4.1 or earlier (in either case) or v4.2.4 or earlier (if you are using Arduino) 1. On the GitHub repository, click on your chosen version name on the [NSPanel_HA_Blueprint Tags](https://github.com/Blackymas/NSPanel_HA_Blueprint/tags) list, then select the tab **Code**. 2. Double-check that the correct version is shown below the repository name: diff --git a/docs/error_initializing.md b/docs/error_initializing.md index 9d796d4..cc408f7 100644 --- a/docs/error_initializing.md +++ b/docs/error_initializing.md @@ -1,11 +1,11 @@ # Panel startup issues When your panel starts, a number of different things needs to be set and the ESPHome must establish connection to the Nextion display used by your panel -and also to your Home Assistant, which will provide the propper settings required by your panel. +and also to your Home Assistant, which will provide the proper settings required by your panel. If everything goes right, the boot page will be shown for just a few seconds, then the wake-up page will be shown. If something happens during this process, your panel may get stuck on this page. -In many cases, restarting your panel can resolve the issue, but if after a reboot it still showing the boot page, this guide may help you. +In many cases, restarting your panel can resolve the issue, but if it is still showing the boot page after a reboot, this guide may help you. Understanding what is shown on the boot page can be useful to find the cause of the problem or when you are looking for help. @@ -13,11 +13,11 @@ Understanding what is shown on the boot page can be useful to find the cause of Your boot page probably looks like this: -**Before ESPHome is connected:** +**Before Home Assistant/ESPHome is connected:** ![Boot page Initializing](pics/eu_boot_initializing.png) -**When ESPHome is connected:** +**When Home Assistant/ESPHome is connected:** ![Boot page with IP](pics/eu_boot_with_ip_address.png) @@ -49,7 +49,7 @@ If some of those versions are not shown, you can have an indication of where a p - **TFT** version will always be shown, as that is part of the display itself. - **ESPHome** version will be shown as soon the ESPHome establishes the communication with the display. -- **Blueprint** version requires both ESPHome and Blueprint to establish communication to be shown. +- **Blueprint** version requires both ESPHome and the Blueprint (in Home Assistant) to establish communication to be shown. In normal situation, all the versions should be displayed and should be the same. Different patch versions are supported. @@ -77,6 +77,7 @@ You can use this button to force a reboot of your panel. This button is availabl ![Blueprint icon on red](pics/us_home_blueprint_icon_red.png) In some cases you can also see duplicate entities on the device's page in Home Assistant, and some of these entities may have the `entity_id` ending with `_2`, `_3`, etc. + ![image](https://github.com/Blackymas/NSPanel_HA_Blueprint/assets/9100568/51a5fce4-89cc-43e8-9d92-1f83d7ea2ee5) @@ -85,7 +86,7 @@ In some cases you can also see duplicate entities on the device's page in Home A | You may have an older version of the blueprint installed or the blueprint isn't installed into your Home Assistant. | [Install the blueprint](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgithub.com%2FBlackymas%2FNSPanel_HA_Blueprint%2Fblob%2Fmain%2Fnspanel_blueprint.yaml).
[Update the blueprint](howto.md#update-blueprint).| | You don't have an automation created using the blueprint. | On Home Assistant, go to **Settings** --> **Automations & Scenes** --> **Blueprints** --> **NSPanel Configuration** --> **CREATE AUTOMATION** and follow the [instructions to setup your automation](blueprint.md).
**Attention!!** You need one automation per panel, if you have more than one panel set. | | Your panel is not selected in the automation. | Open the automation related to your panel and make sure the right device is set on the **NSPanel device** field. | -| Your panel's connection to Home Assistant may have issues.
This could be from an invalid entity Id, or some service missing registration. | Reconnect the Panel's device to Home Assistant:
1. Go to **Settings** --> **Devices & Services** --> **ESPHome**
2. Delete the device
3. Restart Home Assistant host
4. Go back to **Settings** --> **Devices & Services**
5. Click **Add integration**
6. Select **ESPHome**
7. Enter your panel's hostname or IP address.| +| Your panel's connection to Home Assistant may have issues.
This could be from an invalid entity Id (e.g. ending with `_2`), or some service missing registration. | Reconnect the Panel's device to Home Assistant:
1. Go to **Settings** --> **Devices & Services** --> **ESPHome**
2. Delete the device
3. Restart Home Assistant host
4. Go back to **Settings** --> **Devices & Services**
5. Click **Add integration**
6. Select **ESPHome**
7. Enter your panel's hostname or IP address.| ## Additional Tips and Resources @@ -93,8 +94,8 @@ In some cases you can also see duplicate entities on the device's page in Home A After troubleshooting, if issues persist, consult the [Issues](https://github.com/Blackymas/NSPanel_HA_Blueprint/issues) and feel free to create a new one asking for more personalized assistance. Please share as much info as possible, like: -1. Describing (or a picture of) what is in your screen -2. Are updating from a previous version of this same project, or coming from another NSPanel customization (which one?) or customizing for the first time a panel with original Sonoff settings? +1. Describing (or a picture of) what is on your screen +2. Are you updating from a previous version of this project, or you coming from another NSPanel customization (which one?) or are you customizing for the first time a panel with the original Sonoff settings? 3. Please share the ESPHome logs from when your panel starts to the moment the upload fails. 4. Describe what you have already tried. diff --git a/docs/howto.md b/docs/howto.md index 5d1344e..0da632f 100644 --- a/docs/howto.md +++ b/docs/howto.md @@ -12,15 +12,15 @@ You can write a short message with your findings, and we'll include it here. Below are the topics covered in this document, each with relevant tips and solutions. 1. [How do I create "Issues" when I have a problem ](#how-to-create-issues-when-i-have-a-problem) -1. [Update Blueprint](#update-blueprint) -1. [Update ESPHome](#update-esphome) -1. [Update TFT](#update-tft) -1. [Notification via HA](#notification-via-ha) -1. [Climate control with relays](#climate-control-with-relays) -1. [Call a page directly](#call-a-page-directly) -1. [Play RTTTL Sound](#play-rtttl-sound) -1. [Start automations via Input_Boolean](#start-automations-via-input_boolean) -1. [Updating Wi-Fi and OTA passwords in ESPHome with this project](#updating-wi-fi-settings-and-ota-passwords-in-esphome-with-this-project) +2. [Update Blueprint](#update-blueprint) +3. [Update ESPHome](#update-esphome) +4. [Update TFT](#update-tft) +5. [Notification via HA](#notification-via-ha) +6. [Climate control with relays](#climate-control-with-relays) +7. [Call a page directly](#call-a-page-directly) +8. [Play RTTTL Sound](#play-rtttl-sound) +9. [Start automations via Input_Boolean](#start-automations-via-input_boolean) +10. [Updating Wi-Fi and OTA passwords in ESPHome with this project](#updating-wi-fi-settings-and-ota-passwords-in-esphome-with-this-project) ## How to create "issues" when I have a problem @@ -138,13 +138,13 @@ The new firmware will be built and then flashed to your panel, which will restar 4. The display starts the update process and then restarts. ## Notification via HA -To show a notification on the NSPAnel, the following service call can be used: +To show a notification on the NSPanel, the following service call can be used: ```yaml service: esphome.panelname_notification_show data: - label: Example text - message: Example text + label: Example label text + message: Example message text ``` > [!NOTE] > For more details about this service call, please refer to our [API documentation](api.md#notification-show-service-notification_show). @@ -177,7 +177,9 @@ trigger: ## Climate control with Relays > [!ATTENTION] -> Although these instructions are still valid, since v4.0 there is a better way to setup a climate control using the panel's relays an the [add-on climate](addon_climate.md). +> Although these instructions are still valid, since v4.0 there is a better way to setup a climate control using the panel's relays an the [add-on climate](addon_climate.md), +> which will continue to work even if Home Assistant and/or WiFi are not available. +> You probably only want to use this approach, if you are not using the build-in thermometer. In order to use the NSPanel to control a radiator or underfloor heating, at least one Generic Thermostat must be created in the HA. More information can be found here: https://www.home-assistant.io/integrations/generic_thermostat/ diff --git a/docs/install.md b/docs/install.md index e554490..4eb2ce0 100644 --- a/docs/install.md +++ b/docs/install.md @@ -80,59 +80,72 @@ Detailed steps for a manual installation can be found in the guide [Installing E Follow these steps to add a new device in the ESPHome Dashboard: 1. Click the **+ New Device** button. + 2. Enter a unique name for your new ESPHome device. ![New Device Name](pics/ha_esphome_dashboard_new_device_01.png) + 3. Select **ESP32** as the device type. ![Select ESP32](pics/ha_esphome_dashboard_new_device_02.png) + 4. Click **Skip** as we're not starting the installation yet. ![Skip Installation](pics/ha_esphome_dashboard_new_device_03.png) + 5. Locate your newly created device in the ESPHome Dashboard and click **Edit**. ![Edit Device](pics/ha_esphome_dashboard_new_device_04.png) -6. (Optional) For enhanced security, consider copying the `api:` section to a temporary file. + +6. (Optional) For enhanced security, consider copying the `api:` entry to your panel's yaml file while adding the key itself to the secrets file ![API Section](pics/ha_esphome_dashboard_new_device_05.png) + + which can be edited clicking `secrets` at the top right of your ESPHome menu. + + ![API Section](pics/ha_esphome_dashboard_new_device_05c.png) + 7. Note the device name at the beginning of the file under `esphome`. ![Device Name](pics/ha_esphome_dashboard_new_device_05b.png) + 8. Clear all existing content and paste the following YAML configuration: - ```yaml - substitutions: - # Settings - Editable values - device_name: "YOUR_NSPANEL_NAME" - friendly_name: "Your panel's friendly name" - wifi_ssid: !secret wifi_ssid - wifi_password: !secret wifi_password - nextion_update_url: "http://homeassistant.local:8123/local/nspanel_eu.tft" # Optional - # Add-on configuration (if needed) - # heater_relay: "1" # Possible values: "1" or "2" + ```yaml + substitutions: + # Settings - Editable values + device_name: "YOUR_NSPANEL_NAME" + friendly_name: "Your panel's friendly name" + wifi_ssid: !secret wifi_ssid + wifi_password: !secret wifi_password + nextion_update_url: "http://homeassistant.local:8123/local/nspanel_eu.tft" # Optional + # Add-on configuration (if needed) + # heater_relay: "1" # Possible values: "1" or "2" - # Customization area - ##### My customization - Start ##### - ##### My customization - End ##### + # Customization area + ##### My customization - Start ##### + ##### My customization - End ##### - # Core and optional configurations - packages: - remote_package: - url: https://github.com/Blackymas/NSPanel_HA_Blueprint - ref: main - files: - - nspanel_esphome.yaml # Basic package - # Optional advanced and add-on configurations - # - esphome/nspanel_esphome_advanced.yaml - # - nspanel_esphome_addon_climate_cool.yaml - # - nspanel_esphome_addon_climate_heat.yaml - # - nspanel_esphome_addon_climate_dual.yaml - refresh: 300s - ``` + # Core and optional configurations + packages: + remote_package: + url: https://github.com/Blackymas/NSPanel_HA_Blueprint + ref: main + files: + - nspanel_esphome.yaml # Basic package + # Optional advanced and add-on configurations + # - esphome/nspanel_esphome_advanced.yaml + # - nspanel_esphome_addon_climate_cool.yaml + # - nspanel_esphome_addon_climate_heat.yaml + # - nspanel_esphome_addon_climate_dual.yaml + refresh: 300s + ``` ![YAML Code](pics/ha_esphome_dashboard_new_device_06.png) + 9. Modify the **Settings** section with your device name (as noted in step 7) and Wi-Fi details. ![Edit Settings](pics/ha_esphome_dashboard_new_device_06b.png) + 10. For Wi-Fi credentials, use `!secret` for added security or input them directly. Learn about secrets in ESPHome: [Home Assistant Secrets in ESPHome](https://www.youtube.com/watch?v=eW4vKDeHh7Y). + 11. (Optional) Adjust `nextion_update_url` to the URL of a TFT file hosted on an HTTP or HTTPS server, ensuring that the file is accessible to the NSPanel. This URL will be used by ESPHome to download the TFT file to your panel. For more information on hosting the TFT file and setting up the URL, see the [Upload TFT](#upload-tft) section. - > [!CAUTION] > **Prefer HTTP over HTTPS for File Transfer** > While you might encounter examples using HTTPS in URLs for file transfer, @@ -141,7 +154,6 @@ Learn about secrets in ESPHome: [Home Assistant Secrets in ESPHome](https://www. > often leading to issues with file transfers. 12. (Optional) Enhance security with API encryption by adding the copied key from step 6 to the **My Customization** area. - > [!TIP] > You can get a new randomly generated valid key from [ESPHome Native API Component](https://esphome.io/components/api.html#configuration-variables) page. diff --git a/docs/lovelace_ui.md b/docs/lovelace_ui.md index dbba07e..04e9e8a 100644 --- a/docs/lovelace_ui.md +++ b/docs/lovelace_ui.md @@ -12,7 +12,7 @@ If you are coming from there, you have to chose one of the 3 options: ### Common steps -1. Download the file [`nspanel_blank.tft`](../nspanel_blank.tft) from our GitHub repository. +1. Download the file [`nspanel_blank.tft`](../hmi/nspanel_blank.tft) from our GitHub repository. 2. Upload the same file (`nspanel_blank.tft`) to the folder _**"www"**_ in your Home Assistant 3. Double check if the file is available by trying to download it using your local url (typically [`http://homeassistant.local:8123/local/nspanel_blank.tft`](http://homeassistant.local:8123/local/nspanel_blank.tft)). diff --git a/docs/pics/addon_underfloor.png b/docs/pics/addon_underfloor.png index 9a80f7c..9164463 100644 Binary files a/docs/pics/addon_underfloor.png and b/docs/pics/addon_underfloor.png differ diff --git a/docs/pics/ha_esphome_dashboard_new_device_05.png b/docs/pics/ha_esphome_dashboard_new_device_05.png index 3c8bb7c..1663c69 100644 Binary files a/docs/pics/ha_esphome_dashboard_new_device_05.png and b/docs/pics/ha_esphome_dashboard_new_device_05.png differ diff --git a/docs/pics/ha_esphome_dashboard_new_device_05c.png b/docs/pics/ha_esphome_dashboard_new_device_05c.png new file mode 100644 index 0000000..a0cfe54 Binary files /dev/null and b/docs/pics/ha_esphome_dashboard_new_device_05c.png differ diff --git a/docs/tft_upload.md b/docs/tft_upload.md index 593b530..8a5d461 100644 --- a/docs/tft_upload.md +++ b/docs/tft_upload.md @@ -7,16 +7,13 @@ > See [Common Issues | TFT Upload when NSPanel Lovelace UI has been installed](howto.md) ## Common Issues and Troubleshooting - 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 - ![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. 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. @@ -39,8 +36,11 @@ For troubleshooting, refer to the following sections: > or use a pin to press the hardware restart button in a small hole behind the device. > ![Image](pics/eu_reset_button.png) -### Using the `nspanel_blank.tft` File to Assist +### If using manual IP, make sure you have a DNS server configured +At least one DNS server is required to enable TFT transfer direcly from GitHub, otherwise use `nextion_update_url`. +If you are setting up a manual IP as a customization, please remember to add a valid DNS server for your panel. +### Using the `nspanel_blank.tft` File to Assist Many TFT upload problems are associated with the Nextion Active Reparse Mode, which is used in some implementations like the original Sonoff firmware or other popular custom firmwares. Installing any TFT file from this project will disable this mode. @@ -59,7 +59,6 @@ It should be automatically detected as a new integration, but if this is not hap click the **Add integration** button, select **ESPHome**, add the device hostname or IP address and follow the steps required. ### Wait a Bit Before Starting the TFT Upload - - **Issue**: The Nextion display might not connect to ESPHome immediately after boot. - **Solution**: Wait up to 2 minutes for the boot script to complete. If you are already using a TFT from this project, the display of ESPHome version and the framework used (`arduino` vs `esp-idf`) is an indication that a communication was established. @@ -68,7 +67,6 @@ If you haven't installed any TFT yet, look for Nextion related messages on ESPHo Observe any changes in the display or logs indicators to ensure the device is ready. ### Using a Local Source (Home Assistant) - - **Issue**: Problems with downloading the TFT from GitHub. - **Solution**: Host the TFT file on your Home Assistant and change the `nextion_update_url` accordingly. - **Step-by-Step Guide**: Here's how you can change your `nextion_update_url`: @@ -77,34 +75,29 @@ Observe any changes in the display or logs indicators to ensure the device is re 3. Replace the URL with the local address where your TFT file is hosted. ### HTTP Instead of HTTPS - - **Issue**: HTTPS connections may be problematic with ESP, especially when using `arduino` as framework. - **Solution**: Use HTTP for hosting the TFT file and updating the `nextion_update_url`. - **Why HTTP?**: HTTP can be more stable for these connections. To switch, simply replace 'https' with 'http' in your URLs and make sure your http server supports non-secure connections. ### Remove Customizations - - **Issue**: Customizations like `bluetooth_proxy` and `ble_tracker` may interfere with the upload. - **Solution**: Temporarily remove any customizations to free up memory. - **How to Remove Customizations**: Identify any additional features you've added and remove them from your configuration file. Pay special attention to memory-intensive customizations. ### Use IP Address Instead of DNS - - **Issue**: DNS may cause connection problems. - **Solution**: Use the IP address of your Home Assistant directly. - **Example**: Replace `http://homeassistant.local:8123/local/nspanel_blank.tft` with `http://192.168.0.100:8123/local/nspanel_blank.tft`. ### Check the File Size by Downloading to Your Computer - - **Issue**: Ensuring the file size matches the GitHub version. - **Solution**: Use the same URL you provided to ESPHome to download the file on your computer and compare sizes. - **Verification Steps**: Download the file, then right-click and select 'Properties' to check the size. Compare this with the size listed on GitHub or from the file you downlodaded directly from GitHub. ### Power Cycle Your Panel - - **Issue**: General troubleshooting. - **Solution**: Turn off the power supply, wait for a moment, and then power it back on. If your panel is already installed in the wall, you can often power cycle it by switching the relay connected to your panel in your electricity relay's panel. @@ -118,7 +111,6 @@ This duration helps ensure that the system resets to a clean state. > ![Hardware Reset Button](pics/eu_reset_button.png) ### Consider changing the framework - - **Issue**: You might be facing some situation where the transfer engine used by your framework cannot handle it properly. - **Solution**: Temporarily switch between the frameworks. - **Additional Guidance**: This project supports both `arduino` (ESPHome default) or `esp-idf` (this project default) frameworks. @@ -127,7 +119,6 @@ The upload TFT engines have some differences, so changing the framework may solv You can set the framework you want by adding this to your ESPHome yaml: #### ESP-IDF - ```yaml esp32: framework: @@ -135,7 +126,6 @@ esp32: ``` #### Arduino - ```yaml esp32: framework: @@ -143,7 +133,6 @@ esp32: ``` ### Flash your panel again - - **Issue**: Your firmware might be missing some important library, you may be using an outdated version or the ESP may be out of memory. - **Solution**: Remove all add-ons and non-essential customization and flash your panel again. - **Step-by-Step Guide**: @@ -153,7 +142,6 @@ esp32: 4. Add the add-ons and removed customization back and then flash it again. ### Try an alternative http service - - **Issue**: Your current http server may be overloaded. - **Solution**: Try another http server installed in your computer. There are many options available for free to run under you local Windows, MAC or Linux machine. @@ -166,7 +154,6 @@ There are many options available for free to run under you local Windows, MAC or | XAMPP | [apachefriends.org](https://www.apachefriends.org/index.html) | Linux, Windows, macOS | All-in-one package, easy to install, ideal for beginners | Not optimized for high-traffic sites, more suited for development than production | ## Additional Tips and Resources - After troubleshooting, if issues persist, consult the [Issues](https://github.com/Blackymas/NSPanel_HA_Blueprint/issues) and feel free to create a new one asking for more personalized assistance. Please share as much info as possible, like: @@ -176,5 +163,4 @@ Please share as much info as possible, like: 4. Describe what you have already tried. ## Important note - Remember, these steps are a guideline and might vary slightly based on your specific setup and previously installed system. diff --git a/esphome/nspanel_esphome_addon_upload_tft.yaml b/esphome/nspanel_esphome_addon_upload_tft.yaml index 1b32151..627dfbf 100644 --- a/esphome/nspanel_esphome_addon_upload_tft.yaml +++ b/esphome/nspanel_esphome_addon_upload_tft.yaml @@ -19,7 +19,7 @@ external_components: - source: type: git url: https://github.com/Blackymas/NSPanel_HA_Blueprint - ref: main + ref: v4.3.2 components: - nspanel_ha_blueprint_upload_tft refresh: 300s @@ -166,6 +166,15 @@ script: App.feed_wdt(); } + - id: select_tft_file_model + mode: restart + then: + - lambda: |- + if (!isnan(display_mode->state) and !isnan(display_charset->state)) { + std::string PanelModel = getNSPanelText(int(display_mode->state), int(display_charset->state)); + if (!PanelModel.empty() and tft_file_model->state != PanelModel) tft_file_model->publish_state(PanelModel); + } + - id: !extend stop_all then: - lambda: |- @@ -413,16 +422,22 @@ select: icon: mdi:swap-horizontal sensor: + - id: !extend display_charset + on_value: + then: + - script.execute: select_tft_file_model + - id: !extend display_mode on_value: then: - lambda: |- - static const char *const TAG = "addon_upload_tft.sensor.display_mode"; - id(tft_is_valid) = (display_mode->state > 0 and display_mode->state < 4); - if (id(tft_is_valid)) - ESP_LOGD(TAG, "Valid TFT: True"); - else { - ESP_LOGW(TAG, "Display mode: %i", int(display_mode->state)); - ESP_LOGW(TAG, "Valid TFT: False"); - } + - lambda: |- + static const char *const TAG = "addon_upload_tft.sensor.display_mode"; + id(tft_is_valid) = (display_mode->state > 0 and display_mode->state < 4); + if (id(tft_is_valid)) { + ESP_LOGD(TAG, "Valid TFT: True"); + select_tft_file_model->execute(); + } else { + ESP_LOGW(TAG, "Display mode: %i", int(display_mode->state)); + ESP_LOGW(TAG, "Valid TFT: False"); + } ... diff --git a/esphome/nspanel_esphome_advanced.yaml b/esphome/nspanel_esphome_advanced.yaml index 6b145c0..03da043 100644 --- a/esphome/nspanel_esphome_advanced.yaml +++ b/esphome/nspanel_esphome_advanced.yaml @@ -96,7 +96,6 @@ time: - component.update: api_timestamp - component.update: device_timestamp -##### Web server ##### web_server: id: web_server_std port: 80 diff --git a/esphome/nspanel_esphome_core.yaml b/esphome/nspanel_esphome_core.yaml index db01649..57fae20 100644 --- a/esphome/nspanel_esphome_core.yaml +++ b/esphome/nspanel_esphome_core.yaml @@ -13,11 +13,10 @@ substitutions: name: ${device_name} friendly_name: ${device_name} ota_password: ${wifi_password} - web_password: ${wifi_password} temp_units: "°C" invalid_cooldown: "100ms" ##### DON'T CHANGE THIS ###### - version: "4.3.1" + version: "4.3.2" ############################## ##### External components ##### @@ -27,14 +26,14 @@ external_components: # path: packages/Blackymas/components type: git url: https://github.com/Blackymas/NSPanel_HA_Blueprint - ref: main + ref: v4.3.2 components: - nspanel_ha_blueprint refresh: 300s - source: type: git url: https://github.com/edwardtfn/esphome - ref: nextion-v431 + ref: nextion-v432 components: - nextion # Change this when that PR#6192 gets released (2024.4?) refresh: 300s @@ -54,6 +53,13 @@ esphome: platformio_options: build_flags: - -Wno-missing-field-initializers + # - -mfix-esp32-psram-cache-issue + # - -fdata-sections + # - -ffunction-sections + # - -Wl,--gc-sections + # - -Os + # - -flto + on_boot: - priority: 600.0 # This is where most sensors are set up. then: @@ -63,7 +69,11 @@ esphome: notification_label->publish_state(""); notification_text->publish_state(""); notification_unread->turn_off(); - - script.execute: restore_settings + - wait_until: + condition: + - lambda: return (not isnan(stoi(baud_rate->state))); + timeout: 60s + - lambda: if (stoi(baud_rate->state) != tf_uart->get_baud_rate()) set_baud_rate->execute(stoi(baud_rate->state), true); - wait_until: condition: - lambda: return disp1->is_setup(); @@ -83,7 +93,7 @@ esphome: // Make it unavailable to blueprint calls nextion_init->publish_state(false); // Update Wi-Fi icon - disp1->set_component_text_printf("home.wifi_icon", "\uE708"); + disp1->set_component_text("home.wifi_icon", "\uE708"); // Update Wi-Fi icon color disp1->set_component_font_color("home.wifi_icon", 63488); - priority: 600.0 @@ -104,9 +114,11 @@ wifi: ssid: ${wifi_ssid} password: ${wifi_password} on_connect: - - script.execute: refresh_wifi_icon + then: + - script.execute: watchdog on_disconnect: - - script.execute: refresh_wifi_icon + then: + - script.execute: watchdog ##### OTA PASSWORD ##### ota: @@ -119,9 +131,6 @@ ota: ##### Adds custom library for NSPanel HA Blueprint project nspanel_ha_blueprint: -##### JSON - Used to parse json and for Upload TFT ##### -json: - ##### LOGGER ##### logger: id: logger_std @@ -154,23 +163,31 @@ time: on_time: - seconds: 0 then: - - script.execute: refresh_datetime - - script.execute: refresh_relays - - script.execute: refresh_hardware_buttons_bars + - lambda: |- + refresh_datetime->execute(); + refresh_relays->execute(3); + refresh_hardware_buttons_bars->execute(3); + - seconds: 30 + then: + - script.execute: watchdog on_time_sync: then: - logger.log: "System clock synchronized" - script.execute: refresh_datetime +json: # Can be replaced by web_server + ##### START - API CONFIGURATION ##### api: id: api_server reboot_timeout: 60min on_client_connected: - - script.execute: refresh_wifi_icon + then: + - script.execute: watchdog on_client_disconnected: - - script.execute: refresh_wifi_icon + then: + - script.execute: watchdog services: # Dynamically configures button properties on a specified page, enhancing UI interactivity by allowing updates to button appearance and behavior based on given parameters. - service: button # yamllint disable-line rule:indentation @@ -193,7 +210,7 @@ api: disp1->set_component_font((id + "icon").c_str(), icon_font); disp1->set_component_foreground_color((id + "bri").c_str(), state ? 10597 : 65535); disp1->set_component_foreground_color((id + "text").c_str(), state ? 10597 : 65535); - disp1->set_component_font_color((id + "icon").c_str(), esphome::display::ColorUtil::color_to_565(esphome::Color(icon_color[0], icon_color[1], icon_color[2]))); + disp1->set_component_font_color((id + "icon").c_str(), rgbTo565(icon_color)); disp1->set_component_text((id + "icon").c_str(), icon.c_str()); display_wrapped_text->execute((id + "text").c_str(), label.c_str(), 10); disp1->set_component_text((id + "bri").c_str(), (strcmp(bri.c_str(), "0") == 0) ? " " : bri.c_str()); @@ -221,7 +238,7 @@ api: then: - lambda: |- if (!id(is_uploading_tft)) - disp1->set_component_font_color(id.c_str(), esphome::display::ColorUtil::color_to_565(esphome::Color(color[0], color[1], color[2]))); + disp1->set_component_font_color(id.c_str(), rgbTo565(color)); # Updates the text of a specified component on the display. - service: component_text @@ -250,9 +267,11 @@ api: visible: bool # Set to true to show the component, or false to hide it. then: - lambda: |- - for (const std::string& component_id : ids) { - if (!id(is_uploading_tft) and !component_id.empty()) { - set_component_visibility->execute(component_id.c_str(), visible); + if (!id(is_uploading_tft)) { + for (const std::string& component_id : ids) { + if (!id(is_uploading_tft) and !component_id.empty()) { + set_component_visibility->execute(component_id.c_str(), visible); + } } } @@ -282,14 +301,16 @@ api: state: bool # State for the button(s) indication: true for active, false for inactive then: - lambda: |- - // Updates the visual state indication for hardware buttons - // Use bitwise AND to check specific bits - if (button_mask & 1) // Checks if the least significant bit is set (left button) - update_bitwise_setting(id(buttons_settings), state, ButtonSettings::ButtonLeft_State); - if (button_mask & 2) // Checks if the second least significant bit is set (right button) - update_bitwise_setting(id(buttons_settings), state, ButtonSettings::ButtonRight_State); - // Refreshes the indication bars on the display - refresh_hardware_buttons_bars->execute(); + if (!id(is_uploading_tft)) { + // Updates the visual state indication for hardware buttons + // Use bitwise AND to check specific bits + if (button_mask & 1) // Checks if the least significant bit is set (left button) + update_bitwise_setting(id(buttons_settings), state, ButtonSettings::ButtonLeft_State); + if (button_mask & 2) // Checks if the second least significant bit is set (right button) + update_bitwise_setting(id(buttons_settings), state, ButtonSettings::ButtonRight_State); + // Refreshes the indication bars on the display + refresh_hardware_buttons_bars->execute(button_mask); + } # Icon Service - service: icon @@ -303,7 +324,7 @@ api: if (!id(is_uploading_tft) and !id.empty()) { disp1->set_component_text(id.c_str(), visible ? icon.c_str() : ""); if (icon_color.size() == 3) - disp1->set_component_font_color(id.c_str(), esphome::display::ColorUtil::color_to_565(esphome::Color(icon_color[0], icon_color[1], icon_color[2]))); + disp1->set_component_font_color(id.c_str(), rgbTo565(icon_color)); set_component_visibility->execute(id.c_str(), visible); } @@ -319,18 +340,22 @@ api: screensaver_time_color: int[] # RGB color for the screensaver time display, e.g., [165, 42, 42] for reddish-brown. decimal_separator: string # The char to be used as decimal separator. then: - - script.execute: - id: global_settings - blueprint_version: !lambda return blueprint_version; - ent_value_xcen: !lambda return ent_value_xcen; - mui_please_confirm: !lambda return mui_please_confirm; - mui_unavailable: !lambda return mui_unavailable; - screensaver_time: !lambda return screensaver_time; - screensaver_time_font: !lambda return screensaver_time_font; - screensaver_time_color: !lambda return screensaver_time_color; - decimal_separator: !lambda return decimal_separator; - - script.wait: global_settings - - lambda: blueprint_status->publish_state(int(blueprint_status->raw_state) | (1 << 5)); + - if: + condition: + - lambda: return (!id(is_uploading_tft)); + then: + - script.execute: + id: global_settings + blueprint_version: !lambda return blueprint_version; + ent_value_xcen: !lambda return ent_value_xcen; + mui_please_confirm: !lambda return mui_please_confirm; + mui_unavailable: !lambda return mui_unavailable; + screensaver_time: !lambda return screensaver_time; + screensaver_time_font: !lambda return screensaver_time_font; + screensaver_time_color: !lambda return screensaver_time_color; + decimal_separator: !lambda return decimal_separator; + - script.wait: global_settings + - lambda: blueprint_status->publish_state(int(blueprint_status->raw_state) | (1 << 5)); # Configures NSPanel hardware (buttons, relays, etc.) settings - service: init_hardware @@ -352,57 +377,55 @@ api: embedded_climate_friendly_name: string # Friendly name for the climate control feature. embedded_indoor_temperature: bool # Enables indoor temperature display. then: - - script.execute: - id: init_hardware_climate - embedded_climate: !lambda return embedded_climate; - embedded_climate_friendly_name: !lambda return embedded_climate_friendly_name; - embedded_indoor_temperature: !lambda return embedded_indoor_temperature; + - if: + condition: + - lambda: return (!id(is_uploading_tft)); + then: + - script.execute: + id: init_hardware_climate + embedded_climate: !lambda return embedded_climate; + embedded_climate_friendly_name: !lambda return embedded_climate_friendly_name; + embedded_indoor_temperature: !lambda return embedded_indoor_temperature; - - lambda: |- - if (!id(is_uploading_tft)) { - using namespace esphome::display; - // Relay settings - update_bitwise_setting(id(relay_settings), relay1_local_control, RelaySettings::Relay1_Local); - update_bitwise_setting(id(relay_settings), relay1_fallback, RelaySettings::Relay1_Fallback); - update_bitwise_setting(id(relay_settings), relay2_local_control, RelaySettings::Relay2_Local); - update_bitwise_setting(id(relay_settings), relay2_fallback, RelaySettings::Relay2_Fallback); + - lambda: |- + if (!id(is_uploading_tft)) { + using namespace esphome::display; + // Relay settings + update_bitwise_setting(id(relay_settings), relay1_local_control, RelaySettings::Relay1_Local); + update_bitwise_setting(id(relay_settings), relay1_fallback, RelaySettings::Relay1_Fallback); + update_bitwise_setting(id(relay_settings), relay2_local_control, RelaySettings::Relay2_Local); + update_bitwise_setting(id(relay_settings), relay2_fallback, RelaySettings::Relay2_Fallback); - // Relay icons - if (not relay1_icon.empty()) copyStringToCharArray(id(home_relay1_icon), relay1_icon); - if (not relay2_icon.empty()) copyStringToCharArray(id(home_relay2_icon), relay2_icon); + // Relay icons + if (not relay1_icon.empty()) copyStringToCharArray(id(home_relay1_icon), relay1_icon); + if (not relay2_icon.empty()) copyStringToCharArray(id(home_relay2_icon), relay2_icon); - // Relay icon's colors - if (relay1_icon_color.size() == 3) { - id(home_relay1_icon_color) = ColorUtil::color_to_565(esphome::Color(relay1_icon_color[0], - relay1_icon_color[1], - relay1_icon_color[2])); - disp1->set_component_font_color("home.chip_relay1", id(home_relay1_icon_color)); - } - if (relay2_icon_color.size() == 3) { - id(home_relay2_icon_color) = ColorUtil::color_to_565(esphome::Color(relay2_icon_color[0], - relay2_icon_color[1], - relay2_icon_color[2])); - disp1->set_component_font_color("home.chip_relay2", id(home_relay2_icon_color)); - } + // Relay icon's colors + if (relay1_icon_color.size() == 3) { + id(home_relay1_icon_color) = rgbTo565(relay1_icon_color); + disp1->set_component_font_color("home.chip_relay1", id(home_relay1_icon_color)); + } + if (relay2_icon_color.size() == 3) { + id(home_relay2_icon_color) = rgbTo565(relay2_icon_color); + disp1->set_component_font_color("home.chip_relay2", id(home_relay2_icon_color)); + } - // Buttons bars settings - id(buttons_bars_pages) = button_bar_pages; - update_bitwise_setting(id(buttons_settings), button_left, ButtonSettings::ButtonLeft_Enabled); - update_bitwise_setting(id(buttons_settings), button_right, ButtonSettings::ButtonRight_Enabled); + // Buttons bars settings + id(buttons_bars_pages) = button_bar_pages; + update_bitwise_setting(id(buttons_settings), button_left, ButtonSettings::ButtonLeft_Enabled); + update_bitwise_setting(id(buttons_settings), button_right, ButtonSettings::ButtonRight_Enabled); - if (button_bar_color_on.size() == 3) - id(buttons_color_on) = ColorUtil::color_to_565(esphome::Color(button_bar_color_on[0], - button_bar_color_on[1], - button_bar_color_on[2])); - if (button_bar_color_off.size() == 3) - id(buttons_color_off) = ColorUtil::color_to_565(esphome::Color(button_bar_color_off[0], - button_bar_color_off[1], - button_bar_color_off[2])); + if (button_bar_color_on.size() == 3) + id(buttons_color_on) = rgbTo565(button_bar_color_on); + if (button_bar_color_off.size() == 3) + id(buttons_color_off) = rgbTo565(button_bar_color_off); + + // Refresh relays display + refresh_relays->execute(3); + refresh_hardware_buttons_bars->execute(3); + } + blueprint_status->publish_state(int(blueprint_status->raw_state) | (1 << 4)); - // Refresh relays display - refresh_relays->execute(); - } - blueprint_status->publish_state(int(blueprint_status->raw_state) | (1 << 4)); # Sets up the "Home" page in ESPHome with customized settings and UI elements as defined in the project blueprint. - service: init_page_home variables: @@ -433,8 +456,8 @@ api: } // Date/Time colors - id(home_date_color) = ColorUtil::color_to_565(esphome::Color(date_color[0], date_color[1], date_color[2])); - id(home_time_color) = ColorUtil::color_to_565(esphome::Color(time_color[0], time_color[1], time_color[2])); + id(home_date_color) = rgbTo565(date_color); + id(home_time_color) = rgbTo565(time_color); disp1->set_component_font_color("home.date", id(home_date_color)); disp1->set_component_font_color("home.time", id(home_time_color)); @@ -463,22 +486,16 @@ api: // QRCode button set_component_visibility->execute("home.bt_qrcode", qrcode); disp1->set_component_text("home.bt_qrcode", qrcode_icon.c_str()); - disp1->set_component_font_color("home.bt_qrcode", ColorUtil::color_to_565(esphome::Color(qrcode_icon_color[0], - qrcode_icon_color[1], - qrcode_icon_color[2]))); + disp1->set_component_font_color("home.bt_qrcode", rgbTo565(qrcode_icon_color)); // Entities pages button disp1->set_component_text("home.bt_entities", entities_pages_icon.c_str()); - disp1->set_component_font_color("home.bt_entities", ColorUtil::color_to_565(esphome::Color(entities_pages_icon_color[0], - entities_pages_icon_color[1], - entities_pages_icon_color[2]))); + disp1->set_component_font_color("home.bt_entities", rgbTo565(entities_pages_icon_color)); // Utilities button disp1->send_command_printf("is_utilities=%i", utilities ? 1 : 0); disp1->set_component_text("home.bt_utilities", utilities_icon.c_str()); - disp1->set_component_font_color("home.bt_utilities", ColorUtil::color_to_565(esphome::Color(utilities_icon_color[0], - utilities_icon_color[1], - utilities_icon_color[2]))); + disp1->set_component_font_color("home.bt_utilities", rgbTo565(utilities_icon_color)); blueprint_status->publish_state(int(blueprint_status->raw_state) | (1 << 1)); } @@ -504,11 +521,13 @@ api: - service: notification_clear then: - lambda: |- - if (current_page->state == "notification") goto_page->execute("home"); - notification_label->publish_state(""); - notification_text->publish_state(""); - notification_unread->turn_off(); - set_component_visibility->execute("home.bt_notific", false); + if (!id(is_uploading_tft)) { + if (current_page->state == "notification") goto_page->execute("home"); + notification_label->publish_state(""); + notification_text->publish_state(""); + notification_unread->turn_off(); + set_component_visibility->execute("home.bt_notific", false); + } # Displays a notification message on the screen, useful for alerts or informational updates. - service: notification_show @@ -553,8 +572,7 @@ api: } disp1->set_component_text("page_label", page_title.c_str()); disp1->set_component_text("code_format", code_format.c_str()); - if (code_arm_required) disp1->set_component_text_printf("code_arm_req", "1"); - else disp1->set_component_text_printf("code_arm_req", "0"); + disp1->set_component_text("code_arm_req", code_arm_required ? "1" : "0"); // Alarm page - Button's text display_wrapped_text->execute("bt_home_text", mui_alarm[0].c_str(), 10); @@ -774,8 +792,39 @@ api: variables: tone: string # The RTTTL string for the melody to be played. It should follow the RTTTL format, including the melody's name, default settings, and a sequence of notes. then: - - rtttl.play: - rtttl: !lambda return tone; + - lambda: if (!id(is_uploading_tft)) buzzer->play(tone); + + # Utilities group refresh + - service: utilities_group_refresh + variables: + group_id: string + value1: string + value2: string + direction: int + then: + - lambda: |- + if (!id(is_uploading_tft) and !group_id.empty()) { + uint8_t id = findUtilitiesGroupIndex(group_id.c_str()); + if (id != UINT8_MAX) { + // Update Value 1 + if (!value1.empty() and strcmp(value1.c_str(), UtilitiesGroups[id].value1) != 0) { + copyStringToCharArray(UtilitiesGroups[id].value1, value1); + disp1->set_component_text(group_id.c_str(), value1.c_str()); + } + + // Update Value 2 + if (!value2.empty() and strcmp(value2.c_str(), UtilitiesGroups[id].value2) != 0) { + copyStringToCharArray(UtilitiesGroups[id].value2, value2); + disp1->set_component_text((group_id + "b").c_str(), value2.c_str()); + } + + // Update direction + if (group_id != "grid" and !isnan(direction) and direction != UtilitiesGroups[id].direction) { + UtilitiesGroups[id].direction = direction; + disp1->set_component_value((group_id + "_line_d").c_str(), direction); + } + } + } # Updates an entity to display specific values with dynamic icons, names, and color codes. - service: value @@ -792,16 +841,12 @@ api: using namespace esphome::display; if (!(icon.empty())) disp1->set_component_text((id + "_icon").c_str(), icon.c_str()); if (icon_color.size() == 3) - disp1->set_component_font_color((id + "_icon").c_str(), ColorUtil::color_to_565(esphome::Color(icon_color[0], - icon_color[1], - icon_color[2]))); + disp1->set_component_font_color((id + "_icon").c_str(), rgbTo565(icon_color)); if (!(name.empty())) disp1->set_component_text((id + "_label").c_str(), name.c_str()); if (!(value.empty())) disp1->set_component_text(id.c_str(), adjustDecimalSeparator(value, id(mui_decimal_separator)).c_str()); if (value_color.size() == 3) - disp1->set_component_font_color(id.c_str(), ColorUtil::color_to_565(esphome::Color(value_color[0], - value_color[1], - value_color[2]))); + disp1->set_component_font_color(id.c_str(), rgbTo565(value_color)); if (current_page->state.find("entitypage") == 0 and !(value.empty())) { // Adjust value's font on entities pages // Adjusted length starts at 0 float adjusted_length = 0.0; @@ -847,17 +892,19 @@ display: - id: disp1 platform: nextion uart_id: tf_uart - start_up_page: 0 # Boot page on_setup: lambda: |- - nextion_init->publish_state(true); - version_tft->update(); - goto_page->execute("boot"); + if (!id(is_uploading_tft)) { + nextion_init->publish_state(true); + version_tft->update(); + } on_page: lambda: |- - if (current_page->state != page_names[x] or x == 9) { - current_page->publish_state(page_names[x]); + if (!id(is_uploading_tft)) { + if (current_page->state != page_names[x] or x == 9) { + current_page->publish_state(page_names[x]); + } } on_touch: @@ -874,6 +921,18 @@ display: break; } break; + case 1: // Home + switch (component_id) { + case 4: // indr_temp + case 27: // indr_temp_icon + if (!touch_event) { // Release + detailed_entity->publish_state((id(is_embedded_thermostat)) ? "embedded_climate" : ""); + disp1->set_component_value("climate.embedded", id(is_embedded_thermostat) ? 1 : 0); + goto_page->execute("climate"); + } + break; + } + break; case 8: // Settings switch (component_id) { case 9: // Reboot button @@ -990,12 +1049,6 @@ globals: restore_value: true initial_value: '65535' - ##### Versioning ##### - - id: version_blueprint - type: char[10] - restore_value: false - initial_value: '' - ##### Is uploading TFT ##### - id: is_uploading_tft type: bool @@ -1263,7 +1316,7 @@ number: - lambda: |- disp1->send_command_printf("brightness_dim=%i", int(x)); disp1->set_component_value("settings.dimslider", int(x)); - if (current_page->state != "screensaver" and current_brightness->state <= x) { + if (current_page->state != "screensaver" and current_brightness->state != x) { set_brightness->execute(x); timer_sleep->execute(); if (current_page->state == "settings") disp1->set_component_text_printf("dim_text", "%i%%", int(x)); @@ -1443,9 +1496,13 @@ sensor: - id: ntc_source platform: adc pin: 38 - update_interval: 60s attenuation: 11db - samples: 12 + samples: 4 + update_interval: 10s + filters: + - sliding_window_moving_average: + window_size: 6 + send_every: 1 ##### INTERNAL TEMPERATURE SENSOR, adc reading converted to resistance (calculation)##### - id: resistance_sensor @@ -1513,6 +1570,17 @@ sensor: internal: false disabled_by_default: false + ##### Charset (1 = International (original), 2 = CJK languages) + - id: display_charset + name: Display charset + platform: nextion + variable_name: charset + precision: 0 + accuracy_decimals: 0 + internal: false + icon: mdi:translate + entity_category: diagnostic + ##### Display mode (1 = EU, 2 = US, 3 = US Landscape) - id: display_mode name: Display mode @@ -1524,17 +1592,6 @@ sensor: icon: mdi:phone-rotate-portrait entity_category: diagnostic - ##### Charset (1 = International (original), 2 = CJK languages) - - name: Display charset - id: display_charset - platform: nextion - variable_name: charset - precision: 0 - accuracy_decimals: 0 - internal: false - icon: mdi:translate - entity_category: diagnostic - ##### Wi-Fi Signal stregth - name: RSSI id: wifi_rssi @@ -1553,6 +1610,24 @@ switch: entity_category: config optimistic: true restore_mode: ALWAYS_OFF + on_turn_on: + lambda: |- + esphome::api::CustomAPIDevice ha_event; + ha_event.fire_homeassistant_event("esphome.nspanel_ha_blueprint", { + {"device_name", device_name->state.c_str()}, + {"type", "notification_changed"}, + {"component", "notification_unread"}, + {"action", "turn_on"} + }); + on_turn_off: + lambda: |- + esphome::api::CustomAPIDevice ha_event; + ha_event.fire_homeassistant_event("esphome.nspanel_ha_blueprint", { + {"device_name", device_name->state.c_str()}, + {"type", "notification_changed"}, + {"component", "notification_unread"}, + {"action", "turn_off"} + }); ##### Notification sound ##### - name: Notification sound @@ -1571,10 +1646,18 @@ switch: restore_mode: RESTORE_DEFAULT_OFF on_turn_on: then: - - script.execute: refresh_relays + - lambda: |- + if (id(relay_settings) & RelaySettings::Relay1_Local) + update_bitwise_setting(id(buttons_settings), true, ButtonSettings::ButtonLeft_State); + refresh_relays->execute(1); + refresh_hardware_buttons_bars->execute(1); on_turn_off: then: - - script.execute: refresh_relays + - lambda: |- + if (id(relay_settings) & RelaySettings::Relay1_Local) + update_bitwise_setting(id(buttons_settings), false, ButtonSettings::ButtonLeft_State); + refresh_relays->execute(1); + refresh_hardware_buttons_bars->execute(1); ##### PHYSICAL SWITCH 2 ###### - name: Relay 2 platform: gpio @@ -1584,10 +1667,18 @@ switch: restore_mode: RESTORE_DEFAULT_OFF on_turn_on: then: - - script.execute: refresh_relays + - lambda: |- + if (id(relay_settings) & RelaySettings::Relay2_Local) + update_bitwise_setting(id(buttons_settings), true, ButtonSettings::ButtonRight_State); + refresh_relays->execute(2); + refresh_hardware_buttons_bars->execute(2); on_turn_off: then: - - script.execute: refresh_relays + - lambda: |- + if (id(relay_settings) & RelaySettings::Relay2_Local) + update_bitwise_setting(id(buttons_settings), false, ButtonSettings::ButtonRight_State); + refresh_relays->execute(2); + refresh_hardware_buttons_bars->execute(2); ##### DISPLAY ALWAYS ON ##### - name: Nextion display - Power @@ -1600,13 +1691,6 @@ switch: restore_mode: ALWAYS_ON internal: true disabled_by_default: false - on_turn_on: - - wait_until: - condition: - - lambda: !lambda return disp1->is_setup(); - timeout: 20s - - lambda: |- - goto_page->execute("boot"); on_turn_off: - lambda: |- nextion_init->publish_state(false); @@ -1667,48 +1751,28 @@ text_sensor: - id: notification_label name: Notification Label platform: template + on_value: + lambda: |- + esphome::api::CustomAPIDevice ha_event; + ha_event.fire_homeassistant_event("esphome.nspanel_ha_blueprint", { + {"device_name", device_name->state.c_str()}, + {"type", "notification_changed"}, + {"component", "notification_label"}, + {"action", "new_value"} + }); - id: notification_text name: Notification Text platform: template - - ##### NSPanel event sensor, the main action sensor - push to HA ##### - - id: disp1_nspanel_event - name: NSPanel event - platform: nextion - nextion_id: disp1 - component_name: nspanelevent - internal: true - filters: - - lambda: |- - x = x.c_str(); - x.shrink_to_fit(); - return x; on_value: - then: - - lambda: |- - ESP_LOGE("text_sensor.nspanelevent", "Obsolete call"); - DynamicJsonDocument doc(1024); - deserializeJson(doc, x); - std::string page = doc["page"]; - std::string component = doc["component"]; - if (not (component == "currentpage" and (page == "screensaver" or page == "home"))) timer_reset_all->execute(); - std::string value = doc["value"]; - std::string entity = detailed_entity->state.c_str(); // doc["entity"]; - esphome::api::CustomAPIDevice ha_event; - ha_event.fire_homeassistant_event("esphome.nspanel_ha_blueprint", - { - {"device_name", device_name->state.c_str()}, - {"type", "generic"}, - {"page", page}, - {"component", component}, - {"value", value}, - {"entity", entity} - }); - ESP_LOGE("text_sensor.nspanelevent", " Page: %s", page.c_str()); - ESP_LOGE("text_sensor.nspanelevent", " Component: %s", component.c_str()); - ESP_LOGE("text_sensor.nspanelevent", " Value: %s", value.c_str()); - ESP_LOGE("text_sensor.nspanelevent", " Entity: %s", entity.c_str()); + lambda: |- + esphome::api::CustomAPIDevice ha_event; + ha_event.fire_homeassistant_event("esphome.nspanel_ha_blueprint", { + {"device_name", device_name->state.c_str()}, + {"type", "notification_changed"}, + {"component", "notification_text"}, + {"action", "new_value"} + }); ##### NSPanel event - Execute actions from ESPHome - NO push to HA ##### - id: disp1_local_event @@ -1717,91 +1781,111 @@ text_sensor: nextion_id: disp1 component_name: localevent internal: true - filters: - - lambda: |- - x = x.c_str(); - x.shrink_to_fit(); - return x; on_value: then: - lambda: |- - DynamicJsonDocument doc(1024); - deserializeJson(doc, x); - std::string page = doc["page"]; - std::string event = doc["event"]; - std::string component = doc["component"]; - std::string key = doc["key"]; - std::string value = doc["value"]; - std::string entity = detailed_entity->state.c_str(); // doc["entity"]; - int embedded = doc["embedded"]; - std::string service = ""; + DynamicJsonDocument json(1024); + DeserializationError error = deserializeJson(json, x.c_str()); + if (error) { + ESP_LOGE("text_sensor.disp1_local_event", "Error parsing json: %s", x.c_str()); + ESP_LOGE("text_sensor.disp1_local_event", "Error: %s", error.c_str()); + } else { + const std::string page = json["page"]; + const std::string event = json["event"]; + const std::string component = json["component"]; + const std::string key = json["key"]; + const std::string value = json["value"]; - // Send event to Home Assistant - if (event == "short_click" or event == "long_click") { - ha_button->execute(page.c_str(), component.c_str(), event.c_str()); - } else if (event == "click" and page == "home" and component == "climate") { - detailed_entity->publish_state((id(is_embedded_thermostat)) ? "embedded_climate" : ""); - disp1->set_component_value("climate.embedded", id(is_embedded_thermostat) ? 1 : 0); - goto_page->execute("climate"); - } else if (page == "light" or page == "climate") { // Generic event - esphome::api::CustomAPIDevice ha_event; + esphome::api::CustomAPIDevice ha_event; + // Send event to Home Assistant + if (event == "short_click" or event == "long_click") { + ha_button->execute(page.c_str(), component.c_str(), event.c_str()); + } else if (page == "light" or page == "climate") { // Generic event ha_event.fire_homeassistant_event("esphome.nspanel_ha_blueprint", { {"device_name", device_name->state.c_str()}, {"type", "generic"}, - {"page", page}, - {"event", event}, - {"value", value}, - {"entity", entity} + {"page", page.c_str()}, + {"component", component.c_str()}, + {"event", event.c_str()}, + {"value", value.c_str()}, + {"entity", detailed_entity->state.c_str()} }); } - // page based actions - if (page == "alarm") - { - std::string code_format = doc["code_format"]; - std::string code_arm_req = doc["code_arm_req"]; - std::string title = doc["mui"]; - if (code_format == "number" and (key == "disarm" or code_arm_req == "1")) - { - goto_page->execute("keyb_num"); - disp1->set_component_value("keyb_num.page_id", 23); //Calling from Alarm page - disp1->set_component_text("keyb_num.domain", page.c_str()); - disp1->set_component_text("keyb_num.key", key.c_str()); - disp1->set_component_text("keyb_num.value", value.c_str()); - disp1->set_component_text("keyb_num.entity", entity.c_str()); - disp1->set_component_text("keyb_num.title", title.c_str()); + // page based actions + if (page == "alarm") { + const std::string code_format = json["code_format"]; + const std::string code_arm_req = json["code_arm_req"]; + const std::string title = json["mui"]; + if (code_format == "number" and (key == "disarm" or code_arm_req == "1")) { + goto_page->execute("keyb_num"); + disp1->set_component_value("keyb_num.page_id", get_page_id("alarm")); //Calling from Alarm page + disp1->set_component_text("keyb_num.domain", page.c_str()); + disp1->set_component_text("keyb_num.key", key.c_str()); + disp1->set_component_text("keyb_num.value", value.c_str()); + disp1->set_component_text("keyb_num.entity", detailed_entity->state.c_str()); + disp1->set_component_text("keyb_num.title", title.c_str()); + } else service_call_alarm_control_panel->execute(detailed_entity->state.c_str(), key.c_str(), code_format.c_str(), ""); + } else if (page == "climate") { + const uint8_t embedded = json["embedded"]; + change_climate_state->execute(embedded == 1, key.c_str(), value.c_str()); + } else if (page == "cover") { + if (key == "position") ha_call_service->execute("cover.set_cover_position", key.c_str(), value.c_str(), detailed_entity->state.c_str()); + else ha_call_service->execute(("cover." + key).c_str(), "", "", detailed_entity->state.c_str()); + } else if (page == "fan") { + if (key == "stop" or value == "0") ha_call_service->execute("fan.turn_off", "", "", detailed_entity->state.c_str()); + else ha_call_service->execute("fan.turn_on", key.c_str(), value.c_str(), detailed_entity->state.c_str()); + } else if (page == "keyb_num") { + const std::string base_domain = json["base_domain"]; + if (base_domain == "alarm") { + const std::string code_format = json["code_format"]; + const std::string pin = json["pin"]; + service_call_alarm_control_panel->execute(detailed_entity->state.c_str(), key.c_str(), code_format.c_str(), pin.c_str()); + } + goto_page->execute(base_domain.empty() ? "home" : base_domain.c_str()); + } else if (page == "light") { + if (key == "brightness_pct" or key == "color_temp") { + ha_call_service->execute("light.turn_on", key.c_str(), value.c_str(), detailed_entity->state.c_str()); + } else if (component == "rgb_color") { + JsonArray rgb_color = json["value"]; + if (rgb_color.size() == 3) { + ha_event.fire_homeassistant_event("esphome.nspanel_ha_blueprint", + { + {"device_name", device_name->state.c_str()}, + {"type", "service_call"}, + {"service", "light.turn_on"}, + {"key", "rgb_color"}, + {"red",to_string(rgb_color[0].as())}, + {"green",to_string(rgb_color[1].as())}, + {"blue",to_string(rgb_color[2].as())}, + {"entity", detailed_entity->state.c_str()} + }); } - else service_call_alarm_control_panel->execute(entity.c_str(), key.c_str(), code_format.c_str(), ""); + } + } else if (page == "media_player") { + if (key == "volume_mute") { + ha_call_service->execute("media_player.volume_mute", "is_volume_muted", value.c_str(), detailed_entity->state.c_str()); + } else if (key == "volume_set") { + const float value_float = json["value"].as(); + ha_call_service->execute("media_player.volume_set", "volume_level", to_string(value_float / 100.0f), detailed_entity->state.c_str()); + } else if (!key.empty()) { + ha_call_service->execute((std::string("media_player.") + key.c_str()), "", "", detailed_entity->state.c_str()); + } } - else if (page == "climate") { - change_climate_state->execute((embedded==1), key.c_str(), value.c_str()); - } - else if (page == "cover") { - if (key == "position") ha_call_service->execute("cover.set_cover_position", key.c_str(), value.c_str(), entity.c_str()); - else ha_call_service->execute((std::string("cover.") + key.c_str()), "", "", entity.c_str()); - } - else if (page == "fan") { - if (key == "stop" or value == "0") ha_call_service->execute("fan.turn_off", "", "", entity.c_str()); - else ha_call_service->execute("fan.turn_on", key.c_str(), value.c_str(), entity.c_str()); - } - else if (page == "keyb_num") { - std::string base_domain = doc["base_domain"]; - if (base_domain == "alarm") { - std::string code_format = doc["code_format"]; - std::string pin = doc["pin"]; - service_call_alarm_control_panel->execute(entity.c_str(), key.c_str(), code_format.c_str(), pin.c_str()); - } - else if (base_domain == "" or base_domain.empty()) base_domain = "home"; - goto_page->execute(base_domain.c_str()); - } - else if (page == "light") ha_call_service->execute("light.turn_on", key.c_str(), value.c_str(), entity.c_str()); - else if (page == "media_player") { - if (key == "volume_mute") ha_call_service->execute("media_player.volume_mute", "is_volume_muted", value.c_str(), entity.c_str()); - else if (key == "volume_set") ha_call_service->execute("media_player.volume_set", "volume_level", to_string(stof(value) / 100), entity.c_str()); - else if (not key.empty()) ha_call_service->execute((std::string("media_player.") + key.c_str()), "", "", entity.c_str()); } ##### Versioning ##### + - id: version_blueprint + name: Version Blueprint + platform: template + entity_category: diagnostic + icon: mdi:tag-text-outline + internal: false + update_interval: never + on_value: + - lambda: |- + check_versions->execute(); + - id: version_tft name: Version TFT platform: nextion @@ -1816,6 +1900,37 @@ text_sensor: ### Scripts ###### script: + - id: boot_event + mode: restart + parameters: + init: bool + then: + - lambda: |- + if (init) { + esphome::api::CustomAPIDevice ha_event; + ha_event.fire_homeassistant_event("esphome.nspanel_ha_blueprint", + { + {"device_name", device_name->state.c_str()}, + {"type", "boot"}, + {"step", "start"} + }); + } + - while: + condition: + - lambda: return (blueprint_status->state < 99); + then: + - delay: 10s + - lambda: |- + if (blueprint_status->state < 99) { + esphome::api::CustomAPIDevice ha_event; + ha_event.fire_homeassistant_event("esphome.nspanel_ha_blueprint", + { + {"device_name", device_name->state.c_str()}, + {"type", "boot"}, + {"step", "timeout"} + }); + } + - id: boot_progress mode: restart parameters: @@ -1834,7 +1949,6 @@ script: if (current_page->state == "boot" and !isnan(display_charset->state) and !isnan(display_mode->state) and !version_tft->state.empty()) disp1->send_command_printf("tm_esphome.en=0"); - - id: change_climate_state mode: restart parameters: @@ -1858,7 +1972,7 @@ script: - wait_until: condition: - lambda: |- - return (compare_versions("${version}", version_tft->state.c_str()) and compare_versions("${version}", id(version_blueprint))); + return (compare_versions("${version}", version_tft->state.c_str()) and compare_versions("${version}", version_blueprint->state.c_str())); timeout: 60s - lambda: |- if (!id(is_uploading_tft)) { @@ -1867,8 +1981,8 @@ script: ESP_LOGD("script.check_versions", " TFT: %s", version_tft->state.c_str()); if (not compare_versions("${version}", version_tft->state.c_str())) ESP_LOGE("script.check_versions", "TFT version mismatch!"); - ESP_LOGD("script.check_versions", " Blueprint: %s", id(version_blueprint)); - if (not compare_versions("${version}", id(version_blueprint))) + ESP_LOGD("script.check_versions", " Blueprint: %s", version_blueprint->state.c_str()); + if (not compare_versions("${version}", version_blueprint->state.c_str())) ESP_LOGE("script.check_versions", "Blueprint version mismatch!"); esphome::api::CustomAPIDevice ha_event; @@ -1878,7 +1992,7 @@ script: {"type", "version"}, {"tft", version_tft->state.c_str()}, {"esphome", "${version}"}, - {"blueprint", id(version_blueprint)} + {"blueprint", version_blueprint->state.c_str()} }); } @@ -1947,34 +2061,32 @@ script: decimal_separator: string then: - lambda: |- - if (id(is_uploading_tft)) global_settings->stop(); - if (blueprint_status->state <= 99) goto_page->execute("boot"); - // Blueprint version - copyStringToCharArray(id(version_blueprint), blueprint_version); - disp1->set_component_text("boot.bluep_version", blueprint_version.c_str()); - check_versions->execute(); + if (!id(is_uploading_tft)) { + // Blueprint version + version_blueprint->publish_state(blueprint_version.c_str()); + disp1->set_component_text("boot.bluep_version", blueprint_version.c_str()); + check_versions->execute(); - // MUI strings - id(mui_please_confirm_global) = mui_please_confirm; - id(mui_unavailable_global) = mui_unavailable; + // MUI strings + id(mui_please_confirm_global) = mui_please_confirm; + id(mui_unavailable_global) = mui_unavailable; - // Screen saver page (sleep) - id(screensaver_display_time) = screensaver_time; - id(screensaver_display_time_font) = screensaver_time_font; - id(screensaver_display_time_color) = esphome::display::ColorUtil::color_to_565(esphome::Color(screensaver_time_color[0], - screensaver_time_color[1], - screensaver_time_color[2])); - page_screensaver->execute(); + // Screen saver page (sleep) + id(screensaver_display_time) = screensaver_time; + id(screensaver_display_time_font) = screensaver_time_font; + id(screensaver_display_time_color) = rgbTo565(screensaver_time_color); + page_screensaver->execute(); - // Entities pages alignment - id(page_entity_value_horizontal_alignment) = ent_value_xcen; + // Entities pages alignment + id(page_entity_value_horizontal_alignment) = ent_value_xcen; - // Decimal separator - if (not decimal_separator.empty()) id(mui_decimal_separator) = decimal_separator[0]; + // Decimal separator + if (not decimal_separator.empty()) id(mui_decimal_separator) = decimal_separator[0]; - if (current_page->state != "boot") { - // Update current page - page_changed->execute(); + if (current_page->state != "boot") { + // Update current page + page_changed->execute(); + } } - id: goto_page @@ -2016,19 +2128,17 @@ script: entity: string then: - lambda: |- - if (!id(is_uploading_tft)) { - if (service != "" and not service.empty()) { - esphome::api::CustomAPIDevice ha_event; - ha_event.fire_homeassistant_event("esphome.nspanel_ha_blueprint", - { - {"device_name", device_name->state.c_str()}, - {"type", "service_call"}, - {"service", service}, - {"key", key}, - {"value", value}, - {"entity", entity} - }); - } + if (!id(is_uploading_tft) and !service.empty()) { + esphome::api::CustomAPIDevice ha_event; + ha_event.fire_homeassistant_event("esphome.nspanel_ha_blueprint", + { + {"device_name", device_name->state.c_str()}, + {"type", "service_call"}, + {"service", service}, + {"key", key}, + {"value", value}, + {"entity", entity} + }); } - id: init_hardware_climate @@ -2055,11 +2165,11 @@ script: then: - lambda: |- ESP_LOGW("script.page_blank", "Construct blank page"); - disp1->set_component_text_printf("esp_version", "ESP: ${version}"); // ESPHome version + disp1->set_component_text("esp_version", "ESP: ${version}"); // ESPHome version #ifdef ARDUINO - disp1->set_component_text_printf("framework", "Arduino"); + disp1->set_component_text("framework", "Arduino"); #elif defined(USE_ESP_IDF) - disp1->set_component_text_printf("framework", "ESP-IDF"); + disp1->set_component_text("framework", "ESP-IDF"); #endif disp1->send_command_printf("tm_esphome.en=0"); @@ -2071,7 +2181,7 @@ script: boot_progress->execute(0); set_brightness->execute(100); update_tft_info->execute(); - disp1->set_component_text_printf("boot.esph_version", "${version}"); // ESPHome version + disp1->set_component_text("boot.esph_version", "${version}"); // ESPHome version boot_progress->execute(1); #ifdef ARDUINO disp1->set_component_text("framework", "Arduino"); @@ -2107,15 +2217,7 @@ script: - logger.log: API connected - lambda: |- boot_progress->execute(4); - if (blueprint_status->state <= 99) { - esphome::api::CustomAPIDevice ha_event; - ha_event.fire_homeassistant_event("esphome.nspanel_ha_blueprint", - { - {"device_name", device_name->state.c_str()}, - {"type", "boot"}, - {"step", "start"} - }); - } + if (blueprint_status->state <= 99) boot_event->execute(true); - wait_until: condition: - lambda: return (wifi_component->is_connected() and api_server->is_connected() and blueprint_status->state > 99); @@ -2127,6 +2229,7 @@ script: disp1->send_command_printf("brightness_dim=%i", int(display_dim_brightness->state)); disp1->set_component_value("settings.dimslider", int(display_dim_brightness->state)); disp1->send_command_printf("brightness_sleep=%i", int(display_sleep_brightness->state)); + disp1->send_command_printf("wakeup_page_id=%" PRIu8, get_page_id(wakeup_page_name->state.c_str())); boot_progress->execute(6); nextion_init->publish_state(disp1->is_setup()); if (api_server->is_connected() and disp1->is_setup()) { @@ -2231,7 +2334,7 @@ script: ESP_LOGD("script.page_changed", "Entity shown: %s", detailed_entity->state.c_str()); // Update buttons bars on screen - refresh_hardware_buttons_bars->execute(); + refresh_hardware_buttons_bars->execute(3); // Reset timers if (current_page->state != "screensaver") timer_reset_all->execute(); @@ -2277,7 +2380,7 @@ script: else if (current_page->state == "weather04") page_weather04->execute(); else if (current_page->state == "weather05") page_weather05->execute(); - delay: 1s - - script.execute: refresh_hardware_buttons_bars + - lambda: refresh_hardware_buttons_bars->execute(3); - id: page_climate mode: restart @@ -2340,8 +2443,9 @@ script: - id: page_home mode: restart then: - - script.execute: refresh_relays - - script.execute: refresh_wifi_icon + - lambda: + refresh_relays->execute(3); + refresh_wifi_icon->execute(); - id: page_keyb_num mode: restart @@ -2371,7 +2475,7 @@ script: then: - lambda: |- if (current_page->state == "screensaver" and !id(is_uploading_tft)) { - disp1->send_command_printf("back_page_id=%" PRIu8, get_page_id(wakeup_page_name->state.c_str())); + disp1->send_command_printf("wakeup_page_id=%" PRIu8, get_page_id(wakeup_page_name->state.c_str())); if (id(screensaver_display_time)) { disp1->set_component_font("screensaver.text", id(screensaver_display_time_font)); disp1->set_component_font_color("screensaver.text", id(screensaver_display_time_color)); @@ -2390,7 +2494,8 @@ script: - id: page_utilities mode: restart - then: # There's nothing here so far + then: + - lambda: resetUtilitiesGroups(); - id: page_weather mode: restart @@ -2460,6 +2565,8 @@ script: - id: refresh_hardware_buttons_bars mode: restart + parameters: + button_mask: uint8_t then: - lambda: |- #if ESPHOME_LOG_LEVEL > ESPHOME_LOG_LEVEL_DEBUG @@ -2467,61 +2574,38 @@ script: ESP_LOGV("script.refresh_hardware_buttons_bars", "Page id: %i", get_page_id(current_page->state.c_str())); ESP_LOGV("script.refresh_hardware_buttons_bars", "buttons_bars_pages: %i", id(buttons_bars_pages)); ESP_LOGV("script.refresh_hardware_buttons_bars", "relay_settings: %i", id(relay_settings)); + ESP_LOGV("script.refresh_hardware_buttons_bars", "button_mask: %i", button_mask); #endif if (!id(is_uploading_tft) and ((id(buttons_bars_pages) & (1 << get_page_id(current_page->state.c_str()))) != 0)) { switch (int(display_mode->state)) { case 1: // EU model - if (id(buttons_settings) & ButtonSettings::ButtonLeft_Enabled) { // Left button - disp1->fill_area(48, 307, 118, 3, - (((id(relay_settings) & RelaySettings::Relay1_Local) and relay_1->state) or (id(buttons_settings) & ButtonSettings::ButtonLeft_State)) ? - id(buttons_color_on) : id(buttons_color_off)); - disp1->fill_area(47, 308, 120, 1, - (((id(relay_settings) & RelaySettings::Relay1_Local) and relay_1->state) or (id(buttons_settings) & ButtonSettings::ButtonLeft_State)) ? - id(buttons_color_on) : id(buttons_color_off)); + if (button_mask & 1 and id(buttons_settings) & ButtonSettings::ButtonLeft_Enabled) { // Left button + disp1->fill_area(48, 307, 118, 3, (id(buttons_settings) & ButtonSettings::ButtonLeft_State) ? id(buttons_color_on) : id(buttons_color_off)); + disp1->fill_area(47, 308, 120, 1, (id(buttons_settings) & ButtonSettings::ButtonLeft_State) ? id(buttons_color_on) : id(buttons_color_off)); } - if (id(buttons_settings) & ButtonSettings::ButtonRight_Enabled) { // Right button - disp1->fill_area(289, 307, 118, 3, - (((id(relay_settings) & RelaySettings::Relay2_Local) and relay_2->state) or (id(buttons_settings) & ButtonSettings::ButtonRight_State)) ? - id(buttons_color_on) : id(buttons_color_off)); - disp1->fill_area(288, 308, 120, 1, - (((id(relay_settings) & RelaySettings::Relay2_Local) and relay_2->state) or (id(buttons_settings) & ButtonSettings::ButtonRight_State)) ? - id(buttons_color_on) : id(buttons_color_off)); + if (button_mask & 2 and id(buttons_settings) & ButtonSettings::ButtonRight_Enabled) { // Right button + disp1->fill_area(289, 307, 118, 3, (id(buttons_settings) & ButtonSettings::ButtonRight_State) ? id(buttons_color_on) : id(buttons_color_off)); + disp1->fill_area(288, 308, 120, 1, (id(buttons_settings) & ButtonSettings::ButtonRight_State) ? id(buttons_color_on) : id(buttons_color_off)); } break; case 2: // US Portrait - if (id(buttons_settings) & ButtonSettings::ButtonLeft_Enabled) { // Left button - disp1->fill_area(17, 466, 118, 3, - (((id(relay_settings) & RelaySettings::Relay1_Local) and relay_1->state) or (id(buttons_settings) & ButtonSettings::ButtonLeft_State)) ? - id(buttons_color_on) : id(buttons_color_off)); - disp1->fill_area(16, 467, 120, 1, - (((id(relay_settings) & RelaySettings::Relay1_Local) and relay_1->state) or (id(buttons_settings) & ButtonSettings::ButtonLeft_State)) ? - id(buttons_color_on) : id(buttons_color_off)); + if (button_mask & 1 and id(buttons_settings) & ButtonSettings::ButtonLeft_Enabled) { // Left button + disp1->fill_area(17, 466, 118, 3, (id(buttons_settings) & ButtonSettings::ButtonLeft_State) ? id(buttons_color_on) : id(buttons_color_off)); + disp1->fill_area(16, 467, 120, 1, (id(buttons_settings) & ButtonSettings::ButtonLeft_State) ? id(buttons_color_on) : id(buttons_color_off)); } - if (id(buttons_settings) & ButtonSettings::ButtonRight_Enabled) { // Right button - disp1->fill_area(184, 466, 118, 3, - (((id(relay_settings) & RelaySettings::Relay2_Local) and relay_2->state) or (id(buttons_settings) & ButtonSettings::ButtonRight_State)) ? - id(buttons_color_on) : id(buttons_color_off)); - disp1->fill_area(183, 467, 120, 1, - (((id(relay_settings) & RelaySettings::Relay2_Local) and relay_2->state) or (id(buttons_settings) & ButtonSettings::ButtonRight_State)) ? - id(buttons_color_on) : id(buttons_color_off)); + if (button_mask & 2 and id(buttons_settings) & ButtonSettings::ButtonRight_Enabled) { // Right button + disp1->fill_area(184, 466, 118, 3, (id(buttons_settings) & ButtonSettings::ButtonRight_State) ? id(buttons_color_on) : id(buttons_color_off)); + disp1->fill_area(183, 467, 120, 1, (id(buttons_settings) & ButtonSettings::ButtonRight_State) ? id(buttons_color_on) : id(buttons_color_off)); } break; case 3: // US Landscape - if (id(buttons_settings) & ButtonSettings::ButtonLeft_Enabled) { // Left button - disp1->fill_area(467, 174, 3, 118, - (((id(relay_settings) & RelaySettings::Relay1_Local) and relay_1->state) or (id(buttons_settings) & ButtonSettings::ButtonLeft_State)) ? - id(buttons_color_on) : id(buttons_color_off)); - disp1->fill_area(468, 173, 1, 120, - (((id(relay_settings) & RelaySettings::Relay1_Local) and relay_1->state) or (id(buttons_settings) & ButtonSettings::ButtonLeft_State)) ? - id(buttons_color_on) : id(buttons_color_off)); + if (button_mask & 1 and id(buttons_settings) & ButtonSettings::ButtonLeft_Enabled) { // Left button + disp1->fill_area(467, 174, 3, 118, (id(buttons_settings) & ButtonSettings::ButtonLeft_State) ? id(buttons_color_on) : id(buttons_color_off)); + disp1->fill_area(468, 173, 1, 120, (id(buttons_settings) & ButtonSettings::ButtonLeft_State) ? id(buttons_color_on) : id(buttons_color_off)); } - if (id(buttons_settings) & ButtonSettings::ButtonRight_Enabled) { // Right button - disp1->fill_area(467, 28, 3, 118, - (((id(relay_settings) & RelaySettings::Relay2_Local) and relay_2->state) or (id(buttons_settings) & ButtonSettings::ButtonRight_State)) ? - id(buttons_color_on) : id(buttons_color_off)); - disp1->fill_area(468, 27, 1, 120, - (((id(relay_settings) & RelaySettings::Relay2_Local) and relay_2->state) or (id(buttons_settings) & ButtonSettings::ButtonRight_State)) ? - id(buttons_color_on) : id(buttons_color_off)); + if (button_mask & 2 and id(buttons_settings) & ButtonSettings::ButtonRight_Enabled) { // Right button + disp1->fill_area(467, 28, 3, 118, (id(buttons_settings) & ButtonSettings::ButtonRight_State) ? id(buttons_color_on) : id(buttons_color_off)); + disp1->fill_area(468, 27, 1, 120, (id(buttons_settings) & ButtonSettings::ButtonRight_State) ? id(buttons_color_on) : id(buttons_color_off)); } break; } @@ -2529,18 +2613,19 @@ script: - id: refresh_relays mode: restart + parameters: + relay_mask: uint8_t then: - lambda: |- // Chips - Relays - disp1->set_component_text("home.chip_relay1", (relay_1->state) ? id(home_relay1_icon) : "\uFFFF"); - disp1->set_component_text("home.chip_relay2", (relay_2->state) ? id(home_relay2_icon) : "\uFFFF"); - refresh_hardware_buttons_bars->execute(); + if (!id(is_uploading_tft) and relay_mask & 1) disp1->set_component_text("home.chip_relay1", (relay_1->state) ? id(home_relay1_icon) : "\uFFFF"); + if (!id(is_uploading_tft) and relay_mask & 2) disp1->set_component_text("home.chip_relay2", (relay_2->state) ? id(home_relay2_icon) : "\uFFFF"); - id: refresh_wifi_icon mode: restart then: - lambda: |- - if (nextion_init->state) { + if (!id(is_uploading_tft)) { disp1->send_command_printf("api=%i", (wifi_component->is_connected() and api_server->is_connected() and blueprint_status->state > 99) ? 1 : 0); // Update Wi-Fi icon color disp1->set_component_font_color("home.wifi_icon", (blueprint_status->state > 99) ? (wifi_rssi->state > -70 ? 33808 : 64992) : 63488); @@ -2554,15 +2639,6 @@ script: "\uE5A9"); // mdi:wifi-off } - - id: restore_settings - mode: restart - then: - - wait_until: - condition: - - lambda: return (not isnan(stoi(baud_rate->state))); - - lambda: |- - set_baud_rate->execute(stoi(baud_rate->state), true); - - id: service_call_alarm_control_panel mode: restart parameters: @@ -2579,7 +2655,7 @@ script: else if (key == "vacation") service = "alarm_control_panel.alarm_arm_vacation"; else if (key == "bypass") service = "alarm_control_panel.alarm_arm_custom_bypass"; else if (key == "disarm") service = "alarm_control_panel.alarm_disarm"; - if (service != "" and not service.empty()) + if (not service.empty()) { HomeassistantServiceResponse resp; HomeassistantServiceMap resp_kv; @@ -2587,7 +2663,7 @@ script: resp_kv.key = "entity_id"; resp_kv.value = entity.c_str(); resp.data.push_back(resp_kv); - if (pin != "" and not pin.empty()) + if (not pin.empty()) { resp_kv.key = "code"; resp_kv.value = pin.c_str(); @@ -2632,14 +2708,20 @@ script: parameters: brightness: float then: - - lambda: |- - if (brightness == display_brightness->state and current_page->state != "boot" and current_page->state != "screensaver") - disp1->send_command_printf("wakeup_timer.en=1"); - else - disp1->set_backlight_brightness(brightness / 100.0f); - current_brightness->update(); - - delay: 5s - - lambda: current_brightness->update(); + - if: + condition: + - lambda: return (!id(is_uploading_tft)); + then: + - lambda: |- + if (!id(is_uploading_tft)) { + if (brightness == display_brightness->state and current_page->state != "boot" and current_page->state != "screensaver") + disp1->send_command_printf("wakeup_timer.en=1"); + else + disp1->set_backlight_brightness(brightness / 100.0f); + current_brightness->update(); + } + - delay: 5s + - lambda: if (!id(is_uploading_tft)) current_brightness->update(); - id: set_climate mode: restart @@ -2656,8 +2738,7 @@ script: embedded_climate: bool then: - lambda: |- - if (id(is_uploading_tft)) set_climate->stop(); - if (current_page->state == "climate") { + if (!id(is_uploading_tft) and current_page->state == "climate") { bool useDecimal = (temp_step % 10 != 0); char buffer[15]; disp1->send_command_printf("climateslider.maxval=%i", total_steps); @@ -2673,7 +2754,7 @@ script: disp1->set_component_text("current_temp", adjustDecimalSeparator(buffer, id(mui_decimal_separator)).c_str()); } else - disp1->set_component_text_printf("current_temp", id(mui_unavailable_global).c_str()); + disp1->set_component_text("current_temp", id(mui_unavailable_global).c_str()); if (target_temp > -999) { // Target temp enabled disp1->set_component_value("active_slider", 0); @@ -2732,12 +2813,14 @@ script: then: - lambda: |- NextionComponent component = extractNextionComponent(component_id, current_page->state); - if (component.is_current_page) disp1->send_command_printf("vis %s,%i", component.component_id.c_str(), show ? 1 : 0); + if (component.is_current_page) disp1->send_command_printf("vis %s,%i", component.component_id, show ? 1 : 0); + - id: stop_all mode: restart then: - lambda: |- + boot_event->stop(); boot_progress->stop(); change_climate_state->stop(); check_versions->stop(); @@ -2794,6 +2877,7 @@ script: update_alarm_icon->stop(); update_climate_icon->stop(); update_tft_info->stop(); + watchdog->stop(); ###### Timers ###### - id: timer_reset_all # Global timer reset - Triggered with a touch on the screen @@ -2924,7 +3008,7 @@ script: alarm_icon = "\uEECC"; //mdi:shield-alert-outline alarm_color = 63488; } - disp1->set_component_text_printf(component.c_str(), alarm_icon.c_str()); + disp1->set_component_text(component.c_str(), alarm_icon.c_str()); disp1->set_component_font_color(component.c_str(), alarm_color); - id: update_climate_icon @@ -3008,4 +3092,114 @@ script: condition: - lambda: return (!isnan(display_charset->state) and !isnan(display_mode->state) and !(version_tft->state.empty())); timeout: 10s + + - id: watchdog + mode: restart + then: + - lambda: |- + static const char *const TAG = "script.watchdog"; + if (id(is_uploading_tft)) { + ESP_LOGW(TAG, "TFT upload in progress"); + } else { + // report Wi-Fi status + bool wifi_connected = wifi_component->is_connected(); + if (wifi_connected) { + float rssi = wifi_rssi->state; + const char *rssi_status = "Unknown"; // Use const char* to avoid dynamic memory allocation + if (rssi > -50) rssi_status = "Excellent"; + else if (rssi > -60) rssi_status = "Good"; + else if (rssi > -70) rssi_status = "Fair"; + else if (rssi > -80) rssi_status = "Weak"; + else rssi_status = "Poor"; + if (rssi > -70) ESP_LOGI(TAG, "Wi-Fi: %s (%.0f dBm)", rssi_status, rssi); + else if (rssi > -80) ESP_LOGW(TAG, "Wi-Fi: %s (%.0f dBm)", rssi_status, rssi); + else ESP_LOGE(TAG, "Wi-Fi: %s (%.0f dBm)", rssi_status, rssi); + } + else { + ESP_LOGW(TAG, "Wi-Fi: DISCONNECTED"); + ESP_LOGI(TAG, "Retrying Wi-Fi connection"); + wifi_component->retry_connect(); + } + + // report API status + bool api_connected = api_server->is_connected(); + if (api_connected) { + ESP_LOGI(TAG, "API: Connected"); + } else { + ESP_LOGW(TAG, "API: DISCONNECTED"); + blueprint_status->publish_state(0); + if (current_page->state != "blank" and + current_page->state != "boot" and + current_page->state != "home" and + current_page->state != "screensaver" and + current_page->state != "settings" and + current_page->state != "qrcode") { + ESP_LOGI(TAG, "Fallback to page Home"); + disp1->goto_page("home"); + } + } + + if (!wifi_connected or !api_connected) blueprint_status->publish_state(0); + + // Report blueprint version + ESP_LOGI(TAG, "Blueprint:"); + if (blueprint_status->state > 99) { + ESP_LOGI(TAG, " Version: %s", version_blueprint->state.c_str()); + ESP_LOGI(TAG, " Init steps: %i (%0.1f%%)", int(blueprint_status->raw_state), blueprint_status->state); + } else { + ESP_LOGW(TAG, " Init steps: %i (%0.1f%%)", int(blueprint_status->raw_state), blueprint_status->state); + ESP_LOGW(TAG, " State: %s", (wifi_connected and api_connected) ? "Pending" : "DISCONNECTED"); + ESP_LOGI(TAG, "Requesting blueprint settings"); + boot_event->execute(false); + } + + // Report ESPHome + ESP_LOGI(TAG, "ESPHome:"); + ESP_LOGI(TAG, " Version: ${version}"); + // Report framework + #ifdef ARDUINO + ESP_LOGI(TAG, " Framework: Arduino"); + size_t total_heap_size = ESP.getHeapSize(); + size_t free_heap_size = ESP.getFreeHeap(); + #elif defined(USE_ESP_IDF) + ESP_LOGI(TAG, " Framework: ESP-IDF"); + size_t total_heap_size = heap_caps_get_total_size(MALLOC_CAP_DEFAULT); + size_t free_heap_size = esp_get_free_heap_size(); + #endif + if (total_heap_size != 0) { + std::string numStr = std::to_string(free_heap_size); + int insertPosition = numStr.length() - 3; + while (insertPosition > 0) { + numStr.insert(insertPosition, " "); + insertPosition -= 3; + } + ESP_LOGI(TAG, " Free heap: %s bytes (%d%%)", numStr.c_str(), + int(round(((float)free_heap_size / total_heap_size) * 100.0f))); + } + // Report UART + ESP_LOGI(TAG, "UART:"); + ESP_LOGI(TAG, " Baud rate: %" PRIu32 " bps", tf_uart->get_baud_rate()); + ESP_LOGI(TAG, " Queue size: %d", tf_uart->available()); + + // Report Nextion status + nextion_init->publish_state(nextion_init->state and disp1->is_setup()); + ESP_LOGI(TAG, "Nextion:"); + ESP_LOGI(TAG, " Queue size: %d", disp1->queue_size()); + if (disp1->is_setup()) + ESP_LOGI(TAG, " Is setup: True"); + else { + ESP_LOGW(TAG, " Is setup: False"); + ESP_LOGW(TAG, " Is detected: %s", YESNO(disp1->is_detected())); + //exit_reparse->execute(); + } + if (nextion_init->state) { + ESP_LOGI(TAG, " Init: True"); + } else + ESP_LOGW(TAG, " Init: False"); + if (version_tft->state.empty()) + ESP_LOGW(TAG, " TFT: UNKNOWN"); + else + ESP_LOGI(TAG, " TFT: %s", version_tft->state.c_str()); + refresh_wifi_icon->execute(); + } ... diff --git a/hmi/dev/manuals_screenshots.md b/hmi/dev/manuals_screenshots.md index d6e9cb0..380036c 100644 --- a/hmi/dev/manuals_screenshots.md +++ b/hmi/dev/manuals_screenshots.md @@ -15,9 +15,9 @@ framework.txt="esp-idf" ip_addr.txt="192.168.0.123" ``` -![Boot EU](../docs/pics/eu_boot.png) +![Boot EU](../../docs/pics/eu_boot.png) -![Boot US](../docs/pics/us_boot.png) +![Boot US](../../docs/pics/us_boot.png) ## Home page @@ -59,7 +59,7 @@ value03_state.txt="715 W" value03_icon.txt="" ``` -![Home EU](../docs/pics/eu_home.png) +![Home EU](../../docs/pics/eu_home.png) **US version:** @@ -100,7 +100,7 @@ value03_state.txt="715 W" value03_icon.txt="" ``` -![Home US](../docs/pics/us_home.png) +![Home US](../../docs/pics/us_home.png) ## Settings page @@ -108,8 +108,8 @@ value03_icon.txt="" page settings ``` -![Settings EU](../docs/pics/eu_settings.png) -![Settings US](../docs/pics/us_settings.png) +![Settings EU](../../docs/pics/eu_settings.png) +![Settings US](../../docs/pics/us_settings.png) ## Buttons pages (DRAFT) diff --git a/hmi/dev/nspanel_CJK_eu_code/Program.s.txt b/hmi/dev/nspanel_CJK_eu_code/Program.s.txt index 78c19db..0e70dd2 100644 --- a/hmi/dev/nspanel_CJK_eu_code/Program.s.txt +++ b/hmi/dev/nspanel_CJK_eu_code/Program.s.txt @@ -7,6 +7,7 @@ Program.s int is_buttonpage01=0, is_buttonpage02=0, is_buttonpage03=0, is_buttonpage04=0 int is_entitypage01=0, is_entitypage02=0, is_entitypage03=0, is_entitypage04=0 int back_page_id=1 + int wakeup_page_id=1 int dimdelta=0 int api=0 // 0 = disconnected from HA, 1 = connected to HA int is_utilities=0 diff --git a/hmi/dev/nspanel_CJK_eu_code/boot.txt b/hmi/dev/nspanel_CJK_eu_code/boot.txt index b08616f..cc0c3b2 100644 --- a/hmi/dev/nspanel_CJK_eu_code/boot.txt +++ b/hmi/dev/nspanel_CJK_eu_code/boot.txt @@ -96,7 +96,7 @@ Text tft_version Dragging : 0 Send Component ID : on press and release Associated Keyboard: none - Text : 4.3.1 + Text : 4.3.2 Max. Text Size : 9 Text esph_version diff --git a/hmi/dev/nspanel_CJK_eu_code/buttonpage01.txt b/hmi/dev/nspanel_CJK_eu_code/buttonpage01.txt index 7bf6975..7e8bc5c 100644 --- a/hmi/dev/nspanel_CJK_eu_code/buttonpage01.txt +++ b/hmi/dev/nspanel_CJK_eu_code/buttonpage01.txt @@ -789,6 +789,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -840,7 +844,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Assume starting from buttonpage01 and aiming to navigate two pages ahead based on active pages. diff --git a/hmi/dev/nspanel_CJK_eu_code/buttonpage02.txt b/hmi/dev/nspanel_CJK_eu_code/buttonpage02.txt index 7234ead..1af8c03 100644 --- a/hmi/dev/nspanel_CJK_eu_code/buttonpage02.txt +++ b/hmi/dev/nspanel_CJK_eu_code/buttonpage02.txt @@ -789,6 +789,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -846,7 +850,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { if(is_buttonpage03==1&&is_buttonpage04==1) diff --git a/hmi/dev/nspanel_CJK_eu_code/buttonpage03.txt b/hmi/dev/nspanel_CJK_eu_code/buttonpage03.txt index bb10da9..1ea3229 100644 --- a/hmi/dev/nspanel_CJK_eu_code/buttonpage03.txt +++ b/hmi/dev/nspanel_CJK_eu_code/buttonpage03.txt @@ -789,6 +789,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -842,7 +846,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Navigate back up the sequence based on active status diff --git a/hmi/dev/nspanel_CJK_eu_code/buttonpage04.txt b/hmi/dev/nspanel_CJK_eu_code/buttonpage04.txt index 10773be..7f5c3a0 100644 --- a/hmi/dev/nspanel_CJK_eu_code/buttonpage04.txt +++ b/hmi/dev/nspanel_CJK_eu_code/buttonpage04.txt @@ -789,6 +789,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -798,15 +802,15 @@ TouchCap swipe if(swipec>swipedx) { // Navigate back based on active status - if(is_entitypage03==1) + if(is_buttonpage03==1) { - page entitypage03 - }else if(is_entitypage02==1) + page buttonpage03 + }else if(is_buttonpage02==1) { - page entitypage02 - }else if(is_entitypage01==1) + page buttonpage02 + }else if(is_buttonpage01==1) { - page entitypage01 + page buttonpage01 }else { page home @@ -826,14 +830,14 @@ TouchCap swipe // From Up to Down if(swipec>100) { - if(is_entitypage03==1&&is_entitypage02==1) + if(is_buttonpage03==1&&is_buttonpage02==1) { - page entitypage02 - }else if(is_entitypage03==1||is_entitypage02==1) + page buttonpage02 + }else if(is_buttonpage03==1||is_buttonpage02==1) { - if(is_entitypage01==1) + if(is_buttonpage01==1) { - page entitypage01 + page buttonpage01 }else { page home @@ -844,19 +848,19 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Navigate back up the sequence based on active status - if(is_entitypage01==1) + if(is_buttonpage01==1) { - page entitypage01 - }else if(is_entitypage02==1) + page buttonpage01 + }else if(is_buttonpage02==1) { - page entitypage02 - }else if(is_entitypage03==1) + page buttonpage02 + }else if(is_buttonpage03==1) { - page entitypage03 + page buttonpage03 }else { page home diff --git a/hmi/dev/nspanel_CJK_eu_code/entitypage01.txt b/hmi/dev/nspanel_CJK_eu_code/entitypage01.txt index 3944cd8..2285229 100644 --- a/hmi/dev/nspanel_CJK_eu_code/entitypage01.txt +++ b/hmi/dev/nspanel_CJK_eu_code/entitypage01.txt @@ -374,6 +374,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -425,7 +429,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { if(is_entitypage02==1) // Check if entitypage02 is active diff --git a/hmi/dev/nspanel_CJK_eu_code/entitypage02.txt b/hmi/dev/nspanel_CJK_eu_code/entitypage02.txt index acaea22..f2f9e31 100644 --- a/hmi/dev/nspanel_CJK_eu_code/entitypage02.txt +++ b/hmi/dev/nspanel_CJK_eu_code/entitypage02.txt @@ -374,6 +374,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -431,7 +435,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { if(is_entitypage03==1&&is_entitypage04==1) diff --git a/hmi/dev/nspanel_CJK_eu_code/entitypage03.txt b/hmi/dev/nspanel_CJK_eu_code/entitypage03.txt index 428e485..28798f2 100644 --- a/hmi/dev/nspanel_CJK_eu_code/entitypage03.txt +++ b/hmi/dev/nspanel_CJK_eu_code/entitypage03.txt @@ -374,6 +374,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -425,7 +429,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { if(is_entitypage04==1) diff --git a/hmi/dev/nspanel_CJK_eu_code/entitypage04.txt b/hmi/dev/nspanel_CJK_eu_code/entitypage04.txt index d40e216..2a33fe9 100644 --- a/hmi/dev/nspanel_CJK_eu_code/entitypage04.txt +++ b/hmi/dev/nspanel_CJK_eu_code/entitypage04.txt @@ -374,6 +374,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -429,7 +433,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Navigate back up the sequence based on active status diff --git a/hmi/dev/nspanel_CJK_eu_code/home.txt b/hmi/dev/nspanel_CJK_eu_code/home.txt index e72affa..4991116 100644 --- a/hmi/dev/nspanel_CJK_eu_code/home.txt +++ b/hmi/dev/nspanel_CJK_eu_code/home.txt @@ -22,7 +22,7 @@ Page home prints "home",0 printh 00 printh FF FF FF - back_page_id=0 + back_page_id=1 if(qrcode.qrcode_value.txt=="") { vis bt_qrcode,0 @@ -83,15 +83,6 @@ Text indr_temp Text : Max. Text Size : 8 - Events - Touch Release Event - printh 92 - prints "localevent",0 - printh 00 - prints "{\"page\": \"home\", \"component\": \"climate\", \"event\": \"click\"}",0 - printh 00 - printh FF FF FF - Text outdoor_temp Attributes ID : 5 @@ -326,15 +317,6 @@ Text indr_temp_icon Text : Max. Text Size : 3 - Events - Touch Release Event - printh 92 - prints "localevent",0 - printh 00 - prints "{\"page\": \"home\", \"component\": \"climate\", \"event\": \"click\"}",0 - printh 00 - printh FF FF FF - Text bt_notific Attributes ID : 28 @@ -751,6 +733,10 @@ TouchCap swipe wakeup_timer.en=1 // Set brightness to saved value (from HA) Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -772,9 +758,6 @@ TouchCap swipe }else if(is_buttonpage01==1) { page buttonpage01 - }else - { - // Do nothing } } // Right to Left swipe now navigates to home, looping back to the start. @@ -794,9 +777,6 @@ TouchCap swipe }else if(is_buttonpage04==1) { page buttonpage04 - }else - { - // Do nothing } } } @@ -825,13 +805,10 @@ TouchCap swipe }else if(is_buttonpage02==1&&is_buttonpage01==1) { page buttonpage01 - }else - { - // Do nothing } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Navigate back up the sequence based on active status @@ -853,9 +830,6 @@ TouchCap swipe }else if(is_buttonpage03==1&&is_buttonpage04==1) { page buttonpage04 - }else - { - // Do nothing } } } diff --git a/hmi/dev/nspanel_CJK_eu_code/light.txt b/hmi/dev/nspanel_CJK_eu_code/light.txt index b68ce46..98b790a 100644 --- a/hmi/dev/nspanel_CJK_eu_code/light.txt +++ b/hmi/dev/nspanel_CJK_eu_code/light.txt @@ -383,7 +383,7 @@ Picture colorwheel covx b,va3.txt,0,0 lightsetting.txt="{\"page\": \"light\", \"component\": \"rgb_color\", \"value\": ["+va1.txt+", "+va2.txt+", "+va3.txt+"]}" printh 92 - prints "nspanelevent",0 + prints "localevent",0 printh 00 prints lightsetting.txt,0 printh 00 diff --git a/hmi/dev/nspanel_CJK_eu_code/screensaver.txt b/hmi/dev/nspanel_CJK_eu_code/screensaver.txt index e74eae1..87201fa 100644 --- a/hmi/dev/nspanel_CJK_eu_code/screensaver.txt +++ b/hmi/dev/nspanel_CJK_eu_code/screensaver.txt @@ -23,7 +23,7 @@ Page screensaver printh FF FF FF Touch Release Event - page back_page_id + page wakeup_page_id Text text Attributes @@ -69,7 +69,7 @@ TouchCap wakeup Events Touch Press Event - page back_page_id + page wakeup_page_id TouchCap swipe Attributes diff --git a/hmi/dev/nspanel_CJK_eu_code/utilities.txt b/hmi/dev/nspanel_CJK_eu_code/utilities.txt index dd54019..8ab0cd6 100644 --- a/hmi/dev/nspanel_CJK_eu_code/utilities.txt +++ b/hmi/dev/nspanel_CJK_eu_code/utilities.txt @@ -27,7 +27,7 @@ Page utilities printh 00 printh FF FF FF -Variable (int32) line_main_d +Variable (int32) home_line_d Attributes ID : 46 Scope: local @@ -419,7 +419,7 @@ Text group06b Text : Max. Text Size : 10 -Slider line_main +Slider home_line Attributes ID : 10 Scope : local @@ -530,19 +530,19 @@ Timer tm_movement Attributes ID : 45 Scope : local - Period (ms): 50 + Period (ms): 150 Enabled : yes Events Timer Event - //line_main - line_main.val+=line_main_d.val - if(line_main.val>=line_main.maxval) + //home_line + home_line.val+=home_line_d.val + if(home_line.val>=home_line.maxval) { - line_main.val=line_main.minval - }else if(line_main.val<=line_main.minval) + home_line.val=home_line.minval + }else if(home_line.val<=home_line.minval) { - line_main.val=line_main.maxval + home_line.val=home_line.maxval } //group01_line group01_line.val+=group01_line_d.val diff --git a/hmi/dev/nspanel_CJK_eu_code/utilities2.txt b/hmi/dev/nspanel_CJK_eu_code/utilities2.txt deleted file mode 100644 index 351e7bc..0000000 --- a/hmi/dev/nspanel_CJK_eu_code/utilities2.txt +++ /dev/null @@ -1,440 +0,0 @@ -Page utilities2 - Attributes - ID : 0 - Scope : local - Dragging : 0 - Send Component ID : on press and release - Locked : no - Swide up page ID : disabled - Swide down page ID : disabled - Swide left page ID : disabled - Swide right page ID: disabled - - Events - Preinitialize Event - if(api==0) - { - page home - } - vis unavailable,0 - - Postinitialize Event - sendme - -Text title - Attributes - ID : 1 - Scope : local - Dragging : 0 - Send Component ID : on press and release - Associated Keyboard: none - Text : Power Dashboard - Max. Text Size : 100 - -Text title_icon - Attributes - ID : 2 - Scope : local - Dragging : 0 - Send Component ID : on press and release - Associated Keyboard: none - Text :  - Max. Text Size : 10 - -Text unavailable - Attributes - ID : 5 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : - Max. Text Size : 1 - -Text t1 - Attributes - ID : 6 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : 賈 - Max. Text Size : 4 - -Text t2 - Attributes - ID : 7 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text :  - Max. Text Size : 4 - -Text t3 - Attributes - ID : 8 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text :  - Max. Text Size : 4 - -Text t4 - Attributes - ID : 9 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : Green - Max. Text Size : 10 - -Text t5 - Attributes - ID : 10 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : Fossil - Max. Text Size : 10 - -Text t7 - Attributes - ID : 13 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : 全 - Max. Text Size : 4 - -Text t8 - Attributes - ID : 14 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : Solar - Max. Text Size : 10 - -Text t9 - Attributes - ID : 16 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : 98% - Max. Text Size : 10 - -Text t10 - Attributes - ID : 17 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : 2% - Max. Text Size : 10 - -Text t11 - Attributes - ID : 18 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : 豈 - Max. Text Size : 4 - -Text t12 - Attributes - ID : 19 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : Battery - Max. Text Size : 10 - -Text t13 - Attributes - ID : 21 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : 暑 - Max. Text Size : 4 - -Text t14 - Attributes - ID : 22 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : Heating - Max. Text Size : 10 - -Text t15 - Attributes - ID : 24 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : 1.7 kW - Max. Text Size : 10 - -Text t16 - Attributes - ID : 25 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : 21.7°C - Max. Text Size : 10 - -Text t17 - Attributes - ID : 26 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : 1.1 kW - Max. Text Size : 10 - -Text t18 - Attributes - ID : 27 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : -2.1 kW - Max. Text Size : 10 - -Text t19 - Attributes - ID : 28 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : 0.8 kW - Max. Text Size : 10 - -Text t20 - Attributes - ID : 29 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : 慎 - Max. Text Size : 4 - -Text t21 - Attributes - ID : 30 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : Wind - Max. Text Size : 10 - -Text t22 - Attributes - ID : 32 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : 1.1 kW - Max. Text Size : 10 - -Text t23 - Attributes - ID : 33 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : î—° - Max. Text Size : 4 - -Text t24 - Attributes - ID : 34 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : Car - Max. Text Size : 10 - -Text t25 - Attributes - ID : 36 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : 1.1 kW - Max. Text Size : 10 - -Text t0 - Attributes - ID : 37 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : î—° - Max. Text Size : 4 - -Text t6 - Attributes - ID : 38 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : Car - Max. Text Size : 10 - -Text t26 - Attributes - ID : 40 - Scope : local - Dragging : 0 - Send Component ID : disabled - Associated Keyboard: none - Text : 1.1 kW - Max. Text Size : 10 - -Slider h1 - Attributes - ID : 11 - Scope : local - Dragging : 0 - Send Component ID: disabled - Position : 50 - Upper range limit: 100 - Lower range limit: 0 - -Slider h2 - Attributes - ID : 12 - Scope : local - Dragging : 0 - Send Component ID: disabled - Position : 50 - Upper range limit: 100 - Lower range limit: 0 - -Slider h3 - Attributes - ID : 15 - Scope : local - Dragging : 0 - Send Component ID: disabled - Position : 50 - Upper range limit: 100 - Lower range limit: 0 - -Slider h4 - Attributes - ID : 20 - Scope : local - Dragging : 0 - Send Component ID: disabled - Position : 50 - Upper range limit: 100 - Lower range limit: 0 - -Slider h5 - Attributes - ID : 23 - Scope : local - Dragging : 0 - Send Component ID: disabled - Position : 50 - Upper range limit: 100 - Lower range limit: 0 - -Slider h6 - Attributes - ID : 31 - Scope : local - Dragging : 0 - Send Component ID: disabled - Position : 50 - Upper range limit: 100 - Lower range limit: 0 - -Slider h7 - Attributes - ID : 35 - Scope : local - Dragging : 0 - Send Component ID: disabled - Position : 50 - Upper range limit: 100 - Lower range limit: 0 - -Slider h0 - Attributes - ID : 39 - Scope : local - Dragging : 0 - Send Component ID: disabled - Position : 50 - Upper range limit: 100 - Lower range limit: 0 - -Button button_back - Attributes - ID : 3 - Scope : local - Dragging : 0 - Send Component ID: on press and release - State : unpressed - Text : î…˜ - Max. Text Size : 3 - - Events - Touch Press Event - page back_page_id - -Timer wakeup_timer - Attributes - ID : 4 - Scope : local - Period (ms): 100 - Enabled : yes - - Events - Timer Event - if(dim=line_main.maxval) + home_line.val+=home_line_d.val + if(home_line.val>=home_line.maxval) { - line_main.val=line_main.minval - }else if(line_main.val<=line_main.minval) + home_line.val=home_line.minval + }else if(home_line.val<=home_line.minval) { - line_main.val=line_main.maxval + home_line.val=home_line.maxval } //group01_line group01_line.val+=group01_line_d.val diff --git a/hmi/dev/nspanel_CJK_us_land_code/Program.s.txt b/hmi/dev/nspanel_CJK_us_land_code/Program.s.txt index 1480d12..a7a70ff 100644 --- a/hmi/dev/nspanel_CJK_us_land_code/Program.s.txt +++ b/hmi/dev/nspanel_CJK_us_land_code/Program.s.txt @@ -7,6 +7,7 @@ Program.s int is_buttonpage01=0, is_buttonpage02=0, is_buttonpage03=0, is_buttonpage04=0 int is_entitypage01=0, is_entitypage02=0, is_entitypage03=0, is_entitypage04=0 int back_page_id=1 + int wakeup_page_id=1 int dimdelta=0 int api=0 // 0 = disconnected from HA, 1 = connected to HA int is_utilities=0 diff --git a/hmi/dev/nspanel_CJK_us_land_code/boot.txt b/hmi/dev/nspanel_CJK_us_land_code/boot.txt index b08616f..cc0c3b2 100644 --- a/hmi/dev/nspanel_CJK_us_land_code/boot.txt +++ b/hmi/dev/nspanel_CJK_us_land_code/boot.txt @@ -96,7 +96,7 @@ Text tft_version Dragging : 0 Send Component ID : on press and release Associated Keyboard: none - Text : 4.3.1 + Text : 4.3.2 Max. Text Size : 9 Text esph_version diff --git a/hmi/dev/nspanel_CJK_us_land_code/buttonpage01.txt b/hmi/dev/nspanel_CJK_us_land_code/buttonpage01.txt index 7bf6975..7e8bc5c 100644 --- a/hmi/dev/nspanel_CJK_us_land_code/buttonpage01.txt +++ b/hmi/dev/nspanel_CJK_us_land_code/buttonpage01.txt @@ -789,6 +789,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -840,7 +844,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Assume starting from buttonpage01 and aiming to navigate two pages ahead based on active pages. diff --git a/hmi/dev/nspanel_CJK_us_land_code/buttonpage02.txt b/hmi/dev/nspanel_CJK_us_land_code/buttonpage02.txt index 7234ead..1af8c03 100644 --- a/hmi/dev/nspanel_CJK_us_land_code/buttonpage02.txt +++ b/hmi/dev/nspanel_CJK_us_land_code/buttonpage02.txt @@ -789,6 +789,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -846,7 +850,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { if(is_buttonpage03==1&&is_buttonpage04==1) diff --git a/hmi/dev/nspanel_CJK_us_land_code/buttonpage03.txt b/hmi/dev/nspanel_CJK_us_land_code/buttonpage03.txt index bb10da9..1ea3229 100644 --- a/hmi/dev/nspanel_CJK_us_land_code/buttonpage03.txt +++ b/hmi/dev/nspanel_CJK_us_land_code/buttonpage03.txt @@ -789,6 +789,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -842,7 +846,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Navigate back up the sequence based on active status diff --git a/hmi/dev/nspanel_CJK_us_land_code/buttonpage04.txt b/hmi/dev/nspanel_CJK_us_land_code/buttonpage04.txt index 10773be..7f5c3a0 100644 --- a/hmi/dev/nspanel_CJK_us_land_code/buttonpage04.txt +++ b/hmi/dev/nspanel_CJK_us_land_code/buttonpage04.txt @@ -789,6 +789,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -798,15 +802,15 @@ TouchCap swipe if(swipec>swipedx) { // Navigate back based on active status - if(is_entitypage03==1) + if(is_buttonpage03==1) { - page entitypage03 - }else if(is_entitypage02==1) + page buttonpage03 + }else if(is_buttonpage02==1) { - page entitypage02 - }else if(is_entitypage01==1) + page buttonpage02 + }else if(is_buttonpage01==1) { - page entitypage01 + page buttonpage01 }else { page home @@ -826,14 +830,14 @@ TouchCap swipe // From Up to Down if(swipec>100) { - if(is_entitypage03==1&&is_entitypage02==1) + if(is_buttonpage03==1&&is_buttonpage02==1) { - page entitypage02 - }else if(is_entitypage03==1||is_entitypage02==1) + page buttonpage02 + }else if(is_buttonpage03==1||is_buttonpage02==1) { - if(is_entitypage01==1) + if(is_buttonpage01==1) { - page entitypage01 + page buttonpage01 }else { page home @@ -844,19 +848,19 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Navigate back up the sequence based on active status - if(is_entitypage01==1) + if(is_buttonpage01==1) { - page entitypage01 - }else if(is_entitypage02==1) + page buttonpage01 + }else if(is_buttonpage02==1) { - page entitypage02 - }else if(is_entitypage03==1) + page buttonpage02 + }else if(is_buttonpage03==1) { - page entitypage03 + page buttonpage03 }else { page home diff --git a/hmi/dev/nspanel_CJK_us_land_code/entitypage01.txt b/hmi/dev/nspanel_CJK_us_land_code/entitypage01.txt index 3944cd8..2285229 100644 --- a/hmi/dev/nspanel_CJK_us_land_code/entitypage01.txt +++ b/hmi/dev/nspanel_CJK_us_land_code/entitypage01.txt @@ -374,6 +374,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -425,7 +429,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { if(is_entitypage02==1) // Check if entitypage02 is active diff --git a/hmi/dev/nspanel_CJK_us_land_code/entitypage02.txt b/hmi/dev/nspanel_CJK_us_land_code/entitypage02.txt index acaea22..f2f9e31 100644 --- a/hmi/dev/nspanel_CJK_us_land_code/entitypage02.txt +++ b/hmi/dev/nspanel_CJK_us_land_code/entitypage02.txt @@ -374,6 +374,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -431,7 +435,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { if(is_entitypage03==1&&is_entitypage04==1) diff --git a/hmi/dev/nspanel_CJK_us_land_code/entitypage03.txt b/hmi/dev/nspanel_CJK_us_land_code/entitypage03.txt index 428e485..28798f2 100644 --- a/hmi/dev/nspanel_CJK_us_land_code/entitypage03.txt +++ b/hmi/dev/nspanel_CJK_us_land_code/entitypage03.txt @@ -374,6 +374,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -425,7 +429,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { if(is_entitypage04==1) diff --git a/hmi/dev/nspanel_CJK_us_land_code/entitypage04.txt b/hmi/dev/nspanel_CJK_us_land_code/entitypage04.txt index d40e216..2a33fe9 100644 --- a/hmi/dev/nspanel_CJK_us_land_code/entitypage04.txt +++ b/hmi/dev/nspanel_CJK_us_land_code/entitypage04.txt @@ -374,6 +374,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -429,7 +433,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Navigate back up the sequence based on active status diff --git a/hmi/dev/nspanel_CJK_us_land_code/home.txt b/hmi/dev/nspanel_CJK_us_land_code/home.txt index e72affa..4991116 100644 --- a/hmi/dev/nspanel_CJK_us_land_code/home.txt +++ b/hmi/dev/nspanel_CJK_us_land_code/home.txt @@ -22,7 +22,7 @@ Page home prints "home",0 printh 00 printh FF FF FF - back_page_id=0 + back_page_id=1 if(qrcode.qrcode_value.txt=="") { vis bt_qrcode,0 @@ -83,15 +83,6 @@ Text indr_temp Text : Max. Text Size : 8 - Events - Touch Release Event - printh 92 - prints "localevent",0 - printh 00 - prints "{\"page\": \"home\", \"component\": \"climate\", \"event\": \"click\"}",0 - printh 00 - printh FF FF FF - Text outdoor_temp Attributes ID : 5 @@ -326,15 +317,6 @@ Text indr_temp_icon Text : Max. Text Size : 3 - Events - Touch Release Event - printh 92 - prints "localevent",0 - printh 00 - prints "{\"page\": \"home\", \"component\": \"climate\", \"event\": \"click\"}",0 - printh 00 - printh FF FF FF - Text bt_notific Attributes ID : 28 @@ -751,6 +733,10 @@ TouchCap swipe wakeup_timer.en=1 // Set brightness to saved value (from HA) Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -772,9 +758,6 @@ TouchCap swipe }else if(is_buttonpage01==1) { page buttonpage01 - }else - { - // Do nothing } } // Right to Left swipe now navigates to home, looping back to the start. @@ -794,9 +777,6 @@ TouchCap swipe }else if(is_buttonpage04==1) { page buttonpage04 - }else - { - // Do nothing } } } @@ -825,13 +805,10 @@ TouchCap swipe }else if(is_buttonpage02==1&&is_buttonpage01==1) { page buttonpage01 - }else - { - // Do nothing } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Navigate back up the sequence based on active status @@ -853,9 +830,6 @@ TouchCap swipe }else if(is_buttonpage03==1&&is_buttonpage04==1) { page buttonpage04 - }else - { - // Do nothing } } } diff --git a/hmi/dev/nspanel_CJK_us_land_code/light.txt b/hmi/dev/nspanel_CJK_us_land_code/light.txt index b68ce46..98b790a 100644 --- a/hmi/dev/nspanel_CJK_us_land_code/light.txt +++ b/hmi/dev/nspanel_CJK_us_land_code/light.txt @@ -383,7 +383,7 @@ Picture colorwheel covx b,va3.txt,0,0 lightsetting.txt="{\"page\": \"light\", \"component\": \"rgb_color\", \"value\": ["+va1.txt+", "+va2.txt+", "+va3.txt+"]}" printh 92 - prints "nspanelevent",0 + prints "localevent",0 printh 00 prints lightsetting.txt,0 printh 00 diff --git a/hmi/dev/nspanel_CJK_us_land_code/screensaver.txt b/hmi/dev/nspanel_CJK_us_land_code/screensaver.txt index e74eae1..87201fa 100644 --- a/hmi/dev/nspanel_CJK_us_land_code/screensaver.txt +++ b/hmi/dev/nspanel_CJK_us_land_code/screensaver.txt @@ -23,7 +23,7 @@ Page screensaver printh FF FF FF Touch Release Event - page back_page_id + page wakeup_page_id Text text Attributes @@ -69,7 +69,7 @@ TouchCap wakeup Events Touch Press Event - page back_page_id + page wakeup_page_id TouchCap swipe Attributes diff --git a/hmi/dev/nspanel_CJK_us_land_code/utilities.txt b/hmi/dev/nspanel_CJK_us_land_code/utilities.txt index dd54019..8ab0cd6 100644 --- a/hmi/dev/nspanel_CJK_us_land_code/utilities.txt +++ b/hmi/dev/nspanel_CJK_us_land_code/utilities.txt @@ -27,7 +27,7 @@ Page utilities printh 00 printh FF FF FF -Variable (int32) line_main_d +Variable (int32) home_line_d Attributes ID : 46 Scope: local @@ -419,7 +419,7 @@ Text group06b Text : Max. Text Size : 10 -Slider line_main +Slider home_line Attributes ID : 10 Scope : local @@ -530,19 +530,19 @@ Timer tm_movement Attributes ID : 45 Scope : local - Period (ms): 50 + Period (ms): 150 Enabled : yes Events Timer Event - //line_main - line_main.val+=line_main_d.val - if(line_main.val>=line_main.maxval) + //home_line + home_line.val+=home_line_d.val + if(home_line.val>=home_line.maxval) { - line_main.val=line_main.minval - }else if(line_main.val<=line_main.minval) + home_line.val=home_line.minval + }else if(home_line.val<=home_line.minval) { - line_main.val=line_main.maxval + home_line.val=home_line.maxval } //group01_line group01_line.val+=group01_line_d.val diff --git a/hmi/dev/nspanel_eu_code/Program.s.txt b/hmi/dev/nspanel_eu_code/Program.s.txt index f636188..ef67a9d 100644 --- a/hmi/dev/nspanel_eu_code/Program.s.txt +++ b/hmi/dev/nspanel_eu_code/Program.s.txt @@ -7,6 +7,7 @@ Program.s int is_buttonpage01=0, is_buttonpage02=0, is_buttonpage03=0, is_buttonpage04=0 int is_entitypage01=0, is_entitypage02=0, is_entitypage03=0, is_entitypage04=0 int back_page_id=1 + int wakeup_page_id=1 int dimdelta=0 int api=0 // 0 = disconnected from HA, 1 = connected to HA int is_utilities=0 diff --git a/hmi/dev/nspanel_eu_code/boot.txt b/hmi/dev/nspanel_eu_code/boot.txt index b08616f..cc0c3b2 100644 --- a/hmi/dev/nspanel_eu_code/boot.txt +++ b/hmi/dev/nspanel_eu_code/boot.txt @@ -96,7 +96,7 @@ Text tft_version Dragging : 0 Send Component ID : on press and release Associated Keyboard: none - Text : 4.3.1 + Text : 4.3.2 Max. Text Size : 9 Text esph_version diff --git a/hmi/dev/nspanel_eu_code/buttonpage01.txt b/hmi/dev/nspanel_eu_code/buttonpage01.txt index 7bf6975..7e8bc5c 100644 --- a/hmi/dev/nspanel_eu_code/buttonpage01.txt +++ b/hmi/dev/nspanel_eu_code/buttonpage01.txt @@ -789,6 +789,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -840,7 +844,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Assume starting from buttonpage01 and aiming to navigate two pages ahead based on active pages. diff --git a/hmi/dev/nspanel_eu_code/buttonpage02.txt b/hmi/dev/nspanel_eu_code/buttonpage02.txt index 7234ead..1af8c03 100644 --- a/hmi/dev/nspanel_eu_code/buttonpage02.txt +++ b/hmi/dev/nspanel_eu_code/buttonpage02.txt @@ -789,6 +789,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -846,7 +850,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { if(is_buttonpage03==1&&is_buttonpage04==1) diff --git a/hmi/dev/nspanel_eu_code/buttonpage03.txt b/hmi/dev/nspanel_eu_code/buttonpage03.txt index bb10da9..1ea3229 100644 --- a/hmi/dev/nspanel_eu_code/buttonpage03.txt +++ b/hmi/dev/nspanel_eu_code/buttonpage03.txt @@ -789,6 +789,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -842,7 +846,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Navigate back up the sequence based on active status diff --git a/hmi/dev/nspanel_eu_code/buttonpage04.txt b/hmi/dev/nspanel_eu_code/buttonpage04.txt index 10773be..7f5c3a0 100644 --- a/hmi/dev/nspanel_eu_code/buttonpage04.txt +++ b/hmi/dev/nspanel_eu_code/buttonpage04.txt @@ -789,6 +789,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -798,15 +802,15 @@ TouchCap swipe if(swipec>swipedx) { // Navigate back based on active status - if(is_entitypage03==1) + if(is_buttonpage03==1) { - page entitypage03 - }else if(is_entitypage02==1) + page buttonpage03 + }else if(is_buttonpage02==1) { - page entitypage02 - }else if(is_entitypage01==1) + page buttonpage02 + }else if(is_buttonpage01==1) { - page entitypage01 + page buttonpage01 }else { page home @@ -826,14 +830,14 @@ TouchCap swipe // From Up to Down if(swipec>100) { - if(is_entitypage03==1&&is_entitypage02==1) + if(is_buttonpage03==1&&is_buttonpage02==1) { - page entitypage02 - }else if(is_entitypage03==1||is_entitypage02==1) + page buttonpage02 + }else if(is_buttonpage03==1||is_buttonpage02==1) { - if(is_entitypage01==1) + if(is_buttonpage01==1) { - page entitypage01 + page buttonpage01 }else { page home @@ -844,19 +848,19 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Navigate back up the sequence based on active status - if(is_entitypage01==1) + if(is_buttonpage01==1) { - page entitypage01 - }else if(is_entitypage02==1) + page buttonpage01 + }else if(is_buttonpage02==1) { - page entitypage02 - }else if(is_entitypage03==1) + page buttonpage02 + }else if(is_buttonpage03==1) { - page entitypage03 + page buttonpage03 }else { page home diff --git a/hmi/dev/nspanel_eu_code/entitypage01.txt b/hmi/dev/nspanel_eu_code/entitypage01.txt index 3944cd8..2285229 100644 --- a/hmi/dev/nspanel_eu_code/entitypage01.txt +++ b/hmi/dev/nspanel_eu_code/entitypage01.txt @@ -374,6 +374,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -425,7 +429,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { if(is_entitypage02==1) // Check if entitypage02 is active diff --git a/hmi/dev/nspanel_eu_code/entitypage02.txt b/hmi/dev/nspanel_eu_code/entitypage02.txt index acaea22..f2f9e31 100644 --- a/hmi/dev/nspanel_eu_code/entitypage02.txt +++ b/hmi/dev/nspanel_eu_code/entitypage02.txt @@ -374,6 +374,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -431,7 +435,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { if(is_entitypage03==1&&is_entitypage04==1) diff --git a/hmi/dev/nspanel_eu_code/entitypage03.txt b/hmi/dev/nspanel_eu_code/entitypage03.txt index 428e485..28798f2 100644 --- a/hmi/dev/nspanel_eu_code/entitypage03.txt +++ b/hmi/dev/nspanel_eu_code/entitypage03.txt @@ -374,6 +374,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -425,7 +429,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { if(is_entitypage04==1) diff --git a/hmi/dev/nspanel_eu_code/entitypage04.txt b/hmi/dev/nspanel_eu_code/entitypage04.txt index d40e216..2a33fe9 100644 --- a/hmi/dev/nspanel_eu_code/entitypage04.txt +++ b/hmi/dev/nspanel_eu_code/entitypage04.txt @@ -374,6 +374,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -429,7 +433,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Navigate back up the sequence based on active status diff --git a/hmi/dev/nspanel_eu_code/home.txt b/hmi/dev/nspanel_eu_code/home.txt index e72affa..4991116 100644 --- a/hmi/dev/nspanel_eu_code/home.txt +++ b/hmi/dev/nspanel_eu_code/home.txt @@ -22,7 +22,7 @@ Page home prints "home",0 printh 00 printh FF FF FF - back_page_id=0 + back_page_id=1 if(qrcode.qrcode_value.txt=="") { vis bt_qrcode,0 @@ -83,15 +83,6 @@ Text indr_temp Text : Max. Text Size : 8 - Events - Touch Release Event - printh 92 - prints "localevent",0 - printh 00 - prints "{\"page\": \"home\", \"component\": \"climate\", \"event\": \"click\"}",0 - printh 00 - printh FF FF FF - Text outdoor_temp Attributes ID : 5 @@ -326,15 +317,6 @@ Text indr_temp_icon Text : Max. Text Size : 3 - Events - Touch Release Event - printh 92 - prints "localevent",0 - printh 00 - prints "{\"page\": \"home\", \"component\": \"climate\", \"event\": \"click\"}",0 - printh 00 - printh FF FF FF - Text bt_notific Attributes ID : 28 @@ -751,6 +733,10 @@ TouchCap swipe wakeup_timer.en=1 // Set brightness to saved value (from HA) Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -772,9 +758,6 @@ TouchCap swipe }else if(is_buttonpage01==1) { page buttonpage01 - }else - { - // Do nothing } } // Right to Left swipe now navigates to home, looping back to the start. @@ -794,9 +777,6 @@ TouchCap swipe }else if(is_buttonpage04==1) { page buttonpage04 - }else - { - // Do nothing } } } @@ -825,13 +805,10 @@ TouchCap swipe }else if(is_buttonpage02==1&&is_buttonpage01==1) { page buttonpage01 - }else - { - // Do nothing } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Navigate back up the sequence based on active status @@ -853,9 +830,6 @@ TouchCap swipe }else if(is_buttonpage03==1&&is_buttonpage04==1) { page buttonpage04 - }else - { - // Do nothing } } } diff --git a/hmi/dev/nspanel_eu_code/light.txt b/hmi/dev/nspanel_eu_code/light.txt index b68ce46..98b790a 100644 --- a/hmi/dev/nspanel_eu_code/light.txt +++ b/hmi/dev/nspanel_eu_code/light.txt @@ -383,7 +383,7 @@ Picture colorwheel covx b,va3.txt,0,0 lightsetting.txt="{\"page\": \"light\", \"component\": \"rgb_color\", \"value\": ["+va1.txt+", "+va2.txt+", "+va3.txt+"]}" printh 92 - prints "nspanelevent",0 + prints "localevent",0 printh 00 prints lightsetting.txt,0 printh 00 diff --git a/hmi/dev/nspanel_eu_code/screensaver.txt b/hmi/dev/nspanel_eu_code/screensaver.txt index e74eae1..87201fa 100644 --- a/hmi/dev/nspanel_eu_code/screensaver.txt +++ b/hmi/dev/nspanel_eu_code/screensaver.txt @@ -23,7 +23,7 @@ Page screensaver printh FF FF FF Touch Release Event - page back_page_id + page wakeup_page_id Text text Attributes @@ -69,7 +69,7 @@ TouchCap wakeup Events Touch Press Event - page back_page_id + page wakeup_page_id TouchCap swipe Attributes diff --git a/hmi/dev/nspanel_eu_code/utilities.txt b/hmi/dev/nspanel_eu_code/utilities.txt index dd54019..8ab0cd6 100644 --- a/hmi/dev/nspanel_eu_code/utilities.txt +++ b/hmi/dev/nspanel_eu_code/utilities.txt @@ -27,7 +27,7 @@ Page utilities printh 00 printh FF FF FF -Variable (int32) line_main_d +Variable (int32) home_line_d Attributes ID : 46 Scope: local @@ -419,7 +419,7 @@ Text group06b Text : Max. Text Size : 10 -Slider line_main +Slider home_line Attributes ID : 10 Scope : local @@ -530,19 +530,19 @@ Timer tm_movement Attributes ID : 45 Scope : local - Period (ms): 50 + Period (ms): 150 Enabled : yes Events Timer Event - //line_main - line_main.val+=line_main_d.val - if(line_main.val>=line_main.maxval) + //home_line + home_line.val+=home_line_d.val + if(home_line.val>=home_line.maxval) { - line_main.val=line_main.minval - }else if(line_main.val<=line_main.minval) + home_line.val=home_line.minval + }else if(home_line.val<=home_line.minval) { - line_main.val=line_main.maxval + home_line.val=home_line.maxval } //group01_line group01_line.val+=group01_line_d.val diff --git a/hmi/dev/nspanel_us_code/Program.s.txt b/hmi/dev/nspanel_us_code/Program.s.txt index 97bdfbf..9cb0564 100644 --- a/hmi/dev/nspanel_us_code/Program.s.txt +++ b/hmi/dev/nspanel_us_code/Program.s.txt @@ -7,6 +7,7 @@ Program.s int is_buttonpage01=0, is_buttonpage02=0, is_buttonpage03=0, is_buttonpage04=0 int is_entitypage01=0, is_entitypage02=0, is_entitypage03=0, is_entitypage04=0 int back_page_id=1 + int wakeup_page_id=1 int dimdelta=0 int api=0 // 0 = disconnected from HA, 1 = connected to HA int is_utilities=0 diff --git a/hmi/dev/nspanel_us_code/boot.txt b/hmi/dev/nspanel_us_code/boot.txt index 35aec93..bfe3194 100644 --- a/hmi/dev/nspanel_us_code/boot.txt +++ b/hmi/dev/nspanel_us_code/boot.txt @@ -96,7 +96,7 @@ Text tft_version Dragging : 0 Send Component ID : on press and release Associated Keyboard: none - Text : 4.3.1 + Text : 4.3.2 Max. Text Size : 9 Events diff --git a/hmi/dev/nspanel_us_code/buttonpage01.txt b/hmi/dev/nspanel_us_code/buttonpage01.txt index 7bf6975..7e8bc5c 100644 --- a/hmi/dev/nspanel_us_code/buttonpage01.txt +++ b/hmi/dev/nspanel_us_code/buttonpage01.txt @@ -789,6 +789,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -840,7 +844,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Assume starting from buttonpage01 and aiming to navigate two pages ahead based on active pages. diff --git a/hmi/dev/nspanel_us_code/buttonpage02.txt b/hmi/dev/nspanel_us_code/buttonpage02.txt index 7234ead..1af8c03 100644 --- a/hmi/dev/nspanel_us_code/buttonpage02.txt +++ b/hmi/dev/nspanel_us_code/buttonpage02.txt @@ -789,6 +789,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -846,7 +850,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { if(is_buttonpage03==1&&is_buttonpage04==1) diff --git a/hmi/dev/nspanel_us_code/buttonpage03.txt b/hmi/dev/nspanel_us_code/buttonpage03.txt index bb10da9..1ea3229 100644 --- a/hmi/dev/nspanel_us_code/buttonpage03.txt +++ b/hmi/dev/nspanel_us_code/buttonpage03.txt @@ -789,6 +789,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -842,7 +846,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Navigate back up the sequence based on active status diff --git a/hmi/dev/nspanel_us_code/buttonpage04.txt b/hmi/dev/nspanel_us_code/buttonpage04.txt index 76ba7d4..bae0ea1 100644 --- a/hmi/dev/nspanel_us_code/buttonpage04.txt +++ b/hmi/dev/nspanel_us_code/buttonpage04.txt @@ -789,6 +789,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -844,7 +848,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Navigate back up the sequence based on active status diff --git a/hmi/dev/nspanel_us_code/entitypage01.txt b/hmi/dev/nspanel_us_code/entitypage01.txt index 3944cd8..2285229 100644 --- a/hmi/dev/nspanel_us_code/entitypage01.txt +++ b/hmi/dev/nspanel_us_code/entitypage01.txt @@ -374,6 +374,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -425,7 +429,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { if(is_entitypage02==1) // Check if entitypage02 is active diff --git a/hmi/dev/nspanel_us_code/entitypage02.txt b/hmi/dev/nspanel_us_code/entitypage02.txt index acaea22..f2f9e31 100644 --- a/hmi/dev/nspanel_us_code/entitypage02.txt +++ b/hmi/dev/nspanel_us_code/entitypage02.txt @@ -374,6 +374,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -431,7 +435,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { if(is_entitypage03==1&&is_entitypage04==1) diff --git a/hmi/dev/nspanel_us_code/entitypage03.txt b/hmi/dev/nspanel_us_code/entitypage03.txt index f2a403d..f2e3c17 100644 --- a/hmi/dev/nspanel_us_code/entitypage03.txt +++ b/hmi/dev/nspanel_us_code/entitypage03.txt @@ -374,6 +374,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -425,7 +429,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { if(is_entitypage04==1) diff --git a/hmi/dev/nspanel_us_code/entitypage04.txt b/hmi/dev/nspanel_us_code/entitypage04.txt index d40e216..2a33fe9 100644 --- a/hmi/dev/nspanel_us_code/entitypage04.txt +++ b/hmi/dev/nspanel_us_code/entitypage04.txt @@ -374,6 +374,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -429,7 +433,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Navigate back up the sequence based on active status diff --git a/hmi/dev/nspanel_us_code/home.txt b/hmi/dev/nspanel_us_code/home.txt index 17e6b8d..48bab1e 100644 --- a/hmi/dev/nspanel_us_code/home.txt +++ b/hmi/dev/nspanel_us_code/home.txt @@ -22,7 +22,7 @@ Page home prints "home",0 printh 00 printh FF FF FF - back_page_id=0 + back_page_id=1 if(qrcode.qrcode_value.txt=="") { vis bt_qrcode,0 @@ -83,15 +83,6 @@ Text indr_temp Text : Max. Text Size : 8 - Events - Touch Release Event - printh 92 - prints "localevent",0 - printh 00 - prints "{\"page\": \"home\", \"component\": \"climate\", \"event\": \"click\"}",0 - printh 00 - printh FF FF FF - Text outdoor_temp Attributes ID : 5 @@ -326,15 +317,6 @@ Text indr_temp_icon Text : Max. Text Size : 3 - Events - Touch Release Event - printh 92 - prints "localevent",0 - printh 00 - prints "{\"page\": \"home\", \"component\": \"climate\", \"event\": \"click\"}",0 - printh 00 - printh FF FF FF - Text bt_notific Attributes ID : 28 @@ -751,6 +733,11 @@ TouchCap swipe wakeup_timer.en=1 // Set brightness to saved value (from HA) Touch Release Event + //New swipe + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -772,9 +759,6 @@ TouchCap swipe }else if(is_buttonpage01==1) { page buttonpage01 - }else - { - // Do nothing } } // Right to Left swipe now navigates to home, looping back to the start. @@ -794,9 +778,6 @@ TouchCap swipe }else if(is_buttonpage04==1) { page buttonpage04 - }else - { - // Do nothing } } } @@ -825,13 +806,10 @@ TouchCap swipe }else if(is_buttonpage02==1&&is_buttonpage01==1) { page buttonpage01 - }else - { - // Do nothing } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Navigate back up the sequence based on active status @@ -853,9 +831,6 @@ TouchCap swipe }else if(is_buttonpage03==1&&is_buttonpage04==1) { page buttonpage04 - }else - { - // Do nothing } } } diff --git a/hmi/dev/nspanel_us_code/light.txt b/hmi/dev/nspanel_us_code/light.txt index 337e204..9733d08 100644 --- a/hmi/dev/nspanel_us_code/light.txt +++ b/hmi/dev/nspanel_us_code/light.txt @@ -383,7 +383,7 @@ Picture colorwheel covx b,va3.txt,0,0 lightsetting.txt="{\"page\": \"light\", \"component\": \"rgb_color\", \"value\": ["+va1.txt+", "+va2.txt+", "+va3.txt+"]}" printh 92 - prints "nspanelevent",0 + prints "localevent",0 printh 00 prints lightsetting.txt,0 printh 00 diff --git a/hmi/dev/nspanel_us_code/screensaver.txt b/hmi/dev/nspanel_us_code/screensaver.txt index e74eae1..87201fa 100644 --- a/hmi/dev/nspanel_us_code/screensaver.txt +++ b/hmi/dev/nspanel_us_code/screensaver.txt @@ -23,7 +23,7 @@ Page screensaver printh FF FF FF Touch Release Event - page back_page_id + page wakeup_page_id Text text Attributes @@ -69,7 +69,7 @@ TouchCap wakeup Events Touch Press Event - page back_page_id + page wakeup_page_id TouchCap swipe Attributes diff --git a/hmi/dev/nspanel_us_code/utilities.txt b/hmi/dev/nspanel_us_code/utilities.txt index b1386de..9f028a1 100644 --- a/hmi/dev/nspanel_us_code/utilities.txt +++ b/hmi/dev/nspanel_us_code/utilities.txt @@ -27,7 +27,7 @@ Page utilities printh 00 printh FF FF FF -Variable (int32) line_main_d +Variable (int32) home_line_d Attributes ID : 46 Scope: local @@ -419,7 +419,7 @@ Text group06b Text : Max. Text Size : 10 -Slider line_main +Slider home_line Attributes ID : 10 Scope : local @@ -530,19 +530,19 @@ Timer tm_movement Attributes ID : 45 Scope : local - Period (ms): 50 + Period (ms): 150 Enabled : yes Events Timer Event //line_main - line_main.val+=line_main_d.val - if(line_main.val>=line_main.maxval) + home_line.val+=home_line_d.val + if(home_line.val>=home_line.maxval) { - line_main.val=line_main.minval - }else if(line_main.val<=line_main.minval) + home_line.val=home_line.minval + }else if(home_line.val<=home_line.minval) { - line_main.val=line_main.maxval + home_line.val=home_line.maxval } //group01_line group01_line.val+=group01_line_d.val diff --git a/hmi/dev/nspanel_us_land_code/Program.s.txt b/hmi/dev/nspanel_us_land_code/Program.s.txt index 3087457..44a8133 100644 --- a/hmi/dev/nspanel_us_land_code/Program.s.txt +++ b/hmi/dev/nspanel_us_land_code/Program.s.txt @@ -7,6 +7,7 @@ Program.s int is_buttonpage01=0, is_buttonpage02=0, is_buttonpage03=0, is_buttonpage04=0 int is_entitypage01=0, is_entitypage02=0, is_entitypage03=0, is_entitypage04=0 int back_page_id=1 + int wakeup_page_id=1 int dimdelta=0 int api=0 // 0 = disconnected from HA, 1 = connected to HA int is_utilities=0 diff --git a/hmi/dev/nspanel_us_land_code/boot.txt b/hmi/dev/nspanel_us_land_code/boot.txt index b08616f..cc0c3b2 100644 --- a/hmi/dev/nspanel_us_land_code/boot.txt +++ b/hmi/dev/nspanel_us_land_code/boot.txt @@ -96,7 +96,7 @@ Text tft_version Dragging : 0 Send Component ID : on press and release Associated Keyboard: none - Text : 4.3.1 + Text : 4.3.2 Max. Text Size : 9 Text esph_version diff --git a/hmi/dev/nspanel_us_land_code/buttonpage01.txt b/hmi/dev/nspanel_us_land_code/buttonpage01.txt index 7bf6975..7e8bc5c 100644 --- a/hmi/dev/nspanel_us_land_code/buttonpage01.txt +++ b/hmi/dev/nspanel_us_land_code/buttonpage01.txt @@ -789,6 +789,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -840,7 +844,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Assume starting from buttonpage01 and aiming to navigate two pages ahead based on active pages. diff --git a/hmi/dev/nspanel_us_land_code/buttonpage02.txt b/hmi/dev/nspanel_us_land_code/buttonpage02.txt index 7234ead..1af8c03 100644 --- a/hmi/dev/nspanel_us_land_code/buttonpage02.txt +++ b/hmi/dev/nspanel_us_land_code/buttonpage02.txt @@ -789,6 +789,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -846,7 +850,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { if(is_buttonpage03==1&&is_buttonpage04==1) diff --git a/hmi/dev/nspanel_us_land_code/buttonpage03.txt b/hmi/dev/nspanel_us_land_code/buttonpage03.txt index bb10da9..1ea3229 100644 --- a/hmi/dev/nspanel_us_land_code/buttonpage03.txt +++ b/hmi/dev/nspanel_us_land_code/buttonpage03.txt @@ -789,6 +789,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -842,7 +846,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Navigate back up the sequence based on active status diff --git a/hmi/dev/nspanel_us_land_code/buttonpage04.txt b/hmi/dev/nspanel_us_land_code/buttonpage04.txt index 10773be..7f5c3a0 100644 --- a/hmi/dev/nspanel_us_land_code/buttonpage04.txt +++ b/hmi/dev/nspanel_us_land_code/buttonpage04.txt @@ -789,6 +789,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -798,15 +802,15 @@ TouchCap swipe if(swipec>swipedx) { // Navigate back based on active status - if(is_entitypage03==1) + if(is_buttonpage03==1) { - page entitypage03 - }else if(is_entitypage02==1) + page buttonpage03 + }else if(is_buttonpage02==1) { - page entitypage02 - }else if(is_entitypage01==1) + page buttonpage02 + }else if(is_buttonpage01==1) { - page entitypage01 + page buttonpage01 }else { page home @@ -826,14 +830,14 @@ TouchCap swipe // From Up to Down if(swipec>100) { - if(is_entitypage03==1&&is_entitypage02==1) + if(is_buttonpage03==1&&is_buttonpage02==1) { - page entitypage02 - }else if(is_entitypage03==1||is_entitypage02==1) + page buttonpage02 + }else if(is_buttonpage03==1||is_buttonpage02==1) { - if(is_entitypage01==1) + if(is_buttonpage01==1) { - page entitypage01 + page buttonpage01 }else { page home @@ -844,19 +848,19 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Navigate back up the sequence based on active status - if(is_entitypage01==1) + if(is_buttonpage01==1) { - page entitypage01 - }else if(is_entitypage02==1) + page buttonpage01 + }else if(is_buttonpage02==1) { - page entitypage02 - }else if(is_entitypage03==1) + page buttonpage02 + }else if(is_buttonpage03==1) { - page entitypage03 + page buttonpage03 }else { page home diff --git a/hmi/dev/nspanel_us_land_code/entitypage01.txt b/hmi/dev/nspanel_us_land_code/entitypage01.txt index 3944cd8..2285229 100644 --- a/hmi/dev/nspanel_us_land_code/entitypage01.txt +++ b/hmi/dev/nspanel_us_land_code/entitypage01.txt @@ -374,6 +374,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -425,7 +429,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { if(is_entitypage02==1) // Check if entitypage02 is active diff --git a/hmi/dev/nspanel_us_land_code/entitypage02.txt b/hmi/dev/nspanel_us_land_code/entitypage02.txt index acaea22..f2f9e31 100644 --- a/hmi/dev/nspanel_us_land_code/entitypage02.txt +++ b/hmi/dev/nspanel_us_land_code/entitypage02.txt @@ -374,6 +374,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -431,7 +435,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { if(is_entitypage03==1&&is_entitypage04==1) diff --git a/hmi/dev/nspanel_us_land_code/entitypage03.txt b/hmi/dev/nspanel_us_land_code/entitypage03.txt index 428e485..28798f2 100644 --- a/hmi/dev/nspanel_us_land_code/entitypage03.txt +++ b/hmi/dev/nspanel_us_land_code/entitypage03.txt @@ -374,6 +374,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -425,7 +429,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { if(is_entitypage04==1) diff --git a/hmi/dev/nspanel_us_land_code/entitypage04.txt b/hmi/dev/nspanel_us_land_code/entitypage04.txt index d40e216..2a33fe9 100644 --- a/hmi/dev/nspanel_us_land_code/entitypage04.txt +++ b/hmi/dev/nspanel_us_land_code/entitypage04.txt @@ -374,6 +374,10 @@ TouchCap swipe swipestore.en=1 // Start swipestore timer Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -429,7 +433,7 @@ TouchCap swipe } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Navigate back up the sequence based on active status diff --git a/hmi/dev/nspanel_us_land_code/home.txt b/hmi/dev/nspanel_us_land_code/home.txt index e72affa..4991116 100644 --- a/hmi/dev/nspanel_us_land_code/home.txt +++ b/hmi/dev/nspanel_us_land_code/home.txt @@ -22,7 +22,7 @@ Page home prints "home",0 printh 00 printh FF FF FF - back_page_id=0 + back_page_id=1 if(qrcode.qrcode_value.txt=="") { vis bt_qrcode,0 @@ -83,15 +83,6 @@ Text indr_temp Text : Max. Text Size : 8 - Events - Touch Release Event - printh 92 - prints "localevent",0 - printh 00 - prints "{\"page\": \"home\", \"component\": \"climate\", \"event\": \"click\"}",0 - printh 00 - printh FF FF FF - Text outdoor_temp Attributes ID : 5 @@ -326,15 +317,6 @@ Text indr_temp_icon Text : Max. Text Size : 3 - Events - Touch Release Event - printh 92 - prints "localevent",0 - printh 00 - prints "{\"page\": \"home\", \"component\": \"climate\", \"event\": \"click\"}",0 - printh 00 - printh FF FF FF - Text bt_notific Attributes ID : 28 @@ -751,6 +733,10 @@ TouchCap swipe wakeup_timer.en=1 // Set brightness to saved value (from HA) Touch Release Event + if(api==0) + { + page home + } swipestore.en=0 // Touch has ended, x if(tch0==0) @@ -772,9 +758,6 @@ TouchCap swipe }else if(is_buttonpage01==1) { page buttonpage01 - }else - { - // Do nothing } } // Right to Left swipe now navigates to home, looping back to the start. @@ -794,9 +777,6 @@ TouchCap swipe }else if(is_buttonpage04==1) { page buttonpage04 - }else - { - // Do nothing } } } @@ -825,13 +805,10 @@ TouchCap swipe }else if(is_buttonpage02==1&&is_buttonpage01==1) { page buttonpage01 - }else - { - // Do nothing } } // Down to Up - swipec=0-swipedy + swipec2=0-swipedy if(swipec<-100) { // Navigate back up the sequence based on active status @@ -853,9 +830,6 @@ TouchCap swipe }else if(is_buttonpage03==1&&is_buttonpage04==1) { page buttonpage04 - }else - { - // Do nothing } } } diff --git a/hmi/dev/nspanel_us_land_code/light.txt b/hmi/dev/nspanel_us_land_code/light.txt index b68ce46..98b790a 100644 --- a/hmi/dev/nspanel_us_land_code/light.txt +++ b/hmi/dev/nspanel_us_land_code/light.txt @@ -383,7 +383,7 @@ Picture colorwheel covx b,va3.txt,0,0 lightsetting.txt="{\"page\": \"light\", \"component\": \"rgb_color\", \"value\": ["+va1.txt+", "+va2.txt+", "+va3.txt+"]}" printh 92 - prints "nspanelevent",0 + prints "localevent",0 printh 00 prints lightsetting.txt,0 printh 00 diff --git a/hmi/dev/nspanel_us_land_code/screensaver.txt b/hmi/dev/nspanel_us_land_code/screensaver.txt index e74eae1..87201fa 100644 --- a/hmi/dev/nspanel_us_land_code/screensaver.txt +++ b/hmi/dev/nspanel_us_land_code/screensaver.txt @@ -23,7 +23,7 @@ Page screensaver printh FF FF FF Touch Release Event - page back_page_id + page wakeup_page_id Text text Attributes @@ -69,7 +69,7 @@ TouchCap wakeup Events Touch Press Event - page back_page_id + page wakeup_page_id TouchCap swipe Attributes diff --git a/hmi/dev/nspanel_us_land_code/utilities.txt b/hmi/dev/nspanel_us_land_code/utilities.txt index dd54019..8ab0cd6 100644 --- a/hmi/dev/nspanel_us_land_code/utilities.txt +++ b/hmi/dev/nspanel_us_land_code/utilities.txt @@ -27,7 +27,7 @@ Page utilities printh 00 printh FF FF FF -Variable (int32) line_main_d +Variable (int32) home_line_d Attributes ID : 46 Scope: local @@ -419,7 +419,7 @@ Text group06b Text : Max. Text Size : 10 -Slider line_main +Slider home_line Attributes ID : 10 Scope : local @@ -530,19 +530,19 @@ Timer tm_movement Attributes ID : 45 Scope : local - Period (ms): 50 + Period (ms): 150 Enabled : yes Events Timer Event - //line_main - line_main.val+=line_main_d.val - if(line_main.val>=line_main.maxval) + //home_line + home_line.val+=home_line_d.val + if(home_line.val>=home_line.maxval) { - line_main.val=line_main.minval - }else if(line_main.val<=line_main.minval) + home_line.val=home_line.minval + }else if(home_line.val<=home_line.minval) { - line_main.val=line_main.maxval + home_line.val=home_line.maxval } //group01_line group01_line.val+=group01_line_d.val diff --git a/hmi/nspanel_CJK_eu.HMI b/hmi/nspanel_CJK_eu.HMI index 2838877..afdc4dc 100644 Binary files a/hmi/nspanel_CJK_eu.HMI and b/hmi/nspanel_CJK_eu.HMI differ diff --git a/hmi/nspanel_CJK_eu.tft b/hmi/nspanel_CJK_eu.tft index 1c41d39..5cfee98 100644 Binary files a/hmi/nspanel_CJK_eu.tft and b/hmi/nspanel_CJK_eu.tft differ diff --git a/hmi/nspanel_CJK_us.HMI b/hmi/nspanel_CJK_us.HMI index 13d6560..4135cf7 100644 Binary files a/hmi/nspanel_CJK_us.HMI and b/hmi/nspanel_CJK_us.HMI differ diff --git a/hmi/nspanel_CJK_us.tft b/hmi/nspanel_CJK_us.tft index fc1251e..9888856 100644 Binary files a/hmi/nspanel_CJK_us.tft and b/hmi/nspanel_CJK_us.tft differ diff --git a/hmi/nspanel_CJK_us_land.HMI b/hmi/nspanel_CJK_us_land.HMI index 71b1859..4baf7b3 100644 Binary files a/hmi/nspanel_CJK_us_land.HMI and b/hmi/nspanel_CJK_us_land.HMI differ diff --git a/hmi/nspanel_CJK_us_land.tft b/hmi/nspanel_CJK_us_land.tft index 94fcc2a..35f9018 100644 Binary files a/hmi/nspanel_CJK_us_land.tft and b/hmi/nspanel_CJK_us_land.tft differ diff --git a/hmi/nspanel_eu.HMI b/hmi/nspanel_eu.HMI index 5ab51ec..7379cc2 100644 Binary files a/hmi/nspanel_eu.HMI and b/hmi/nspanel_eu.HMI differ diff --git a/hmi/nspanel_eu.tft b/hmi/nspanel_eu.tft index e310f02..fcffd0d 100644 Binary files a/hmi/nspanel_eu.tft and b/hmi/nspanel_eu.tft differ diff --git a/hmi/nspanel_us.HMI b/hmi/nspanel_us.HMI index a68a76e..87a5ff9 100644 Binary files a/hmi/nspanel_us.HMI and b/hmi/nspanel_us.HMI differ diff --git a/hmi/nspanel_us.tft b/hmi/nspanel_us.tft index 04fb267..1fd5d19 100644 Binary files a/hmi/nspanel_us.tft and b/hmi/nspanel_us.tft differ diff --git a/hmi/nspanel_us_land.HMI b/hmi/nspanel_us_land.HMI index 0a3d822..c2046f1 100644 Binary files a/hmi/nspanel_us_land.HMI and b/hmi/nspanel_us_land.HMI differ diff --git a/hmi/nspanel_us_land.tft b/hmi/nspanel_us_land.tft index a27e412..bc12e99 100644 Binary files a/hmi/nspanel_us_land.tft and b/hmi/nspanel_us_land.tft differ diff --git a/nspanel_blueprint.yaml b/nspanel_blueprint.yaml index d03df1d..eb4b8a5 100644 --- a/nspanel_blueprint.yaml +++ b/nspanel_blueprint.yaml @@ -10,7 +10,7 @@ blueprint: description: > # NSPanel Configuration via Blueprint: Complete UI-Based Setup - **Version**: v4.3.1 + **Version**: v4.3.2 This project enables comprehensive configuration of your NSPanel through a Blueprint featuring a user interface. @@ -861,10 +861,32 @@ blueprint: default: [31, 169, 255] selector: *color_selector hw_buttons_bar_color_off: - name: Hardware baby-carriageuttons - Bar color when `Off` (Optional) + name: Hardware Buttons - Bar color when `Off` (Optional) description: "Choose a color for the button's bars when the controlled entity is `Off`." default: [44, 44, 44] selector: *color_selector + hw_button_bar_left_always_show: + name: Hardware Buttons - Left - Always Show Bar (Optional) + description: > + Controls the visibility of the **left** button bar. + By default, the bar is hidden when no entity is assigned. + Enabling this option keeps the bar visible at all times, showing the `Off` state by default. + + Note: The bar remains visible if an entity is assigned, regardless of this setting. + default: false + selector: + boolean: + hw_button_bar_right_always_show: + name: Hardware Buttons - Right - Always Show Bar (Optional) + description: > + Controls the visibility of the **right** button bar. + By default, the bar is hidden when no entity is assigned. + Enabling this option keeps the bar visible at all times, showing the `Off` state by default. + + Note: The bar remains visible if an entity is assigned, regardless of this setting. + default: false + selector: + boolean: relay_1_local_fallback: name: Activate relay 1 local fallback - Enable/Disable (Optional) default: false @@ -921,6 +943,28 @@ blueprint: default: [] selector: action: + left_button_state_entity: + name: Left hardware button - State Indicator Entity (Optional) + description: > + Specifies the entity reflecting the state of the left button's indicator bar. + + If not set, the state of the controlled entity itself will dictate the indicator's state. + default: [] + selector: &hardware-button-state-selector + entity: + filter: + domain: + - alarm_control_panel + - binary_sensor + - climate + - cover + - fan + - input_boolean + - light + - lock + - media_player + - remote + - switch left_button_color: name: Left hardware button - Text color description: "Choose a color for the button's display text." @@ -960,6 +1004,14 @@ blueprint: default: [] selector: action: + right_button_state_entity: + name: Right hardware button - State Indicator Entity (Optional) + description: > + Specifies the entity reflecting the state of the right button's indicator bar. + + If not set, the state of the controlled entity itself will dictate the indicator's state. + default: [] + selector: *hardware-button-state-selector right_button_color: name: Right hardware button - Text color description: "Choose a color for the button's display text." @@ -3060,7 +3112,6 @@ blueprint: default: ' ' selector: *placeholder-selector ##### PLACEHOLDER ###################################################################### - ##### TFT Folder ##### icon_color_fallback_on: name: Icon fallback color when state is "**ON**" description: > @@ -3098,21 +3149,35 @@ blueprint: value: '.' - label: ', (Comma)' value: ',' - + ##### Delay ##### + delay: + name: Command Delay to Prevent Overload + description: > + Adjusts the delay between sequential commands to the Nextion display, preventing overload and synchronization issues. + While increasing delay enhances stability, it may slow down page rendering. + default: 1 + selector: + number: + min: 0 + max: 100 + step: 1 + unit_of_measurement: milliseconds + mode: box ##### TFT Folder ##### tft_path: name: Nextion TFT File Folder (Optional) description: > - *SYSTEM settings* + Specify the path to the folder containing the Nextion TFT file. + Note that configuring the [Folder Watcher](https://www.home-assistant.io/integrations/folder_watcher/) in `configuration.yaml` is required for this path to be monitored. - *TFT Path where the Nextion TFT File is stored. + With this, the Blueprint will trigger a TFT upload every time a file on that folder changed. - Attention! The **"Folder-Watcher"** must also be configured in the configuration.yaml. + **Note:** - **Only necessary for manual upload of TFT file in ESPHome Advanced mode.** + - This is to be used together with the option `nextion_upload_tft` on the "Update TFT Display - Model" option on the device's page. - See HowTo* - default: [] + - This is a relative path on Home Assistant file system pointing to the www folder where you store your `nspanel_xxx.tft` files. Please do not use the url here. + default: "" selector: text: {} ##### Media player update ##### @@ -3176,14 +3241,28 @@ blueprint: domain: - binary_sensor device_class: + - door + - garage_door + - lock - motion - occupancy - - door + - opening + - smoke + - sound + - vibration + - window + ##### Sun entity + sun_entity: + name: System Settings - Sun Entity + description: "Select the entity that indicates the Sun's position." + default: "sun.sun" + selector: + entity: + filter: + domain: + - sun # yamllint enable rule:indentation rule:comments-indentation -############################################################# -##### CLOSE - INPUT ##### -############################################################# mode: parallel max: 50 @@ -3191,10 +3270,6 @@ max: 50 trace: stored_traces: 10 -############################################################# -##### START - Variables ##### -############################################################# - trigger_variables: nspanel_deviceid: !input nspanel_name nspanel_entities: '{{ device_entities(nspanel_deviceid) }}' @@ -3212,19 +3287,6 @@ trigger_variables: else ("sensor." ~ device_name ~ "_device_name") }} - left_button: > - {{ - nspanel_entities | selectattr(None, "search", "binary_sensor.*_left_button") | list | last - if nspanel_entities | selectattr(None, "search", "binary_sensor.*_left_button") | list | count > 0 - else ("binary_sensor." ~ device_name ~ "_left_button") - }} - right_button: > - {{ - nspanel_entities | selectattr(None, "search", "binary_sensor.*_right_button") | list | last - if nspanel_entities | selectattr(None, "search", "binary_sensor.*_right_button") | list | count > 0 - else ("binary_sensor." ~ device_name ~ "_right_button") - }} - relay01_entity: > {{ nspanel_entities | selectattr(None, "search", "switch.*_relay_1") | list | last @@ -3238,12 +3300,6 @@ trigger_variables: else ("switch." ~ device_name ~ "_relay_2") }} - blueprint_entity: > - {{ - nspanel_entities | selectattr(None, "search", "binary_sensor.*_blueprint") | list | last - if nspanel_entities | selectattr(None, "search", "binary_sensor.*_blueprint") | list | count > 0 - else ("binary_sensor." ~ device_name ~ "_blueprint") - }} currentpage: > {{ nspanel_entities | selectattr(None, "search", "sensor.*_current_page") | list | last @@ -3256,12 +3312,6 @@ trigger_variables: if nspanel_entities | selectattr(None, "search", "sensor.*_detailed_entity") | list | count > 0 else ("sensor." ~ device_name ~ "_detailed_entity") }} - nextion_inited: > - {{ - nspanel_entities | selectattr(None, "search", "binary_sensor.*_nextion_display") | list | last - if nspanel_entities | selectattr(None, "search", "binary_sensor.*_nextion_display") | list | count > 0 - else ("binary_sensor." ~ device_name ~ "_nextion_display") - }} nspaneltemp: > {{ @@ -3270,20 +3320,6 @@ trigger_variables: else ("sensor." ~ device_name ~ "_temperature") }} - notification_text: > - {{ - nspanel_entities | selectattr(None, "search", "sensor.*_notification_text") | list | last - if nspanel_entities | selectattr(None, "search", "sensor.*_notification_text") | list | count > 0 - else ("sensor." ~ device_name ~ "_notification_text") - }} - - notification_unread: > - {{ - nspanel_entities | selectattr(None, "search", "switch.*_notification_unread") | list | last - if nspanel_entities | selectattr(None, "search", "switch.*_notification_unread") | list | count > 0 - else ("switch." ~ device_name ~ "_notification_unread") - }} - thermostat_embedded: > {{ nspanel_entities | selectattr(None, "search", "climate.*_thermostat") | list | last @@ -3291,150 +3327,17 @@ trigger_variables: else ("climate." ~ device_name ~ "_thermostat") }} - home_page_background_update: !input home_page_background_update + utilities_line_reference: + page01: + main: !input utilities_page01_main_line_reference + group01: !input utilities_page01_group01_line_reference + group02: !input utilities_page01_group02_line_reference + group03: !input utilities_page01_group03_line_reference + group04: !input utilities_page01_group04_line_reference + group05: !input utilities_page01_group05_line_reference + group06: !input utilities_page01_group06_line_reference variables: - ##### GENERAL ##### - blueprint_version: '4.3.1' - date_format_temp: !input 'date_format' - # Avoid breaking change for existing users with legacy type format - date_format: '{{ date_format_temp if date_format_temp not in ["%d.%m", "%d/%m", "%-d/%-m", "%-m/%-d"] else "%A, " ~ date_format_temp }}' - - sun_is_up: '{{ is_state("sun.sun", "above_horizon") }}' - - # yamllint disable rule:line-length rule:braces - device_class_icons: - cover: { "awning-closed": "window-closed", "awning-closing": "arrow-down-box", "awning-open": "window-open", "awning-opening": "arrow-up-box", "blind-closed": "blinds-horizontal-closed", "blind-closing": "arrow-down-box", "blind-open": "blinds-horizontal", "blind-opening": "arrow-up-box", "curtain-closed": "curtains-closed", "curtains-closing": "arrow-collapse-horizontal", "curtains-open": "curtains-open", "arrow-split-vertical": "curtains-open", "damper-closed": "circle-slice-8", "damper-closing": "circle", "damper-open": "circle", "damper-opening": "circle", "door-closed": "door-closed", "door-closing": "door-open", "door-open": "door-open", "door-opening": "door-open", "garage-closed": "garage", "garage-closing": "arrow-down-box", "garage-open": "garage-open", "garage-opening": "arrow-up-box", "gate-closed": "gate", "gate-closing": "gate-arrow-right", "gate-open": "gate-open", "gate-opening": "gate-arrow-left", "shade-closed": "roller-shade-closed", "shade-closing": "arrow-down-box", "shade-open": "roller-shade", "shade-opening": "arrow-up-box", "shutter-closed": "window-shutter", "shutter-closing": "arrow-down-box", "shutter-open": "window-shutter-open", "shutter-opening": "arrow-up-box", "window-closed": "window-closed", "window-closing": "arrow-down-box", "window-open": "window-open", "window-opening": "arrow-up-box" } - binary_sensor: { "battery-on": "battery-outline", "battery-off": "battery", "battery_charging-on": "battery-charging", "battery_charging-off": "battery", "carbon_monoxide-on": "smoke-detector-alert", "carbon_monoxide-off": "smoke-detector", "cold-on": "snowflake", "cold-off": "thermometer", "connectivity-on": "check-network-outline", "connectivity-off": "close-network-outline", "door-on": "door-open", "door-off": "door-closed", "garage_door-on": "garage-open", "garage_door-off": "garage", "gas-on": "alert-circle", "gas-off": "check-circle", "heat-on": "fire", "heat-off": "thermometer", "light-on": "brightness-7", "light-off": "brightness-5", "lock-on": "lock-open", "lock-off": "lock", "moisture-on": "water", "moisture-off": "water-off", "motion-on": "motion-sensor", "motion-off": "motion-sensor-off", "moving-on": "octagon", "moving-off": "arrow-right", "occupancy-on": "home", "occupancy-off": "home-outline", "opening-on": "square-outline", "opening-off": "square", "plug-on": "power-plug", "plug-off": "power-plug-off", "power-on": "power-plug", "power-off": "power-plug-off", "presence-on": "home", "presence-off": "home-outline", "problem-on": "alert-circle", "problem-off": "check-circle", "running-on": "play", "running-off": "stop", "safety-on": "alert-circle", "safety-off": "check-circle", "smoke-on": "smoke-detector-variant-alert", "smoke-off": "smoke-detector-variant", "sound-on": "music-note", "sound-off": "music-note-off", "tamper-on": "alert-circle", "tamper-off": "check-circle", "update-on": "package-up", "update-off": "package", "vibration-on": "vibrate", "vibration-off": "crop-portrait", "window-on": "window-open", "window-off": "window-closed" } - sensor: { "apparent_power": "flash", "aqi": "air-filter", "atmospheric_pressure": "thermometer-lines", "battery": "battery", "carbon_dioxide": "molecule-co2", "carbon_monoxide": "molecule-co", "current": "current-ac", "data_rate": "transmission-tower", "data_size": "database", "date": "calendar", "distance": "arrow-left-right", "duration": "progress-clock", "energy": "lightning-bolt", "energy_storage": "car-battery", "enum": "eye", "frequency": "sine-wave", "gas": "meter-gas", "humidity": "water-percent", "illuminance": "brightness-5", "irradiance": "sun-wireless", "moisture": "water-percent", "monetary": "cash", "nitrogen_dioxide": "molecule", "nitrogen_monoxide": "molecule", "nitrous_oxide": "molecule", "ozone": "molecule", "ph": "ph", "pm1": "molecule", "pm10": "molecule", "pm25": "molecule", "power": "flash", "power_factor": "angle-acute", "precipitation": "weather-rainy", "precipitation_intensity": "weather-pouring", "pressure": "gauge", "reactive_power": "flash", "signal_strength": "wifi", "sound_pressure": "ear-hearing", "speed": "speedometer", "sulphur_dioxide": "molecule", "temperature": "thermometer", "timestamp": "clock", "volatile_organic_compounds": "molecule", "volatile_organic_compounds_parts": "molecule", "voltage": "sine-wave", "volume": "car-coolant-level", "water": "water", "weight": "weight", "wind_speed": "weather-windy" } - switch: { "outlet-on": "power-plug", "outlet-off": "power-plug-off", "switch-on": "toggle-switch-variant", "switch-off": toggle-switch-variant-off" } - all_icons: { blank: "\uFFFF", unknown: "\uE027", unavailable: "\uE027", ab-testing: "\uE1C8", abacus: "\uF6DF", abjad-arabic: "\uF327", abjad-hebrew: "\uF328", abugida-devanagari: "\uF329", abugida-thai: "\uF32A", access-point: "\uE002", access-point-check: "\uF537", access-point-minus: "\uF538", access-point-network: "\uE001", access-point-network-off: "\uEBE0", access-point-off: "\uF510", access-point-plus: "\uF539", access-point-remove: "\uF53A", account: "\uE003", account-alert: "\uE004", account-alert-outline: "\uEB4F", account-arrow-down: "\uF867", account-arrow-down-outline: "\uF868", account-arrow-left: "\uEB50", account-arrow-left-outline: "\uEB51", account-arrow-right: "\uEB52", account-arrow-right-outline: "\uEB53", account-arrow-up: "\uF866", account-arrow-up-outline: "\uF869", account-box: "\uE005", account-box-multiple: "\uE933", account-box-multiple-outline: "\uF009", account-box-outline: "\uE006", account-cancel: "\uF2DE", account-cancel-outline: "\uF2DF", account-cash: "\uF096", account-cash-outline: "\uF097", account-check: "\uE007", account-check-outline: "\uEBE1", account-child: "\uEA88", account-child-circle: "\uEA89", account-child-outline: "\uF0C7", account-circle: "\uE008", account-circle-outline: "\uEB54", account-clock: "\uEB55", account-clock-outline: "\uEB56", account-cog: "\uF36F", account-cog-outline: "\uF370", account-convert: "\uE009", account-convert-outline: "\uF300", account-cowboy-hat: "\uEE9A", account-cowboy-hat-outline: "\uF7F2", account-details: "\uE630", account-details-outline: "\uF371", account-edit: "\uE6BB", account-edit-outline: "\uEFFA", account-eye: "\uE41F", account-eye-outline: "\uF27A", account-filter: "\uE935", account-filter-outline: "\uEF9C", account-group: "\uE848", account-group-outline: "\uEB57", account-hard-hat: "\uE5B4", account-hard-hat-outline: "\uFA1E", account-heart: "\uE898", account-heart-outline: "\uEBE2", account-injury: "\uF814", account-injury-outline: "\uF815", account-key: "\uE00A", account-key-outline: "\uEBE3", account-lock: "\uF15D", account-lock-open: "\uF95F", account-lock-open-outline: "\uF960", account-lock-outline: "\uF15E", account-minus: "\uE00C", account-minus-outline: "\uEAEB", account-multiple: "\uE00D", account-multiple-check: "\uE8C4", account-multiple-check-outline: "\uF1FD", account-multiple-minus: "\uE5D2", account-multiple-minus-outline: "\uEBE4", account-multiple-outline: "\uE00E", account-multiple-plus: "\uE00F", account-multiple-plus-outline: "\uE7FF", account-multiple-remove: "\uF209", account-multiple-remove-outline: "\uF20A", account-music: "\uE802", account-music-outline: "\uECE8", account-network: "\uE010", account-network-outline: "\uEBE5", account-off: "\uE011", account-off-outline: "\uEBE6", account-outline: "\uE012", account-plus: "\uE013", account-plus-outline: "\uE800", account-question: "\uEB58", account-question-outline: "\uEB59", account-reactivate: "\uF52A", account-reactivate-outline: "\uF52B", account-remove: "\uE014", account-remove-outline: "\uEAEC", account-school: "\uFA1F", account-school-outline: "\uFA20", account-search: "\uE015", account-search-outline: "\uE934", account-settings: "\uE62F", account-settings-outline: "\uF0C8", account-star: "\uE016", account-star-outline: "\uEBE7", account-supervisor: "\uEA8A", account-supervisor-circle: "\uEA8B", account-supervisor-circle-outline: "\uF4EB", account-supervisor-outline: "\uF12C", account-switch: "\uE018", account-switch-outline: "\uE4CA", account-sync: "\uF91A", account-sync-outline: "\uF91B", account-tie: "\uECE2", account-tie-hat: "\uF897", account-tie-hat-outline: "\uF898", account-tie-outline: "\uF0C9", account-tie-voice: "\uF307", account-tie-voice-off: "\uF309", account-tie-voice-off-outline: "\uF30A", account-tie-voice-outline: "\uF308", account-tie-woman: "\uFA8B", account-voice: "\uE5CA", account-voice-off: "\uEED3", account-wrench: "\uF899", account-wrench-outline: "\uF89A", adjust: "\uE019", advertisements: "\uF929", advertisements-off: "\uF92A", air-conditioner: "\uE01A", air-filter: "\uED42", air-horn: "\uEDAB", air-humidifier: "\uF098", air-humidifier-off: "\uF465", air-purifier: "\uED43", airbag: "\uEBE8", airballoon: "\uE01B", airballoon-outline: "\uF00A", airplane: "\uE01C", airplane-alert: "\uF879", airplane-check: "\uF87A", airplane-clock: "\uF87B", airplane-cog: "\uF87C", airplane-edit: "\uF87D", airplane-landing: "\uE5D3", airplane-marker: "\uF87E", airplane-minus: "\uF87F", airplane-off: "\uE01D", airplane-plus: "\uF880", airplane-remove: "\uF881", airplane-search: "\uF882", airplane-settings: "\uF883", airplane-takeoff: "\uE5D4", airport: "\uE84A", alarm: "\uE01F", alarm-bell: "\uE78D", alarm-check: "\uE020", alarm-light: "\uE78E", alarm-light-off: "\uF71D", alarm-light-off-outline: "\uF71E", alarm-light-outline: "\uEBE9", alarm-multiple: "\uE021", alarm-note: "\uEE70", alarm-note-off: "\uEE71", alarm-off: "\uE022", alarm-panel: "\uF5C3", alarm-panel-outline: "\uF5C4", alarm-plus: "\uE023", alarm-snooze: "\uE68D", album: "\uE024", alert: "\uE025", alert-box: "\uE026", alert-box-outline: "\uECE3", alert-circle: "\uE027", alert-circle-check: "\uF1EC", alert-circle-check-outline: "\uF1ED", alert-circle-outline: "\uE5D5", alert-decagram: "\uE6BC", alert-decagram-outline: "\uECE4", alert-minus: "\uF4BA", alert-minus-outline: "\uF4BD", alert-octagon: "\uE028", alert-octagon-outline: "\uECE5", alert-octagram: "\uE766", alert-octagram-outline: "\uECE6", alert-outline: "\uE029", alert-plus: "\uF4B9", alert-plus-outline: "\uF4BC", alert-remove: "\uF4BB", alert-remove-outline: "\uF4BE", alert-rhombus: "\uF1CD", alert-rhombus-outline: "\uF1CE", alien: "\uE899", alien-outline: "\uF0CA", align-horizontal-center: "\uF1C2", align-horizontal-distribute: "\uF961", align-horizontal-left: "\uF1C1", align-horizontal-right: "\uF1C3", align-vertical-bottom: "\uF1C4", align-vertical-center: "\uF1C5", align-vertical-distribute: "\uF962", align-vertical-top: "\uF1C6", all-inclusive: "\uE6BD", all-inclusive-box: "\uF88C", all-inclusive-box-outline: "\uF88D", allergy: "\uF257", alpha: "\uE02A", alpha-a: "\uEAED", alpha-a-box: "\uEB07", alpha-a-box-outline: "\uEBEA", alpha-a-circle: "\uEBEB", alpha-a-circle-outline: "\uEBEC", alpha-b: "\uEAEE", alpha-b-box: "\uEB08", alpha-b-box-outline: "\uEBED", alpha-b-circle: "\uEBEE", alpha-b-circle-outline: "\uEBEF", alpha-c: "\uEAEF", alpha-c-box: "\uEB09", alpha-c-box-outline: "\uEBF0", alpha-c-circle: "\uEBF1", alpha-c-circle-outline: "\uEBF2", alpha-d: "\uEAF0", alpha-d-box: "\uEB0A", alpha-d-box-outline: "\uEBF3", alpha-d-circle: "\uEBF4", alpha-d-circle-outline: "\uEBF5", alpha-e: "\uEAF1", alpha-e-box: "\uEB0B", alpha-e-box-outline: "\uEBF6", alpha-e-circle: "\uEBF7", alpha-e-circle-outline: "\uEBF8", alpha-f: "\uEAF2", alpha-f-box: "\uEB0C", alpha-f-box-outline: "\uEBF9", alpha-f-circle: "\uEBFA", alpha-f-circle-outline: "\uEBFB", alpha-g: "\uEAF3", alpha-g-box: "\uEB0D", alpha-g-box-outline: "\uEBFC", alpha-g-circle: "\uEBFD", alpha-g-circle-outline: "\uEBFE", alpha-h: "\uEAF4", alpha-h-box: "\uEB0E", alpha-h-box-outline: "\uEBFF", alpha-h-circle: "\uEC00", alpha-h-circle-outline: "\uEC01", alpha-i: "\uEAF5", alpha-i-box: "\uEB0F", alpha-i-box-outline: "\uEC02", alpha-i-circle: "\uEC03", alpha-i-circle-outline: "\uEC04", alpha-j: "\uEAF6", alpha-j-box: "\uEB10", alpha-j-box-outline: "\uEC05", alpha-j-circle: "\uEC06", alpha-j-circle-outline: "\uEC07", alpha-k: "\uEAF7", alpha-k-box: "\uEB11", alpha-k-box-outline: "\uEC08", alpha-k-circle: "\uEC09", alpha-k-circle-outline: "\uEC0A", alpha-l: "\uEAF8", alpha-l-box: "\uEB12", alpha-l-box-outline: "\uEC0B", alpha-l-circle: "\uEC0C", alpha-l-circle-outline: "\uEC0D", alpha-m: "\uEAF9", alpha-m-box: "\uEB13", alpha-m-box-outline: "\uEC0E", alpha-m-circle: "\uEC0F", alpha-m-circle-outline: "\uEC10", alpha-n: "\uEAFA", alpha-n-box: "\uEB14", alpha-n-box-outline: "\uEC11", alpha-n-circle: "\uEC12", alpha-n-circle-outline: "\uEC13", alpha-o: "\uEAFB", alpha-o-box: "\uEB15", alpha-o-box-outline: "\uEC14", alpha-o-circle: "\uEC15", alpha-o-circle-outline: "\uEC16", alpha-p: "\uEAFC", alpha-p-box: "\uEB16", alpha-p-box-outline: "\uEC17", alpha-p-circle: "\uEC18", alpha-p-circle-outline: "\uEC19", alpha-q: "\uEAFD", alpha-q-box: "\uEB17", alpha-q-box-outline: "\uEC1A", alpha-q-circle: "\uEC1B", alpha-q-circle-outline: "\uEC1C", alpha-r: "\uEAFE", alpha-r-box: "\uEB18", alpha-r-box-outline: "\uEC1D", alpha-r-circle: "\uEC1E", alpha-r-circle-outline: "\uEC1F", alpha-s: "\uEAFF", alpha-s-box: "\uEB19", alpha-s-box-outline: "\uEC20", alpha-s-circle: "\uEC21", alpha-s-circle-outline: "\uEC22", alpha-t: "\uEB00", alpha-t-box: "\uEB1A", alpha-t-box-outline: "\uEC23", alpha-t-circle: "\uEC24", alpha-t-circle-outline: "\uEC25", alpha-u: "\uEB01", alpha-u-box: "\uEB1B", alpha-u-box-outline: "\uEC26", alpha-u-circle: "\uEC27", alpha-u-circle-outline: "\uEC28", alpha-v: "\uEB02", alpha-v-box: "\uEB1C", alpha-v-box-outline: "\uEC29", alpha-v-circle: "\uEC2A", alpha-v-circle-outline: "\uEC2B", alpha-w: "\uEB03", alpha-w-box: "\uEB1D", alpha-w-box-outline: "\uEC2C", alpha-w-circle: "\uEC2D", alpha-w-circle-outline: "\uEC2E", alpha-x: "\uEB04", alpha-x-box: "\uEB1E", alpha-x-box-outline: "\uEC2F", alpha-x-circle: "\uEC30", alpha-x-circle-outline: "\uEC31", alpha-y: "\uEB05", alpha-y-box: "\uEB1F", alpha-y-box-outline: "\uEC32", alpha-y-circle: "\uEC33", alpha-y-circle-outline: "\uEC34", alpha-z: "\uEB06", alpha-z-box: "\uEB20", alpha-z-box-outline: "\uEC35", alpha-z-circle: "\uEC36", alpha-z-circle-outline: "\uEC37", alphabet-aurebesh: "\uF32B", alphabet-cyrillic: "\uF32C", alphabet-greek: "\uF32D", alphabet-latin: "\uF32E", alphabet-piqad: "\uF32F", alphabet-tengwar: "\uF336", alphabetical: "\uE02B", alphabetical-off: "\uF00B", alphabetical-variant: "\uF00C", alphabetical-variant-off: "\uF00D", altimeter: "\uE5D6", ambulance: "\uE02E", ammunition: "\uECE7", ampersand: "\uEA8C", amplifier: "\uE02F", amplifier-off: "\uF1B4", anchor: "\uE030", android: "\uE031", android-messages: "\uED44", android-studio: "\uE033", angle-acute: "\uE936", angle-obtuse: "\uE937", angle-right: "\uE938", angular: "\uE6B1", angularjs: "\uE6BE", animation: "\uE5D7", animation-outline: "\uEA8E", animation-play: "\uE939", animation-play-outline: "\uEA8F", ansible: "\uF099", antenna: "\uF118", anvil: "\uE89A", apache-kafka: "\uF00E", api: "\uF09A", api-off: "\uF256", apple: "\uE034", apple-finder: "\uE035", apple-icloud: "\uE037", apple-ios: "\uE036", apple-keyboard-caps: "\uE631", apple-keyboard-command: "\uE632", apple-keyboard-control: "\uE633", apple-keyboard-option: "\uE634", apple-keyboard-shift: "\uE635", apple-safari: "\uE038", application: "\uE8C5", application-array: "\uF0F4", application-array-outline: "\uF0F5", application-braces: "\uF0F6", application-braces-outline: "\uF0F7", application-brackets: "\uEC8A", application-brackets-outline: "\uEC8B", application-cog: "\uE674", application-cog-outline: "\uF576", application-edit: "\uE0AD", application-edit-outline: "\uE618", application-export: "\uEDAC", application-import: "\uEDAD", application-outline: "\uE613", application-parentheses: "\uF0F8", application-parentheses-outline: "\uF0F9", application-settings: "\uEB5F", application-settings-outline: "\uF554", application-variable: "\uF0FA", application-variable-outline: "\uF0FB", approximately-equal: "\uEF9D", approximately-equal-box: "\uEF9E", apps: "\uE03A", apps-box: "\uED45", arch: "\uE8C6", archive: "\uE03B", archive-alert: "\uF4FC", archive-alert-outline: "\uF4FD", archive-arrow-down: "\uF258", archive-arrow-down-outline: "\uF259", archive-arrow-up: "\uF25A", archive-arrow-up-outline: "\uF25B", archive-cancel: "\uF74A", archive-cancel-outline: "\uF74B", archive-check: "\uF74C", archive-check-outline: "\uF74D", archive-clock: "\uF74E", archive-clock-outline: "\uF74F", archive-cog: "\uF750", archive-cog-outline: "\uF751", archive-edit: "\uF752", archive-edit-outline: "\uF753", archive-eye: "\uF754", archive-eye-outline: "\uF755", archive-lock: "\uF756", archive-lock-open: "\uF757", archive-lock-open-outline: "\uF758", archive-lock-outline: "\uF759", archive-marker: "\uF75A", archive-marker-outline: "\uF75B", archive-minus: "\uF75C", archive-minus-outline: "\uF75D", archive-music: "\uF75E", archive-music-outline: "\uF75F", archive-off: "\uF760", archive-off-outline: "\uF761", archive-outline: "\uF20D", archive-plus: "\uF762", archive-plus-outline: "\uF763", archive-refresh: "\uF764", archive-refresh-outline: "\uF765", archive-remove: "\uF766", archive-remove-outline: "\uF767", archive-search: "\uF768", archive-search-outline: "\uF769", archive-settings: "\uF76A", archive-settings-outline: "\uF76B", archive-star: "\uF76C", archive-star-outline: "\uF76D", archive-sync: "\uF76E", archive-sync-outline: "\uF76F", arm-flex: "\uEFD6", arm-flex-outline: "\uEFD5", arrange-bring-forward: "\uE03C", arrange-bring-to-front: "\uE03D", arrange-send-backward: "\uE03E", arrange-send-to-back: "\uE03F", arrow-all: "\uE040", arrow-bottom-left: "\uE041", arrow-bottom-left-bold-box: "\uF963", arrow-bottom-left-bold-box-outline: "\uF964", arrow-bottom-left-bold-outline: "\uE9B6", arrow-bottom-left-thick: "\uE9B7", arrow-bottom-left-thin: "\uF9B5", arrow-bottom-left-thin-circle-outline: "\uF595", arrow-bottom-right: "\uE042", arrow-bottom-right-bold-box: "\uF965", arrow-bottom-right-bold-box-outline: "\uF966", arrow-bottom-right-bold-outline: "\uE9B8", arrow-bottom-right-thick: "\uE9B9", arrow-bottom-right-thin: "\uF9B6", arrow-bottom-right-thin-circle-outline: "\uF594", arrow-collapse: "\uE614", arrow-collapse-all: "\uE043", arrow-collapse-down: "\uE791", arrow-collapse-horizontal: "\uE84B", arrow-collapse-left: "\uE792", arrow-collapse-right: "\uE793", arrow-collapse-up: "\uE794", arrow-collapse-vertical: "\uE84C", arrow-decision: "\uE9BA", arrow-decision-auto: "\uE9BB", arrow-decision-auto-outline: "\uE9BC", arrow-decision-outline: "\uE9BD", arrow-down: "\uE044", arrow-down-bold: "\uE72D", arrow-down-bold-box: "\uE72E", arrow-down-bold-box-outline: "\uE72F", arrow-down-bold-circle: "\uE046", arrow-down-bold-circle-outline: "\uE047", arrow-down-bold-hexagon-outline: "\uE048", arrow-down-bold-outline: "\uE9BE", arrow-down-box: "\uE6BF", arrow-down-circle: "\uECDA", arrow-down-circle-outline: "\uECDB", arrow-down-drop-circle: "\uE049", arrow-down-drop-circle-outline: "\uE04A", arrow-down-left: "\uF7A0", arrow-down-left-bold: "\uF7A1", arrow-down-right: "\uF7A2", arrow-down-right-bold: "\uF7A3", arrow-down-thick: "\uE045", arrow-down-thin: "\uF9B2", arrow-down-thin-circle-outline: "\uF598", arrow-expand: "\uE615", arrow-expand-all: "\uE04B", arrow-expand-down: "\uE795", arrow-expand-horizontal: "\uE84D", arrow-expand-left: "\uE796", arrow-expand-right: "\uE797", arrow-expand-up: "\uE798", arrow-expand-vertical: "\uE84E", arrow-horizontal-lock: "\uF15A", arrow-left: "\uE04C", arrow-left-bold: "\uE730", arrow-left-bold-box: "\uE731", arrow-left-bold-box-outline: "\uE732", arrow-left-bold-circle: "\uE04E", arrow-left-bold-circle-outline: "\uE04F", arrow-left-bold-hexagon-outline: "\uE050", arrow-left-bold-outline: "\uE9BF", arrow-left-bottom: "\uF7A4", arrow-left-bottom-bold: "\uF7A5", arrow-left-box: "\uE6C0", arrow-left-circle: "\uECDC", arrow-left-circle-outline: "\uECDD", arrow-left-drop-circle: "\uE051", arrow-left-drop-circle-outline: "\uE052", arrow-left-right: "\uEE72", arrow-left-right-bold: "\uEE73", arrow-left-right-bold-outline: "\uE9C0", arrow-left-thick: "\uE04D", arrow-left-thin: "\uF9B0", arrow-left-thin-circle-outline: "\uF599", arrow-left-top: "\uF7A6", arrow-left-top-bold: "\uF7A7", arrow-projectile: "\uF83F", arrow-projectile-multiple: "\uF83E", arrow-right: "\uE053", arrow-right-bold: "\uE733", arrow-right-bold-box: "\uE734", arrow-right-bold-box-outline: "\uE735", arrow-right-bold-circle: "\uE055", arrow-right-bold-circle-outline: "\uE056", arrow-right-bold-hexagon-outline: "\uE057", arrow-right-bold-outline: "\uE9C1", arrow-right-bottom: "\uF7A8", arrow-right-bottom-bold: "\uF7A9", arrow-right-box: "\uE6C1", arrow-right-circle: "\uECDE", arrow-right-circle-outline: "\uECDF", arrow-right-drop-circle: "\uE058", arrow-right-drop-circle-outline: "\uE059", arrow-right-thick: "\uE054", arrow-right-thin: "\uF9AF", arrow-right-thin-circle-outline: "\uF597", arrow-right-top: "\uF7AA", arrow-right-top-bold: "\uF7AB", arrow-split-horizontal: "\uE93A", arrow-split-vertical: "\uE93B", arrow-top-left: "\uE05A", arrow-top-left-bold-box: "\uF967", arrow-top-left-bold-box-outline: "\uF968", arrow-top-left-bold-outline: "\uE9C2", arrow-top-left-bottom-right: "\uEE74", arrow-top-left-bottom-right-bold: "\uEE75", arrow-top-left-thick: "\uE9C3", arrow-top-left-thin: "\uF9B4", arrow-top-left-thin-circle-outline: "\uF592", arrow-top-right: "\uE05B", arrow-top-right-bold-box: "\uF969", arrow-top-right-bold-box-outline: "\uF96A", arrow-top-right-bold-outline: "\uE9C4", arrow-top-right-bottom-left: "\uEE76", arrow-top-right-bottom-left-bold: "\uEE77", arrow-top-right-thick: "\uE9C5", arrow-top-right-thin: "\uF9B3", arrow-top-right-thin-circle-outline: "\uF593", arrow-u-down-left: "\uF7AC", arrow-u-down-left-bold: "\uF7AD", arrow-u-down-right: "\uF7AE", arrow-u-down-right-bold: "\uF7AF", arrow-u-left-bottom: "\uF7B0", arrow-u-left-bottom-bold: "\uF7B1", arrow-u-left-top: "\uF7B2", arrow-u-left-top-bold: "\uF7B3", arrow-u-right-bottom: "\uF7B4", arrow-u-right-bottom-bold: "\uF7B5", arrow-u-right-top: "\uF7B6", arrow-u-right-top-bold: "\uF7B7", arrow-u-up-left: "\uF7B8", arrow-u-up-left-bold: "\uF7B9", arrow-u-up-right: "\uF7BA", arrow-u-up-right-bold: "\uF7BB", arrow-up: "\uE05C", arrow-up-bold: "\uE736", arrow-up-bold-box: "\uE737", arrow-up-bold-box-outline: "\uE738", arrow-up-bold-circle: "\uE05E", arrow-up-bold-circle-outline: "\uE05F", arrow-up-bold-hexagon-outline: "\uE060", arrow-up-bold-outline: "\uE9C6", arrow-up-box: "\uE6C2", arrow-up-circle: "\uECE0", arrow-up-circle-outline: "\uECE1", arrow-up-down: "\uEE78", arrow-up-down-bold: "\uEE79", arrow-up-down-bold-outline: "\uE9C7", arrow-up-drop-circle: "\uE061", arrow-up-drop-circle-outline: "\uE062", arrow-up-left: "\uF7BC", arrow-up-left-bold: "\uF7BD", arrow-up-right: "\uF7BE", arrow-up-right-bold: "\uF7BF", arrow-up-thick: "\uE05D", arrow-up-thin: "\uF9B1", arrow-up-thin-circle-outline: "\uF596", arrow-vertical-lock: "\uF15B", artstation: "\uEB5A", aspect-ratio: "\uEA23", assistant: "\uE063", asterisk: "\uE6C3", asterisk-circle-outline: "\uFA26", at: "\uE064", atlassian: "\uE803", atm: "\uED46", atom: "\uE767", atom-variant: "\uEE7A", attachment: "\uE065", attachment-check: "\uFAC0", attachment-lock: "\uF9C3", attachment-minus: "\uFAC1", attachment-off: "\uFAC2", attachment-plus: "\uFAC3", attachment-remove: "\uFAC4", audio-input-rca: "\uF86A", audio-input-stereo-minijack: "\uF86B", audio-input-xlr: "\uF86C", audio-video: "\uE93C", audio-video-off: "\uF1B5", augmented-reality: "\uE84F", auto-download: "\uF37D", auto-fix: "\uE067", auto-upload: "\uE068", autorenew: "\uE069", autorenew-off: "\uF9E6", av-timer: "\uE06A", aws: "\uEE0E", axe: "\uE8C7", axe-battle: "\uF841", axis: "\uED47", axis-arrow: "\uED48", axis-arrow-info: "\uF40D", axis-arrow-lock: "\uED49", axis-lock: "\uED4A", axis-x-arrow: "\uED4B", axis-x-arrow-lock: "\uED4C", axis-x-rotate-clockwise: "\uED4D", axis-x-rotate-counterclockwise: "\uED4E", axis-x-y-arrow-lock: "\uED4F", axis-y-arrow: "\uED50", axis-y-arrow-lock: "\uED51", axis-y-rotate-clockwise: "\uED52", axis-y-rotate-counterclockwise: "\uED53", axis-z-arrow: "\uED54", axis-z-arrow-lock: "\uED55", axis-z-rotate-clockwise: "\uED56", axis-z-rotate-counterclockwise: "\uED57", babel: "\uEA24", baby: "\uE06B", baby-bottle: "\uEF38", baby-bottle-outline: "\uEF39", baby-buggy: "\uF3DF", baby-carriage: "\uE68E", baby-carriage-off: "\uEF9F", baby-face: "\uEE7B", baby-face-outline: "\uEE7C", backburger: "\uE06C", backspace: "\uE06D", backspace-outline: "\uEB5B", backspace-reverse: "\uEE7D", backspace-reverse-outline: "\uEE7E", backup-restore: "\uE06E", bacteria: "\uEED4", bacteria-outline: "\uEED5", badge-account: "\uEDA6", badge-account-alert: "\uEDA7", badge-account-alert-outline: "\uEDA8", badge-account-horizontal: "\uEE0C", badge-account-horizontal-outline: "\uEE0D", badge-account-outline: "\uEDA9", badminton: "\uE850", bag-carry-on: "\uEF3A", bag-carry-on-check: "\uED64", bag-carry-on-off: "\uEF3B", bag-checked: "\uEF3C", bag-personal: "\uEE0F", bag-personal-off: "\uEE10", bag-personal-off-outline: "\uEE11", bag-personal-outline: "\uEE12", bag-suitcase: "\uF58A", bag-suitcase-off: "\uF58C", bag-suitcase-off-outline: "\uF58D", bag-suitcase-outline: "\uF58B", baguette: "\uEF3D", balcony: "\uF816", balloon: "\uEA25", ballot: "\uE9C8", ballot-outline: "\uE9C9", ballot-recount: "\uEC38", ballot-recount-outline: "\uEC39", bandage: "\uEDAE", bank: "\uE06F", bank-check: "\uF654", bank-minus: "\uEDAF", bank-off: "\uF655", bank-off-outline: "\uF656", bank-outline: "\uEE7F", bank-plus: "\uEDB0", bank-remove: "\uEDB1", bank-transfer: "\uEA26", bank-transfer-in: "\uEA27", bank-transfer-out: "\uEA28", barcode: "\uE070", barcode-off: "\uF235", barcode-scan: "\uE071", barley: "\uE072", barley-off: "\uEB5C", barn: "\uEB5D", barrel: "\uE073", barrel-outline: "\uFA27", baseball: "\uE851", baseball-bat: "\uE852", baseball-diamond: "\uF5EB", baseball-diamond-outline: "\uF5EC", bash: "\uF182", basket: "\uE075", basket-check: "\uF8E4", basket-check-outline: "\uF8E5", basket-fill: "\uE076", basket-minus: "\uF522", basket-minus-outline: "\uF523", basket-off: "\uF524", basket-off-outline: "\uF525", basket-outline: "\uF180", basket-plus: "\uF526", basket-plus-outline: "\uF527", basket-remove: "\uF528", basket-remove-outline: "\uF529", basket-unfill: "\uE077", basketball: "\uE805", basketball-hoop: "\uEC3A", basketball-hoop-outline: "\uEC3B", bat: "\uEB5E", bathtub: "\uF817", bathtub-outline: "\uF818", battery: "\uE078", battery-10: "\uE079", battery-10-bluetooth: "\uE93D", battery-20: "\uE07A", battery-20-bluetooth: "\uE93E", battery-30: "\uE07B", battery-30-bluetooth: "\uE93F", battery-40: "\uE07C", battery-40-bluetooth: "\uE940", battery-50: "\uE07D", battery-50-bluetooth: "\uE941", battery-60: "\uE07E", battery-60-bluetooth: "\uE942", battery-70: "\uE07F", battery-70-bluetooth: "\uE943", battery-80: "\uE080", battery-80-bluetooth: "\uE944", battery-90: "\uE081", battery-90-bluetooth: "\uE945", battery-alert: "\uE082", battery-alert-bluetooth: "\uE946", battery-alert-variant: "\uF0CB", battery-alert-variant-outline: "\uF0CC", battery-arrow-down: "\uF7DD", battery-arrow-down-outline: "\uF7DE", battery-arrow-up: "\uF7DF", battery-arrow-up-outline: "\uF7E0", battery-bluetooth: "\uE947", battery-bluetooth-variant: "\uE948", battery-charging: "\uE083", battery-charging-10: "\uE89B", battery-charging-100: "\uE084", battery-charging-20: "\uE085", battery-charging-30: "\uE086", battery-charging-40: "\uE087", battery-charging-50: "\uE89C", battery-charging-60: "\uE088", battery-charging-70: "\uE89D", battery-charging-80: "\uE089", battery-charging-90: "\uE08A", battery-charging-high: "\uF2A5", battery-charging-low: "\uF2A3", battery-charging-medium: "\uF2A4", battery-charging-outline: "\uE89E", battery-charging-wireless: "\uE806", battery-charging-wireless-10: "\uE807", battery-charging-wireless-20: "\uE808", battery-charging-wireless-30: "\uE809", battery-charging-wireless-40: "\uE80A", battery-charging-wireless-50: "\uE80B", battery-charging-wireless-60: "\uE80C", battery-charging-wireless-70: "\uE80D", battery-charging-wireless-80: "\uE80E", battery-charging-wireless-90: "\uE80F", battery-charging-wireless-alert: "\uE810", battery-charging-wireless-outline: "\uE811", battery-check: "\uF7E1", battery-check-outline: "\uF7E2", battery-clock: "\uF9E4", battery-clock-outline: "\uF9E5", battery-heart: "\uF20E", battery-heart-outline: "\uF20F", battery-heart-variant: "\uF210", battery-high: "\uF2A2", battery-lock: "\uF79B", battery-lock-open: "\uF79C", battery-low: "\uF2A0", battery-medium: "\uF2A1", battery-minus: "\uF7E3", battery-minus-outline: "\uF7E4", battery-minus-variant: "\uE08B", battery-negative: "\uE08C", battery-off: "\uF25C", battery-off-outline: "\uF25D", battery-outline: "\uE08D", battery-plus: "\uF7E5", battery-plus-outline: "\uF7E6", battery-plus-variant: "\uE08E", battery-positive: "\uE08F", battery-remove: "\uF7E7", battery-remove-outline: "\uF7E8", battery-sync: "\uF833", battery-sync-outline: "\uF834", battery-unknown: "\uE090", battery-unknown-bluetooth: "\uE949", beach: "\uE091", beaker: "\uECE9", beaker-alert: "\uF228", beaker-alert-outline: "\uF229", beaker-check: "\uF22A", beaker-check-outline: "\uF22B", beaker-minus: "\uF22C", beaker-minus-outline: "\uF22D", beaker-outline: "\uE68F", beaker-plus: "\uF22E", beaker-plus-outline: "\uF22F", beaker-question: "\uF230", beaker-question-outline: "\uF231", beaker-remove: "\uF232", beaker-remove-outline: "\uF233", bed: "\uE2E2", bed-double: "\uEFD3", bed-double-outline: "\uEFD2", bed-empty: "\uE89F", bed-king: "\uEFD1", bed-king-outline: "\uEFD0", bed-outline: "\uE098", bed-queen: "\uEFCF", bed-queen-outline: "\uEFDA", bed-single: "\uF06C", bed-single-outline: "\uF06D", bee: "\uEFA0", bee-flower: "\uEFA1", beehive-off-outline: "\uF3EC", beehive-outline: "\uF0CD", beekeeper: "\uF4E1", beer: "\uE097", beer-outline: "\uF30B", bell: "\uE099", bell-alert: "\uED58", bell-alert-outline: "\uEE80", bell-badge: "\uF16A", bell-badge-outline: "\uE177", bell-cancel: "\uF3E6", bell-cancel-outline: "\uF3E7", bell-check: "\uF1E4", bell-check-outline: "\uF1E5", bell-circle: "\uED59", bell-circle-outline: "\uED5A", bell-cog: "\uFA28", bell-cog-outline: "\uFA29", bell-minus: "\uF3E8", bell-minus-outline: "\uF3E9", bell-off: "\uE09A", bell-off-outline: "\uEA90", bell-outline: "\uE09B", bell-plus: "\uE09C", bell-plus-outline: "\uEA91", bell-remove: "\uF3EA", bell-remove-outline: "\uF3EB", bell-ring: "\uE09D", bell-ring-outline: "\uE09E", bell-sleep: "\uE09F", bell-sleep-outline: "\uEA92", beta: "\uE0A0", betamax: "\uE9CA", biathlon: "\uEE13", bicycle: "\uF09B", bicycle-basket: "\uF234", bicycle-cargo: "\uF89B", bicycle-electric: "\uF5B3", bicycle-penny-farthing: "\uF5E8", bike: "\uE0A2", bike-fast: "\uF11E", billboard: "\uF00F", billiards: "\uEB60", billiards-rack: "\uEB61", binoculars: "\uE0A4", bio: "\uE0A5", biohazard: "\uE0A6", bird: "\uF5C5", bitbucket: "\uE0A7", bitcoin: "\uE812", black-mesa: "\uE0A8", blender: "\uECEA", blender-outline: "\uF819", blender-software: "\uE0AA", blinds: "\uE0AB", blinds-horizontal: "\uFA2A", blinds-horizontal-closed: "\uFA2B", blinds-open: "\uF010", blinds-vertical: "\uFA2C", blinds-vertical-closed: "\uFA2D", block-helper: "\uE0AC", blood-bag: "\uECEB", bluetooth: "\uE0AE", bluetooth-audio: "\uE0AF", bluetooth-connect: "\uE0B0", bluetooth-off: "\uE0B1", bluetooth-settings: "\uE0B2", bluetooth-transfer: "\uE0B3", blur: "\uE0B4", blur-linear: "\uE0B5", blur-off: "\uE0B6", blur-radial: "\uE0B7", bolt: "\uEDB2", bomb: "\uE690", bomb-off: "\uE6C4", bone: "\uE0B8", bone-off: "\uF9DF", book: "\uE0B9", book-account: "\uF3AC", book-account-outline: "\uF3AD", book-alert: "\uF67B", book-alert-outline: "\uF67C", book-alphabet: "\uE61C", book-arrow-down: "\uF67D", book-arrow-down-outline: "\uF67E", book-arrow-left: "\uF67F", book-arrow-left-outline: "\uF680", book-arrow-right: "\uF681", book-arrow-right-outline: "\uF682", book-arrow-up: "\uF683", book-arrow-up-outline: "\uF684", book-cancel: "\uF685", book-cancel-outline: "\uF686", book-check: "\uF4F2", book-check-outline: "\uF4F3", book-clock: "\uF687", book-clock-outline: "\uF688", book-cog: "\uF689", book-cog-outline: "\uF68A", book-cross: "\uE0A1", book-edit: "\uF68B", book-edit-outline: "\uF68C", book-education: "\uF6C8", book-education-outline: "\uF6C9", book-heart: "\uFA1C", book-heart-outline: "\uFA1D", book-information-variant: "\uF06E", book-lock: "\uE799", book-lock-open: "\uE79A", book-lock-open-outline: "\uF68D", book-lock-outline: "\uF68E", book-marker: "\uF68F", book-marker-outline: "\uF690", book-minus: "\uE5D8", book-minus-multiple: "\uEA93", book-minus-multiple-outline: "\uE90A", book-minus-outline: "\uF691", book-multiple: "\uE0BA", book-multiple-outline: "\uE435", book-music: "\uE066", book-music-outline: "\uF692", book-off: "\uF693", book-off-outline: "\uF694", book-open: "\uE0BC", book-open-blank-variant: "\uE0BD", book-open-outline: "\uEB62", book-open-page-variant: "\uE5D9", book-open-page-variant-outline: "\uF5D5", book-open-variant: "\uF4F6", book-outline: "\uEB63", book-play: "\uEE81", book-play-outline: "\uEE82", book-plus: "\uE5DA", book-plus-multiple: "\uEA94", book-plus-multiple-outline: "\uEADD", book-plus-outline: "\uF695", book-refresh: "\uF696", book-refresh-outline: "\uF697", book-remove: "\uEA96", book-remove-multiple: "\uEA95", book-remove-multiple-outline: "\uE4C9", book-remove-outline: "\uF698", book-search: "\uEE83", book-search-outline: "\uEE84", book-settings: "\uF699", book-settings-outline: "\uF69A", book-sync: "\uF69B", book-sync-outline: "\uF6C7", book-variant: "\uE0BE", book-variant-multiple: "\uE0BB", bookmark: "\uE0BF", bookmark-box-multiple: "\uF96B", bookmark-box-multiple-outline: "\uF96C", bookmark-check: "\uE0C0", bookmark-check-outline: "\uF37A", bookmark-minus: "\uE9CB", bookmark-minus-outline: "\uE9CC", bookmark-multiple: "\uEE14", bookmark-multiple-outline: "\uEE15", bookmark-music: "\uE0C1", bookmark-music-outline: "\uF378", bookmark-off: "\uE9CD", bookmark-off-outline: "\uE9CE", bookmark-outline: "\uE0C2", bookmark-plus: "\uE0C4", bookmark-plus-outline: "\uE0C3", bookmark-remove: "\uE0C5", bookmark-remove-outline: "\uF379", bookshelf: "\uF25E", boom-gate: "\uEE85", boom-gate-alert: "\uEE86", boom-gate-alert-outline: "\uEE87", boom-gate-arrow-down: "\uEE88", boom-gate-arrow-down-outline: "\uEE89", boom-gate-arrow-up: "\uEE8B", boom-gate-arrow-up-outline: "\uEE8C", boom-gate-outline: "\uEE8A", boom-gate-up: "\uF7F8", boom-gate-up-outline: "\uF7F9", boombox: "\uE5DB", boomerang: "\uF0CE", bootstrap: "\uE6C5", border-all: "\uE0C6", border-all-variant: "\uE8A0", border-bottom: "\uE0C7", border-bottom-variant: "\uE8A1", border-color: "\uE0C8", border-horizontal: "\uE0C9", border-inside: "\uE0CA", border-left: "\uE0CB", border-left-variant: "\uE8A2", border-none: "\uE0CC", border-none-variant: "\uE8A3", border-outside: "\uE0CD", border-right: "\uE0CE", border-right-variant: "\uE8A4", border-style: "\uE0CF", border-top: "\uE0D0", border-top-variant: "\uE8A5", border-vertical: "\uE0D1", bottle-soda: "\uF06F", bottle-soda-classic: "\uF070", bottle-soda-classic-outline: "\uF362", bottle-soda-outline: "\uF071", bottle-tonic: "\uF12D", bottle-tonic-outline: "\uF12E", bottle-tonic-plus: "\uF12F", bottle-tonic-plus-outline: "\uF130", bottle-tonic-skull: "\uF131", bottle-tonic-skull-outline: "\uF132", bottle-wine: "\uE853", bottle-wine-outline: "\uF30F", bow-arrow: "\uF840", bow-tie: "\uE677", bowl: "\uE28D", bowl-mix: "\uE616", bowl-mix-outline: "\uE2E3", bowl-outline: "\uE2A8", bowling: "\uE0D2", box: "\uE0D3", box-cutter: "\uE0D4", box-cutter-off: "\uEB49", box-shadow: "\uE636", boxing-glove: "\uEB64", braille: "\uE9CF", brain: "\uE9D0", bread-slice: "\uECED", bread-slice-outline: "\uECEE", bridge: "\uE617", briefcase: "\uE0D5", briefcase-account: "\uECEF", briefcase-account-outline: "\uECF0", briefcase-arrow-left-right: "\uFA8C", briefcase-arrow-left-right-outline: "\uFA8D", briefcase-arrow-up-down: "\uFA8E", briefcase-arrow-up-down-outline: "\uFA8F", briefcase-check: "\uE0D6", briefcase-check-outline: "\uF31D", briefcase-clock: "\uF0CF", briefcase-clock-outline: "\uF0D0", briefcase-download: "\uE0D7", briefcase-download-outline: "\uEC3C", briefcase-edit: "\uEA97", briefcase-edit-outline: "\uEC3D", briefcase-eye: "\uF7D8", briefcase-eye-outline: "\uF7D9", briefcase-minus: "\uEA29", briefcase-minus-outline: "\uEC3E", briefcase-off: "\uF657", briefcase-off-outline: "\uF658", briefcase-outline: "\uE813", briefcase-plus: "\uEA2A", briefcase-plus-outline: "\uEC3F", briefcase-remove: "\uEA2B", briefcase-remove-outline: "\uEC40", briefcase-search: "\uEA2C", briefcase-search-outline: "\uEC41", briefcase-upload: "\uE0D8", briefcase-upload-outline: "\uEC42", briefcase-variant: "\uF493", briefcase-variant-off: "\uF659", briefcase-variant-off-outline: "\uF65A", briefcase-variant-outline: "\uF494", brightness-1: "\uE0D9", brightness-2: "\uE0DA", brightness-3: "\uE0DB", brightness-4: "\uE0DC", brightness-5: "\uE0DD", brightness-6: "\uE0DE", brightness-7: "\uE0DF", brightness-auto: "\uE0E0", brightness-percent: "\uECF1", broadcast: "\uF71F", broadcast-off: "\uF720", broom: "\uE0E1", brush: "\uE0E2", brush-off: "\uF770", brush-outline: "\uFA0C", brush-variant: "\uF812", bucket: "\uF414", bucket-outline: "\uF415", buffet: "\uE577", bug: "\uE0E3", bug-check: "\uEA2D", bug-check-outline: "\uEA2E", bug-outline: "\uEA2F", bugle: "\uEDB3", bulkhead-light: "\uFA2E", bulldozer: "\uEB21", bullet: "\uECF2", bulletin-board: "\uE0E4", bullhorn: "\uE0E5", bullhorn-outline: "\uEB22", bullhorn-variant: "\uF96D", bullhorn-variant-outline: "\uF96E", bullseye: "\uE5DC", bullseye-arrow: "\uE8C8", bulma: "\uF2E6", bunk-bed: "\uF301", bunk-bed-outline: "\uE096", bus: "\uE0E6", bus-alert: "\uEA98", bus-articulated-end: "\uE79B", bus-articulated-front: "\uE79C", bus-clock: "\uE8C9", bus-double-decker: "\uE79D", bus-electric: "\uF91C", bus-marker: "\uF211", bus-multiple: "\uEF3E", bus-school: "\uE79E", bus-side: "\uE79F", bus-stop: "\uF011", bus-stop-covered: "\uF012", bus-stop-uncovered: "\uF013", butterfly: "\uF588", butterfly-outline: "\uF589", cabin-a-frame: "\uF88B", cable-data: "\uF393", cached: "\uE0E7", cactus: "\uEDB4", cake: "\uE0E8", cake-layered: "\uE0E9", cake-variant: "\uE0EA", cake-variant-outline: "\uF7EF", calculator: "\uE0EB", calculator-variant: "\uEA99", calculator-variant-outline: "\uF5A5", calendar: "\uE0EC", calendar-account: "\uEED6", calendar-account-outline: "\uEED7", calendar-alert: "\uEA30", calendar-arrow-left: "\uF133", calendar-arrow-right: "\uF134", calendar-blank: "\uE0ED", calendar-blank-multiple: "\uF072", calendar-blank-outline: "\uEB65", calendar-check: "\uE0EE", calendar-check-outline: "\uEC43", calendar-clock: "\uE0EF", calendar-clock-outline: "\uF6E0", calendar-collapse-horizontal: "\uF89C", calendar-cursor: "\uF57A", calendar-edit: "\uE8A6", calendar-end: "\uF66B", calendar-expand-horizontal: "\uF89D", calendar-export: "\uEB23", calendar-heart: "\uE9D1", calendar-import: "\uEB24", calendar-lock: "\uF640", calendar-lock-outline: "\uF641", calendar-minus: "\uED5B", calendar-month: "\uEE16", calendar-month-outline: "\uEE17", calendar-multiple: "\uE0F0", calendar-multiple-check: "\uE0F1", calendar-multiselect: "\uEA31", calendar-outline: "\uEB66", calendar-plus: "\uE0F2", calendar-question: "\uE691", calendar-range: "\uE678", calendar-range-outline: "\uEB67", calendar-refresh: "\uE1E0", calendar-refresh-outline: "\uE202", calendar-remove: "\uE0F3", calendar-remove-outline: "\uEC44", calendar-search: "\uE94B", calendar-star: "\uE9D2", calendar-start: "\uF66C", calendar-sync: "\uEE8D", calendar-sync-outline: "\uEE8E", calendar-text: "\uE0F4", calendar-text-outline: "\uEC45", calendar-today: "\uE0F5", calendar-today-outline: "\uFA2F", calendar-week: "\uEA32", calendar-week-begin: "\uEA33", calendar-week-begin-outline: "\uFA30", calendar-week-end: "\uFA31", calendar-week-end-outline: "\uFA32", calendar-week-outline: "\uFA33", calendar-weekend: "\uEED8", calendar-weekend-outline: "\uEED9", call-made: "\uE0F6", call-merge: "\uE0F7", call-missed: "\uE0F8", call-received: "\uE0F9", call-split: "\uE0FA", camcorder: "\uE0FB", camcorder-off: "\uE0FE", camera: "\uE0FF", camera-account: "\uE8CA", camera-burst: "\uE692", camera-control: "\uEB68", camera-document: "\uF870", camera-document-off: "\uF871", camera-enhance: "\uE100", camera-enhance-outline: "\uEB69", camera-flip: "\uF5D8", camera-flip-outline: "\uF5D9", camera-front: "\uE101", camera-front-variant: "\uE102", camera-gopro: "\uE7A0", camera-image: "\uE8CB", camera-iris: "\uE103", camera-lock: "\uFA13", camera-lock-outline: "\uFA14", camera-marker: "\uF9A6", camera-marker-outline: "\uF9A7", camera-metering-center: "\uE7A1", camera-metering-matrix: "\uE7A2", camera-metering-partial: "\uE7A3", camera-metering-spot: "\uE7A4", camera-off: "\uE5DE", camera-off-outline: "\uF9BE", camera-outline: "\uED5C", camera-party-mode: "\uE104", camera-plus: "\uEEDA", camera-plus-outline: "\uEEDB", camera-rear: "\uE105", camera-rear-variant: "\uE106", camera-retake: "\uEE18", camera-retake-outline: "\uEE19", camera-switch: "\uE107", camera-switch-outline: "\uE849", camera-timer: "\uE108", camera-wireless: "\uEDB5", camera-wireless-outline: "\uEDB6", campfire: "\uEEDC", cancel: "\uE739", candelabra: "\uF7D1", candelabra-fire: "\uF7D2", candle: "\uE5E1", candy: "\uF96F", candy-off: "\uF970", candy-off-outline: "\uF971", candy-outline: "\uF972", candycane: "\uE109", cannabis: "\uE7A5", cannabis-off: "\uF66D", caps-lock: "\uEA9A", car: "\uE10A", car-2-plus: "\uF014", car-3-plus: "\uF015", car-arrow-left: "\uF3B1", car-arrow-right: "\uF3B2", car-back: "\uEE1A", car-battery: "\uE10B", car-brake-abs: "\uEC46", car-brake-alert: "\uEC47", car-brake-fluid-level: "\uF908", car-brake-hold: "\uED5D", car-brake-low-pressure: "\uF909", car-brake-parking: "\uED5E", car-brake-retarder: "\uF016", car-brake-temperature: "\uF90A", car-brake-worn-linings: "\uF90B", car-child-seat: "\uEFA2", car-clock: "\uF973", car-clutch: "\uF017", car-cog: "\uF3CB", car-connected: "\uE10C", car-convertible: "\uE7A6", car-coolant-level: "\uF018", car-cruise-control: "\uED5F", car-defrost-front: "\uED60", car-defrost-rear: "\uED61", car-door: "\uEB6A", car-door-lock: "\uF09C", car-electric: "\uEB6B", car-electric-outline: "\uF5B4", car-emergency: "\uF60E", car-esp: "\uEC48", car-estate: "\uE7A7", car-hatchback: "\uE7A8", car-info: "\uF1BD", car-key: "\uEB6C", car-lifted-pickup: "\uF52C", car-light-alert: "\uF90C", car-light-dimmed: "\uEC49", car-light-fog: "\uEC4A", car-light-high: "\uEC4B", car-limousine: "\uE8CC", car-multiple: "\uEB6D", car-off: "\uEE1B", car-outline: "\uF4EC", car-parking-lights: "\uED62", car-pickup: "\uE7A9", car-seat: "\uEFA3", car-seat-cooler: "\uEFA4", car-seat-heater: "\uEFA5", car-select: "\uF878", car-settings: "\uF3CC", car-shift-pattern: "\uEF3F", car-side: "\uE7AA", car-speed-limiter: "\uF90D", car-sports: "\uE7AB", car-tire-alert: "\uEC4C", car-traction-control: "\uED63", car-turbocharger: "\uF019", car-wash: "\uE10D", car-windshield: "\uF01A", car-windshield-outline: "\uF01B", car-wireless: "\uF877", car-wrench: "\uF813", carabiner: "\uF4BF", caravan: "\uE7AC", card: "\uEB6E", card-account-details: "\uE5D1", card-account-details-outline: "\uEDAA", card-account-details-star: "\uE2A2", card-account-details-star-outline: "\uE6DA", card-account-mail: "\uE18D", card-account-mail-outline: "\uEE97", card-account-phone: "\uEE98", card-account-phone-outline: "\uEE99", card-bulleted: "\uEB6F", card-bulleted-off: "\uEB70", card-bulleted-off-outline: "\uEB71", card-bulleted-outline: "\uEB72", card-bulleted-settings: "\uEB73", card-bulleted-settings-outline: "\uEB74", card-minus: "\uF5FF", card-minus-outline: "\uF600", card-multiple: "\uF7F0", card-multiple-outline: "\uF7F1", card-off: "\uF601", card-off-outline: "\uF602", card-outline: "\uEB75", card-plus: "\uF1FE", card-plus-outline: "\uF1FF", card-remove: "\uF603", card-remove-outline: "\uF604", card-search: "\uF073", card-search-outline: "\uF074", card-text: "\uEB76", card-text-outline: "\uEB77", cards: "\uE637", cards-club: "\uE8CD", cards-club-outline: "\uF89E", cards-diamond: "\uE8CE", cards-diamond-outline: "\uF01C", cards-heart: "\uE8CF", cards-heart-outline: "\uF89F", cards-outline: "\uE638", cards-playing: "\uF8A0", cards-playing-club: "\uF8A1", cards-playing-club-multiple: "\uF8A2", cards-playing-club-multiple-outline: "\uF8A3", cards-playing-club-outline: "\uF8A4", cards-playing-diamond: "\uF8A5", cards-playing-diamond-multiple: "\uF8A6", cards-playing-diamond-multiple-outline: "\uF8A7", cards-playing-diamond-outline: "\uF8A8", cards-playing-heart: "\uF8A9", cards-playing-heart-multiple: "\uF8AA", cards-playing-heart-multiple-outline: "\uF8AB", cards-playing-heart-outline: "\uF8AC", cards-playing-outline: "\uE639", cards-playing-spade: "\uF8AD", cards-playing-spade-multiple: "\uF8AE", cards-playing-spade-multiple-outline: "\uF8AF", cards-playing-spade-outline: "\uF8B0", cards-spade: "\uE8D0", cards-spade-outline: "\uF8B1", cards-variant: "\uE6C6", carrot: "\uE10E", cart: "\uE10F", cart-arrow-down: "\uED65", cart-arrow-right: "\uEC4D", cart-arrow-up: "\uED66", cart-check: "\uF5E9", cart-heart: "\uF8DF", cart-minus: "\uED67", cart-off: "\uE66A", cart-outline: "\uE110", cart-plus: "\uE111", cart-remove: "\uED68", cart-variant: "\uF5EA", case-sensitive-alt: "\uE112", cash: "\uE113", cash-100: "\uE114", cash-check: "\uF4ED", cash-clock: "\uFA90", cash-fast: "\uF85B", cash-lock: "\uF4E9", cash-lock-open: "\uF4EA", cash-marker: "\uEDB7", cash-minus: "\uF25F", cash-multiple: "\uE115", cash-plus: "\uF260", cash-refund: "\uEA9B", cash-register: "\uECF3", cash-remove: "\uF261", cash-sync: "\uFA91", cassette: "\uE9D3", cast: "\uE117", cast-audio: "\uF01D", cast-audio-variant: "\uF748", cast-connected: "\uE118", cast-education: "\uEE1C", cast-off: "\uE789", cast-variant: "\uE01E", castle: "\uE119", cat: "\uE11A", cctv: "\uE7AD", cctv-off: "\uF85E", ceiling-fan: "\uF796", ceiling-fan-light: "\uF797", ceiling-light: "\uE768", ceiling-light-multiple: "\uF8DC", ceiling-light-multiple-outline: "\uF8DD", ceiling-light-outline: "\uF7C6", cellphone: "\uE11B", cellphone-arrow-down: "\uE9D4", cellphone-arrow-down-variant: "\uF9C4", cellphone-basic: "\uE11D", cellphone-charging: "\uF396", cellphone-check: "\uF7FC", cellphone-cog: "\uE950", cellphone-dock: "\uE11E", cellphone-information: "\uEF40", cellphone-key: "\uE94D", cellphone-link: "\uE120", cellphone-link-off: "\uE121", cellphone-lock: "\uE94E", cellphone-marker: "\uF839", cellphone-message: "\uE8D2", cellphone-message-off: "\uF0D1", cellphone-nfc: "\uEE8F", cellphone-nfc-off: "\uF2D7", cellphone-off: "\uE94F", cellphone-play: "\uF01E", cellphone-remove: "\uE94C", cellphone-screenshot: "\uEA34", cellphone-settings: "\uE122", cellphone-sound: "\uE951", cellphone-text: "\uE8D1", cellphone-wireless: "\uE814", centos: "\uF119", certificate: "\uE123", certificate-outline: "\uF187", chair-rolling: "\uEF47", chair-school: "\uE124", chandelier: "\uF792", charity: "\uEC4E", chart-arc: "\uE125", chart-areaspline: "\uE126", chart-areaspline-variant: "\uEE90", chart-bar: "\uE127", chart-bar-stacked: "\uE769", chart-bell-curve: "\uEC4F", chart-bell-curve-cumulative: "\uEFA6", chart-box: "\uF54C", chart-box-outline: "\uF54D", chart-box-plus-outline: "\uF54E", chart-bubble: "\uE5E2", chart-donut: "\uE7AE", chart-donut-variant: "\uE7AF", chart-gantt: "\uE66B", chart-histogram: "\uE128", chart-line: "\uE129", chart-line-stacked: "\uE76A", chart-line-variant: "\uE7B0", chart-multiline: "\uE8D3", chart-multiple: "\uF212", chart-pie: "\uE12A", chart-ppf: "\uF37F", chart-sankey: "\uF1DE", chart-sankey-variant: "\uF1DF", chart-scatter-plot: "\uEE91", chart-scatter-plot-hexbin: "\uE66C", chart-timeline: "\uE66D", chart-timeline-variant: "\uEE92", chart-timeline-variant-shimmer: "\uF5B5", chart-tree: "\uEE93", chart-waterfall: "\uF917", chat: "\uEB78", chat-alert: "\uEB79", chat-alert-outline: "\uF2C8", chat-minus: "\uF40F", chat-minus-outline: "\uF412", chat-outline: "\uEEDD", chat-plus: "\uF40E", chat-plus-outline: "\uF411", chat-processing: "\uEB7A", chat-processing-outline: "\uF2C9", chat-question: "\uF737", chat-question-outline: "\uF738", chat-remove: "\uF410", chat-remove-outline: "\uF413", chat-sleep: "\uF2D0", chat-sleep-outline: "\uF2D1", check: "\uE12B", check-all: "\uE12C", check-bold: "\uEE1D", check-circle: "\uE5DF", check-circle-outline: "\uE5E0", check-decagram: "\uE790", check-decagram-outline: "\uF73F", check-network: "\uEC52", check-network-outline: "\uEC53", check-outline: "\uE854", check-underline: "\uEE1E", check-underline-circle: "\uEE1F", check-underline-circle-outline: "\uEE20", checkbook: "\uEA9C", checkbox-blank: "\uE12D", checkbox-blank-badge: "\uF175", checkbox-blank-badge-outline: "\uE116", checkbox-blank-circle: "\uE12E", checkbox-blank-circle-outline: "\uE12F", checkbox-blank-off: "\uF2EB", checkbox-blank-off-outline: "\uF2EC", checkbox-blank-outline: "\uE130", checkbox-intermediate: "\uE855", checkbox-marked: "\uE131", checkbox-marked-circle: "\uE132", checkbox-marked-circle-outline: "\uE133", checkbox-marked-circle-plus-outline: "\uF926", checkbox-marked-outline: "\uE134", checkbox-multiple-blank: "\uE135", checkbox-multiple-blank-circle: "\uE63A", checkbox-multiple-blank-circle-outline: "\uE63B", checkbox-multiple-blank-outline: "\uE136", checkbox-multiple-marked: "\uE137", checkbox-multiple-marked-circle: "\uE63C", checkbox-multiple-marked-circle-outline: "\uE63D", checkbox-multiple-marked-outline: "\uE138", checkbox-multiple-outline: "\uEC50", checkbox-outline: "\uEC51", checkerboard: "\uE139", checkerboard-minus: "\uF201", checkerboard-plus: "\uF200", checkerboard-remove: "\uF202", cheese: "\uF2B8", cheese-off: "\uF3ED", chef-hat: "\uEB7B", chemical-weapon: "\uE13A", chess-bishop: "\uE85B", chess-king: "\uE856", chess-knight: "\uE857", chess-pawn: "\uE858", chess-queen: "\uE859", chess-rook: "\uE85A", chevron-double-down: "\uE13B", chevron-double-left: "\uE13C", chevron-double-right: "\uE13D", chevron-double-up: "\uE13E", chevron-down: "\uE13F", chevron-down-box: "\uE9D5", chevron-down-box-outline: "\uE9D6", chevron-down-circle: "\uEB25", chevron-down-circle-outline: "\uEB26", chevron-left: "\uE140", chevron-left-box: "\uE9D7", chevron-left-box-outline: "\uE9D8", chevron-left-circle: "\uEB27", chevron-left-circle-outline: "\uEB28", chevron-right: "\uE141", chevron-right-box: "\uE9D9", chevron-right-box-outline: "\uE9DA", chevron-right-circle: "\uEB29", chevron-right-circle-outline: "\uEB2A", chevron-triple-down: "\uEDB8", chevron-triple-left: "\uEDB9", chevron-triple-right: "\uEDBA", chevron-triple-up: "\uEDBB", chevron-up: "\uE142", chevron-up-box: "\uE9DB", chevron-up-box-outline: "\uE9DC", chevron-up-circle: "\uEB2B", chevron-up-circle-outline: "\uEB2C", chili-alert: "\uF7E9", chili-alert-outline: "\uF7EA", chili-hot: "\uE7B1", chili-hot-outline: "\uF7EB", chili-medium: "\uE7B2", chili-medium-outline: "\uF7EC", chili-mild: "\uE7B3", chili-mild-outline: "\uF7ED", chili-off: "\uF466", chili-off-outline: "\uF7EE", chip: "\uE619", church: "\uE143", cigar: "\uF188", cigar-off: "\uF41A", circle: "\uE764", circle-box: "\uF5DB", circle-box-outline: "\uF5DC", circle-double: "\uEE94", circle-edit-outline: "\uE8D4", circle-expand: "\uEE95", circle-half: "\uF394", circle-half-full: "\uF395", circle-medium: "\uE9DD", circle-multiple: "\uEB37", circle-multiple-outline: "\uE694", circle-off-outline: "\uF0D2", circle-opacity: "\uF852", circle-outline: "\uE765", circle-slice-1: "\uEA9D", circle-slice-2: "\uEA9E", circle-slice-3: "\uEA9F", circle-slice-4: "\uEAA0", circle-slice-5: "\uEAA1", circle-slice-6: "\uEAA2", circle-slice-7: "\uEAA3", circle-slice-8: "\uEAA4", circle-small: "\uE9DE", circular-saw: "\uEE21", city: "\uE145", city-variant: "\uEA35", city-variant-outline: "\uEA36", clipboard: "\uE146", clipboard-account: "\uE147", clipboard-account-outline: "\uEC54", clipboard-alert: "\uE148", clipboard-alert-outline: "\uECF6", clipboard-arrow-down: "\uE149", clipboard-arrow-down-outline: "\uEC55", clipboard-arrow-left: "\uE14A", clipboard-arrow-left-outline: "\uECF7", clipboard-arrow-right: "\uECF8", clipboard-arrow-right-outline: "\uECF9", clipboard-arrow-up: "\uEC56", clipboard-arrow-up-outline: "\uEC57", clipboard-check: "\uE14D", clipboard-check-multiple: "\uF262", clipboard-check-multiple-outline: "\uF263", clipboard-check-outline: "\uE8A7", clipboard-clock: "\uF6E1", clipboard-clock-outline: "\uF6E2", clipboard-edit: "\uF4E4", clipboard-edit-outline: "\uF4E5", clipboard-file: "\uF264", clipboard-file-outline: "\uF265", clipboard-flow: "\uE6C7", clipboard-flow-outline: "\uF116", clipboard-list: "\uF0D3", clipboard-list-outline: "\uF0D4", clipboard-minus: "\uF617", clipboard-minus-outline: "\uF618", clipboard-multiple: "\uF266", clipboard-multiple-outline: "\uF267", clipboard-off: "\uF619", clipboard-off-outline: "\uF61A", clipboard-outline: "\uE14B", clipboard-play: "\uEC58", clipboard-play-multiple: "\uF268", clipboard-play-multiple-outline: "\uF269", clipboard-play-outline: "\uEC59", clipboard-plus: "\uE750", clipboard-plus-outline: "\uF31E", clipboard-pulse: "\uE85C", clipboard-pulse-outline: "\uE85D", clipboard-remove: "\uF61B", clipboard-remove-outline: "\uF61C", clipboard-search: "\uF61D", clipboard-search-outline: "\uF61E", clipboard-text: "\uE14C", clipboard-text-clock: "\uF8F8", clipboard-text-clock-outline: "\uF8F9", clipboard-text-multiple: "\uF26A", clipboard-text-multiple-outline: "\uF26B", clipboard-text-off: "\uF61F", clipboard-text-off-outline: "\uF620", clipboard-text-outline: "\uEA37", clipboard-text-play: "\uEC5A", clipboard-text-play-outline: "\uEC5B", clipboard-text-search: "\uF621", clipboard-text-search-outline: "\uF622", clippy: "\uE14E", clock: "\uE953", clock-alert: "\uE954", clock-alert-outline: "\uE5CD", clock-check: "\uEFA7", clock-check-outline: "\uEFA8", clock-digital: "\uEE96", clock-edit: "\uF9B9", clock-edit-outline: "\uF9BA", clock-end: "\uE150", clock-fast: "\uE151", clock-in: "\uE152", clock-minus: "\uF862", clock-minus-outline: "\uF863", clock-out: "\uE153", clock-outline: "\uE14F", clock-plus: "\uF860", clock-plus-outline: "\uF861", clock-remove: "\uF864", clock-remove-outline: "\uF865", clock-start: "\uE154", clock-time-eight: "\uF445", clock-time-eight-outline: "\uF451", clock-time-eleven: "\uF448", clock-time-eleven-outline: "\uF454", clock-time-five: "\uF442", clock-time-five-outline: "\uF44E", clock-time-four: "\uF441", clock-time-four-outline: "\uF44D", clock-time-nine: "\uF446", clock-time-nine-outline: "\uF452", clock-time-one: "\uF43E", clock-time-one-outline: "\uF44A", clock-time-seven: "\uF444", clock-time-seven-outline: "\uF450", clock-time-six: "\uF443", clock-time-six-outline: "\uF44F", clock-time-ten: "\uF447", clock-time-ten-outline: "\uF453", clock-time-three: "\uF440", clock-time-three-outline: "\uF44C", clock-time-twelve: "\uF449", clock-time-twelve-outline: "\uF455", clock-time-two: "\uF43F", clock-time-two-outline: "\uF44B", close: "\uE155", close-box: "\uE156", close-box-multiple: "\uEC5C", close-box-multiple-outline: "\uEC5D", close-box-outline: "\uE157", close-circle: "\uE158", close-circle-multiple: "\uE629", close-circle-multiple-outline: "\uE882", close-circle-outline: "\uE159", close-network: "\uE15A", close-network-outline: "\uEC5E", close-octagon: "\uE15B", close-octagon-outline: "\uE15C", close-outline: "\uE6C8", close-thick: "\uF397", closed-caption: "\uE15D", closed-caption-outline: "\uEDBC", cloud: "\uE15E", cloud-alert: "\uE9DF", cloud-braces: "\uE7B4", cloud-check: "\uE15F", cloud-check-outline: "\uF2CB", cloud-circle: "\uE160", cloud-download: "\uE161", cloud-download-outline: "\uEB7C", cloud-lock: "\uF1F0", cloud-lock-outline: "\uF1F1", cloud-off-outline: "\uE163", cloud-outline: "\uE162", cloud-percent: "\uFA34", cloud-percent-outline: "\uFA35", cloud-print: "\uE164", cloud-print-outline: "\uE165", cloud-question: "\uEA38", cloud-refresh: "\uE529", cloud-search: "\uE955", cloud-search-outline: "\uE956", cloud-sync: "\uE63E", cloud-sync-outline: "\uF2D5", cloud-tags: "\uE7B5", cloud-upload: "\uE166", cloud-upload-outline: "\uEB7D", clover: "\uE815", coach-lamp: "\uF01F", coach-lamp-variant: "\uFA36", coat-rack: "\uF09D", code-array: "\uE167", code-braces: "\uE168", code-braces-box: "\uF0D5", code-brackets: "\uE169", code-equal: "\uE16A", code-greater-than: "\uE16B", code-greater-than-or-equal: "\uE16C", code-json: "\uE625", code-less-than: "\uE16D", code-less-than-or-equal: "\uE16E", code-not-equal: "\uE16F", code-not-equal-variant: "\uE170", code-parentheses: "\uE171", code-parentheses-box: "\uF0D6", code-string: "\uE172", code-tags: "\uE173", code-tags-check: "\uE693", codepen: "\uE174", coffee: "\uE175", coffee-maker: "\uF09E", coffee-maker-check: "\uF930", coffee-maker-check-outline: "\uF931", coffee-maker-outline: "\uF81A", coffee-off: "\uEFA9", coffee-off-outline: "\uEFAA", coffee-outline: "\uE6C9", coffee-to-go: "\uE176", coffee-to-go-outline: "\uF30D", coffin: "\uEB7E", cog: "\uE492", cog-box: "\uE493", cog-clockwise: "\uF1DC", cog-counterclockwise: "\uF1DD", cog-off: "\uF3CD", cog-off-outline: "\uF3CE", cog-outline: "\uE8BA", cog-pause: "\uF932", cog-pause-outline: "\uF933", cog-play: "\uF934", cog-play-outline: "\uF935", cog-refresh: "\uF45D", cog-refresh-outline: "\uF45E", cog-stop: "\uF936", cog-stop-outline: "\uF937", cog-sync: "\uF45F", cog-sync-outline: "\uF460", cog-transfer: "\uF05A", cog-transfer-outline: "\uF05B", cogs: "\uE8D5", collage: "\uE63F", collapse-all: "\uEAA5", collapse-all-outline: "\uEAA6", color-helper: "\uE178", comma: "\uEE22", comma-box: "\uEE2A", comma-box-outline: "\uEE23", comma-circle: "\uEE24", comma-circle-outline: "\uEE25", comment: "\uE179", comment-account: "\uE17A", comment-account-outline: "\uE17B", comment-alert: "\uE17C", comment-alert-outline: "\uE17D", comment-arrow-left: "\uE9E0", comment-arrow-left-outline: "\uE9E1", comment-arrow-right: "\uE9E2", comment-arrow-right-outline: "\uE9E3", comment-bookmark: "\uF5AD", comment-bookmark-outline: "\uF5AE", comment-check: "\uE17E", comment-check-outline: "\uE17F", comment-edit: "\uF1BE", comment-edit-outline: "\uF2C3", comment-eye: "\uEA39", comment-eye-outline: "\uEA3A", comment-flash: "\uF5AF", comment-flash-outline: "\uF5B0", comment-minus: "\uF5DE", comment-minus-outline: "\uF5DF", comment-multiple: "\uE85E", comment-multiple-outline: "\uE180", comment-off: "\uF5E0", comment-off-outline: "\uF5E1", comment-outline: "\uE181", comment-plus: "\uE9E4", comment-plus-outline: "\uE182", comment-processing: "\uE183", comment-processing-outline: "\uE184", comment-question: "\uE816", comment-question-outline: "\uE185", comment-quote: "\uF020", comment-quote-outline: "\uF021", comment-remove: "\uE5DD", comment-remove-outline: "\uE186", comment-search: "\uEA3B", comment-search-outline: "\uEA3C", comment-text: "\uE187", comment-text-multiple: "\uE85F", comment-text-multiple-outline: "\uE860", comment-text-outline: "\uE188", compare: "\uE189", compare-horizontal: "\uF491", compare-remove: "\uF8B2", compare-vertical: "\uF492", compass: "\uE18A", compass-off: "\uEB7F", compass-off-outline: "\uEB80", compass-outline: "\uE18B", compass-rose: "\uF381", compost: "\uFA37", cone: "\uF94B", cone-off: "\uF94C", connection: "\uF615", console: "\uE18C", console-line: "\uE7B6", console-network: "\uE8A8", console-network-outline: "\uEC5F", consolidate: "\uF0D7", contactless-payment: "\uED69", contactless-payment-circle: "\uE320", contactless-payment-circle-outline: "\uE407", contacts: "\uE6CA", contacts-outline: "\uE5B7", contain: "\uEA3D", contain-end: "\uEA3E", contain-start: "\uEA3F", content-copy: "\uE18E", content-cut: "\uE18F", content-duplicate: "\uE190", content-paste: "\uE191", content-save: "\uE192", content-save-alert: "\uEF41", content-save-alert-outline: "\uEF42", content-save-all: "\uE193", content-save-all-outline: "\uEF43", content-save-check: "\uF8E9", content-save-check-outline: "\uF8EA", content-save-cog: "\uF45A", content-save-cog-outline: "\uF45B", content-save-edit: "\uECFA", content-save-edit-outline: "\uECFB", content-save-move: "\uEE26", content-save-move-outline: "\uEE27", content-save-off: "\uF642", content-save-off-outline: "\uF643", content-save-outline: "\uE817", content-save-settings: "\uE61A", content-save-settings-outline: "\uEB2D", contrast: "\uE194", contrast-box: "\uE195", contrast-circle: "\uE196", controller-classic: "\uEB81", controller-classic-outline: "\uEB82", cookie: "\uE197", cookie-alert: "\uF6CF", cookie-alert-outline: "\uF6D0", cookie-check: "\uF6D1", cookie-check-outline: "\uF6D2", cookie-clock: "\uF6E3", cookie-clock-outline: "\uF6E4", cookie-cog: "\uF6D3", cookie-cog-outline: "\uF6D4", cookie-edit: "\uF6E5", cookie-edit-outline: "\uF6E6", cookie-lock: "\uF6E7", cookie-lock-outline: "\uF6E8", cookie-minus: "\uF6D9", cookie-minus-outline: "\uF6DA", cookie-off: "\uF6E9", cookie-off-outline: "\uF6EA", cookie-outline: "\uF6DD", cookie-plus: "\uF6D5", cookie-plus-outline: "\uF6D6", cookie-refresh: "\uF6EB", cookie-refresh-outline: "\uF6EC", cookie-remove: "\uF6D7", cookie-remove-outline: "\uF6D8", cookie-settings: "\uF6DB", cookie-settings-outline: "\uF6DC", coolant-temperature: "\uE3C7", copyleft: "\uF938", copyright: "\uE5E5", cordova: "\uE957", corn: "\uE7B7", corn-off: "\uF3EE", cosine-wave: "\uF478", counter: "\uE198", countertop: "\uF81B", countertop-outline: "\uF81C", cow: "\uE199", cow-off: "\uF8FB", cpu-32-bit: "\uEEDE", cpu-64-bit: "\uEEDF", cradle: "\uF98A", cradle-outline: "\uF990", crane: "\uE861", creation: "\uE673", creative-commons: "\uED6A", credit-card: "\uEFEE", credit-card-check: "\uF3CF", credit-card-check-outline: "\uF3D0", credit-card-chip: "\uF90E", credit-card-chip-outline: "\uF90F", credit-card-clock: "\uEEE0", credit-card-clock-outline: "\uEEE1", credit-card-edit: "\uF7D6", credit-card-edit-outline: "\uF7D7", credit-card-fast: "\uF910", credit-card-fast-outline: "\uF911", credit-card-lock: "\uF8E6", credit-card-lock-outline: "\uF8E7", credit-card-marker: "\uE6A7", credit-card-marker-outline: "\uEDBD", credit-card-minus: "\uEFAB", credit-card-minus-outline: "\uEFAC", credit-card-multiple: "\uEFEF", credit-card-multiple-outline: "\uE19B", credit-card-off: "\uEFF0", credit-card-off-outline: "\uE5E3", credit-card-outline: "\uE19A", credit-card-plus: "\uEFF1", credit-card-plus-outline: "\uE675", credit-card-refresh: "\uF644", credit-card-refresh-outline: "\uF645", credit-card-refund: "\uEFF2", credit-card-refund-outline: "\uEAA7", credit-card-remove: "\uEFAD", credit-card-remove-outline: "\uEFAE", credit-card-scan: "\uEFF3", credit-card-scan-outline: "\uE19C", credit-card-search: "\uF646", credit-card-search-outline: "\uF647", credit-card-settings: "\uEFF4", credit-card-settings-outline: "\uE8D6", credit-card-sync: "\uF648", credit-card-sync-outline: "\uF649", credit-card-wireless: "\uE801", credit-card-wireless-off: "\uE579", credit-card-wireless-off-outline: "\uE57A", credit-card-wireless-outline: "\uED6B", cricket: "\uED6C", crop: "\uE19D", crop-free: "\uE19E", crop-landscape: "\uE19F", crop-portrait: "\uE1A0", crop-rotate: "\uE695", crop-square: "\uE1A1", cross: "\uE952", cross-bolnisi: "\uECEC", cross-celtic: "\uECF4", cross-outline: "\uECF5", crosshairs: "\uE1A2", crosshairs-gps: "\uE1A3", crosshairs-off: "\uEF44", crosshairs-question: "\uF135", crowd: "\uF974", crown: "\uE1A4", crown-circle: "\uF7DB", crown-circle-outline: "\uF7DC", crown-outline: "\uF1CF", cryengine: "\uE958", crystal-ball: "\uEB2E", cube: "\uE1A5", cube-off: "\uF41B", cube-off-outline: "\uF41C", cube-outline: "\uE1A6", cube-scan: "\uEB83", cube-send: "\uE1A7", cube-unfolded: "\uE1A8", cup: "\uE1A9", cup-off: "\uE5E4", cup-off-outline: "\uF37C", cup-outline: "\uF30E", cup-water: "\uE1AA", cupboard: "\uEF45", cupboard-outline: "\uEF46", cupcake: "\uE959", curling: "\uE862", currency-bdt: "\uE863", currency-brl: "\uEB84", currency-btc: "\uE1AB", currency-cny: "\uE7B9", currency-eth: "\uE7BA", currency-eur: "\uE1AC", currency-eur-off: "\uF314", currency-fra: "\uFA38", currency-gbp: "\uE1AD", currency-ils: "\uEC60", currency-inr: "\uE1AE", currency-jpy: "\uE7BB", currency-krw: "\uE7BC", currency-kzt: "\uE864", currency-mnt: "\uF511", currency-ngn: "\uE1AF", currency-php: "\uE9E5", currency-rial: "\uEE9B", currency-rub: "\uE1B0", currency-rupee: "\uF975", currency-sign: "\uE7BD", currency-try: "\uE1B1", currency-twd: "\uE7BE", currency-usd: "\uE1C0", currency-usd-off: "\uE679", current-ac: "\uF47F", current-dc: "\uE95B", cursor-default: "\uE1BF", cursor-default-click: "\uECFC", cursor-default-click-outline: "\uECFD", cursor-default-gesture: "\uF126", cursor-default-gesture-outline: "\uF127", cursor-default-outline: "\uE1BE", cursor-move: "\uE1BD", cursor-pointer: "\uE1BC", cursor-text: "\uE5E6", curtains: "\uF845", curtains-closed: "\uF846", cylinder: "\uF94D", cylinder-off: "\uF94E", dance-ballroom: "\uF5FA", dance-pole: "\uF577", data-matrix: "\uF53B", data-matrix-edit: "\uF53C", data-matrix-minus: "\uF53D", data-matrix-plus: "\uF53E", data-matrix-remove: "\uF53F", data-matrix-scan: "\uF540", database: "\uE1BB", database-alert: "\uF639", database-alert-outline: "\uF623", database-arrow-down: "\uF63A", database-arrow-down-outline: "\uF624", database-arrow-left: "\uF63B", database-arrow-left-outline: "\uF625", database-arrow-right: "\uF63C", database-arrow-right-outline: "\uF626", database-arrow-up: "\uF63D", database-arrow-up-outline: "\uF627", database-check: "\uEAA8", database-check-outline: "\uF628", database-clock: "\uF63E", database-clock-outline: "\uF629", database-cog: "\uF64A", database-cog-outline: "\uF64B", database-edit: "\uEB85", database-edit-outline: "\uF62A", database-export: "\uE95D", database-export-outline: "\uF62B", database-eye: "\uF91E", database-eye-off: "\uF91F", database-eye-off-outline: "\uF920", database-eye-outline: "\uF921", database-import: "\uE95C", database-import-outline: "\uF62C", database-lock: "\uEAA9", database-lock-outline: "\uF62D", database-marker: "\uF2F5", database-marker-outline: "\uF62E", database-minus: "\uE1BA", database-minus-outline: "\uF62F", database-off: "\uF63F", database-off-outline: "\uF630", database-outline: "\uF631", database-plus: "\uE1B9", database-plus-outline: "\uF632", database-refresh: "\uE5C1", database-refresh-outline: "\uF633", database-remove: "\uECFF", database-remove-outline: "\uF634", database-search: "\uE865", database-search-outline: "\uF635", database-settings: "\uED00", database-settings-outline: "\uF636", database-sync: "\uECFE", database-sync-outline: "\uF637", death-star: "\uE8D7", death-star-variant: "\uE8D8", deathly-hallows: "\uEB86", debian: "\uE8D9", debug-step-into: "\uE1B8", debug-step-out: "\uE1B7", debug-step-over: "\uE1B6", decagram: "\uE76B", decagram-outline: "\uE76C", decimal: "\uF0A0", decimal-comma: "\uF0A1", decimal-comma-decrease: "\uF0A2", decimal-comma-increase: "\uF0A3", decimal-decrease: "\uE1B5", decimal-increase: "\uE1B4", delete: "\uE1B3", delete-alert: "\uF0A4", delete-alert-outline: "\uF0A5", delete-circle: "\uE682", delete-circle-outline: "\uEB87", delete-clock: "\uF555", delete-clock-outline: "\uF556", delete-empty: "\uE6CB", delete-empty-outline: "\uEE9C", delete-forever: "\uE5E7", delete-forever-outline: "\uEB88", delete-off: "\uF0A6", delete-off-outline: "\uF0A7", delete-outline: "\uE9E6", delete-restore: "\uE818", delete-sweep: "\uE5E8", delete-sweep-outline: "\uEC61", delete-variant: "\uE1B2", delta: "\uE1C1", desk: "\uF238", desk-lamp: "\uE95E", deskphone: "\uE1C2", desktop-classic: "\uE7BF", desktop-mac: "\uE1C3", desktop-mac-dashboard: "\uE9E7", desktop-tower: "\uE1C4", desktop-tower-monitor: "\uEAAA", details: "\uE1C5", dev-to: "\uED6D", developer-board: "\uE696", deviantart: "\uE1C6", devices: "\uEFAF", dharmachakra: "\uE94A", diabetes: "\uF125", dialpad: "\uE61B", diameter: "\uEC62", diameter-outline: "\uEC63", diameter-variant: "\uEC64", diamond: "\uEB89", diamond-outline: "\uEB8A", diamond-stone: "\uE1C7", dice-1: "\uE1C9", dice-1-outline: "\uF149", dice-2: "\uE1CA", dice-2-outline: "\uF14A", dice-3: "\uE1CB", dice-3-outline: "\uF14B", dice-4: "\uE1CC", dice-4-outline: "\uF14C", dice-5: "\uE1CD", dice-5-outline: "\uF14D", dice-6: "\uE1CE", dice-6-outline: "\uF14E", dice-d10: "\uF152", dice-d10-outline: "\uE76E", dice-d12: "\uF153", dice-d12-outline: "\uE866", dice-d20: "\uF154", dice-d20-outline: "\uE5E9", dice-d4: "\uF14F", dice-d4-outline: "\uE5EA", dice-d6: "\uF150", dice-d6-outline: "\uE5EC", dice-d8: "\uF151", dice-d8-outline: "\uE5EB", dice-multiple: "\uE76D", dice-multiple-outline: "\uF155", digital-ocean: "\uF236", dip-switch: "\uE7C0", directions: "\uE1CF", directions-fork: "\uE640", disc: "\uE5ED", disc-alert: "\uE1D0", disc-player: "\uE95F", discord: "\uE66E", dishwasher: "\uEAAB", dishwasher-alert: "\uF1B7", dishwasher-off: "\uF1B8", disqus: "\uE1D1", distribute-horizontal-center: "\uF1C8", distribute-horizontal-left: "\uF1C7", distribute-horizontal-right: "\uF1C9", distribute-vertical-bottom: "\uF1CA", distribute-vertical-center: "\uF1CB", distribute-vertical-top: "\uF1CC", diversify: "\uF876", diving: "\uF976", diving-flippers: "\uEDBE", diving-helmet: "\uEDBF", diving-scuba: "\uEDC0", diving-scuba-flag: "\uEDC1", diving-scuba-tank: "\uEDC2", diving-scuba-tank-multiple: "\uEDC3", diving-snorkel: "\uEDC4", division: "\uE1D3", division-box: "\uE1D4", dlna: "\uEA40", dna: "\uE683", dns: "\uE1D5", dns-outline: "\uEB8B", dock-bottom: "\uF0A8", dock-left: "\uF0A9", dock-right: "\uF0AA", dock-top: "\uF512", dock-window: "\uF0AB", docker: "\uE867", doctor: "\uEA41", dog: "\uEA42", dog-service: "\uEAAC", dog-side: "\uEA43", dog-side-off: "\uF6ED", dolby: "\uE6B2", dolly: "\uEE9D", dolphin: "\uF8B3", domain: "\uE1D6", domain-off: "\uED6E", domain-plus: "\uF0AC", domain-remove: "\uF0AD", dome-light: "\uF41D", domino-mask: "\uF022", donkey: "\uE7C1", door: "\uE819", door-closed: "\uE81A", door-closed-lock: "\uF0AE", door-open: "\uE81B", door-sliding: "\uF81D", door-sliding-lock: "\uF81E", door-sliding-open: "\uF81F", doorbell: "\uF2E5", doorbell-video: "\uE868", dot-net: "\uEAAD", dots-circle: "\uF977", dots-grid: "\uF5FB", dots-hexagon: "\uF5FE", dots-horizontal: "\uE1D7", dots-horizontal-circle: "\uE7C2", dots-horizontal-circle-outline: "\uEB8C", dots-square: "\uF5FC", dots-triangle: "\uF5FD", dots-vertical: "\uE1D8", dots-vertical-circle: "\uE7C3", dots-vertical-circle-outline: "\uEB8D", download: "\uE1D9", download-box: "\uF461", download-box-outline: "\uF462", download-circle: "\uF463", download-circle-outline: "\uF464", download-lock: "\uF31F", download-lock-outline: "\uF320", download-multiple: "\uE9E8", download-network: "\uE6F3", download-network-outline: "\uEC65", download-off: "\uF0AF", download-off-outline: "\uF0B0", download-outline: "\uEB8E", drag: "\uE1DA", drag-horizontal: "\uE1DB", drag-horizontal-variant: "\uF2EF", drag-variant: "\uEB8F", drag-vertical: "\uE1DC", drag-vertical-variant: "\uF2F0", drama-masks: "\uED01", draw: "\uEF48", draw-pen: "\uF9B8", drawing: "\uE1DD", drawing-box: "\uE1DE", dresser: "\uEF49", dresser-outline: "\uEF4A", drone: "\uE1E1", dropbox: "\uE1E2", drupal: "\uE1E3", duck: "\uE1E4", dumbbell: "\uE1E5", dump-truck: "\uEC66", ear-hearing: "\uE7C4", ear-hearing-loop: "\uFAED", ear-hearing-off: "\uEA44", earbuds: "\uF84E", earbuds-off: "\uF84F", earbuds-off-outline: "\uF850", earbuds-outline: "\uF851", earth: "\uE1E6", earth-arrow-right: "\uF310", earth-box: "\uE6CC", earth-box-minus: "\uF406", earth-box-off: "\uE6CD", earth-box-plus: "\uF405", earth-box-remove: "\uF407", earth-minus: "\uF403", earth-off: "\uE1E7", earth-plus: "\uF402", earth-remove: "\uF404", egg: "\uEAAE", egg-easter: "\uEAAF", egg-fried: "\uF849", egg-off: "\uF3EF", egg-off-outline: "\uF3F0", egg-outline: "\uF3F1", eiffel-tower: "\uF56A", eight-track: "\uE9E9", eject: "\uE1E9", eject-outline: "\uEB90", electric-switch: "\uEE9E", electric-switch-closed: "\uF0D8", electron-framework: "\uF023", elephant: "\uE7C5", elevation-decline: "\uE1EA", elevation-rise: "\uE1EB", elevator: "\uE1EC", elevator-down: "\uF2C1", elevator-passenger: "\uF380", elevator-passenger-off: "\uF978", elevator-passenger-off-outline: "\uF979", elevator-passenger-outline: "\uF97A", elevator-up: "\uF2C0", ellipse: "\uEE9F", ellipse-outline: "\uEEA0", email: "\uE1ED", email-alert: "\uE6CE", email-alert-outline: "\uED41", email-box: "\uED02", email-check: "\uEAB0", email-check-outline: "\uEAB1", email-edit: "\uEEE2", email-edit-outline: "\uEEE3", email-fast: "\uF86E", email-fast-outline: "\uF86F", email-lock: "\uE1F0", email-mark-as-unread: "\uEB91", email-minus: "\uEEE4", email-minus-outline: "\uEEE5", email-multiple: "\uEEE6", email-multiple-outline: "\uEEE7", email-newsletter: "\uEFB0", email-off: "\uF3E2", email-off-outline: "\uF3E3", email-open: "\uE1EE", email-open-multiple: "\uEEE8", email-open-multiple-outline: "\uEEE9", email-open-outline: "\uE5EE", email-outline: "\uE1EF", email-plus: "\uE9EA", email-plus-outline: "\uE9EB", email-receive: "\uF0D9", email-receive-outline: "\uF0DA", email-remove: "\uF660", email-remove-outline: "\uF661", email-seal: "\uF95A", email-seal-outline: "\uF95B", email-search: "\uE960", email-search-outline: "\uE961", email-send: "\uF0DB", email-send-outline: "\uF0DC", email-sync: "\uF2C6", email-sync-outline: "\uF2C7", email-variant: "\uE5EF", ember: "\uEB2F", emby: "\uE6B3", emoticon: "\uEC67", emoticon-angry: "\uEC68", emoticon-angry-outline: "\uEC69", emoticon-confused: "\uF0DD", emoticon-confused-outline: "\uF0DE", emoticon-cool: "\uEC6A", emoticon-cool-outline: "\uE1F2", emoticon-cry: "\uEC6B", emoticon-cry-outline: "\uEC6C", emoticon-dead: "\uEC6D", emoticon-dead-outline: "\uE69A", emoticon-devil: "\uEC6E", emoticon-devil-outline: "\uE1F3", emoticon-excited: "\uEC6F", emoticon-excited-outline: "\uE69B", emoticon-frown: "\uEF4B", emoticon-frown-outline: "\uEF4C", emoticon-happy: "\uEC70", emoticon-happy-outline: "\uE1F4", emoticon-kiss: "\uEC71", emoticon-kiss-outline: "\uEC72", emoticon-lol: "\uF213", emoticon-lol-outline: "\uF214", emoticon-neutral: "\uEC73", emoticon-neutral-outline: "\uE1F5", emoticon-outline: "\uE1F1", emoticon-poop: "\uE1F6", emoticon-poop-outline: "\uEC74", emoticon-sad: "\uEC75", emoticon-sad-outline: "\uE1F7", emoticon-sick: "\uF57B", emoticon-sick-outline: "\uF57C", emoticon-tongue: "\uE1F8", emoticon-tongue-outline: "\uEC76", emoticon-wink: "\uEC77", emoticon-wink-outline: "\uEC78", engine: "\uE1F9", engine-off: "\uEA45", engine-off-outline: "\uEA46", engine-outline: "\uE1FA", epsilon: "\uF0DF", equal: "\uE1FB", equal-box: "\uE1FC", equalizer: "\uEEA1", equalizer-outline: "\uEEA2", eraser: "\uE1FD", eraser-variant: "\uE641", escalator: "\uE1FE", escalator-box: "\uF398", escalator-down: "\uF2BF", escalator-up: "\uF2BE", eslint: "\uEC79", et: "\uEAB2", ethereum: "\uE869", ethernet: "\uE1FF", ethernet-cable: "\uE200", ethernet-cable-off: "\uE201", ev-plug-ccs1: "\uF518", ev-plug-ccs2: "\uF519", ev-plug-chademo: "\uF51A", ev-plug-tesla: "\uF51B", ev-plug-type1: "\uF51C", ev-plug-type2: "\uF51D", ev-station: "\uE5F0", evernote: "\uE203", excavator: "\uF024", exclamation: "\uE204", exclamation-thick: "\uF237", exit-run: "\uEA47", exit-to-app: "\uE205", expand-all: "\uEAB3", expand-all-outline: "\uEAB4", expansion-card: "\uE8AD", expansion-card-variant: "\uEFB1", exponent: "\uE962", exponent-box: "\uE963", export: "\uE206", export-variant: "\uEB92", eye: "\uE207", eye-arrow-left: "\uF8FC", eye-arrow-left-outline: "\uF8FD", eye-arrow-right: "\uF8FE", eye-arrow-right-outline: "\uF8FF", eye-check: "\uED03", eye-check-outline: "\uED04", eye-circle: "\uEB93", eye-circle-outline: "\uEB94", eye-minus: "\uF025", eye-minus-outline: "\uF026", eye-off: "\uE208", eye-off-outline: "\uE6D0", eye-outline: "\uE6CF", eye-plus: "\uE86A", eye-plus-outline: "\uE86B", eye-refresh: "\uF97B", eye-refresh-outline: "\uF97C", eye-remove: "\uF5E2", eye-remove-outline: "\uF5E3", eye-settings: "\uE86C", eye-settings-outline: "\uE86D", eyedropper: "\uE209", eyedropper-minus: "\uF3DC", eyedropper-off: "\uF3DE", eyedropper-plus: "\uF3DB", eyedropper-remove: "\uF3DD", eyedropper-variant: "\uE20A", face-agent: "\uED6F", face-man: "\uE642", face-man-outline: "\uEB95", face-man-profile: "\uE643", face-man-shimmer: "\uF5CB", face-man-shimmer-outline: "\uF5CC", face-mask: "\uF585", face-mask-outline: "\uF586", face-recognition: "\uEC7A", face-woman: "\uF076", face-woman-outline: "\uF077", face-woman-profile: "\uF075", face-woman-shimmer: "\uF5CD", face-woman-shimmer-outline: "\uF5CE", facebook: "\uE20B", facebook-gaming: "\uE7DC", facebook-messenger: "\uE20D", facebook-workplace: "\uEB30", factory: "\uE20E", family-tree: "\uF60D", fan: "\uE20F", fan-alert: "\uF46B", fan-auto: "\uF71C", fan-chevron-down: "\uF46C", fan-chevron-up: "\uF46D", fan-clock: "\uFA39", fan-minus: "\uF46F", fan-off: "\uE81C", fan-plus: "\uF46E", fan-remove: "\uF470", fan-speed-1: "\uF471", fan-speed-2: "\uF472", fan-speed-3: "\uF473", fast-forward: "\uE210", fast-forward-10: "\uED70", fast-forward-15: "\uF939", fast-forward-30: "\uED05", fast-forward-5: "\uF1F7", fast-forward-60: "\uF60A", fast-forward-outline: "\uE6D1", fax: "\uE211", feather: "\uE6D2", feature-search: "\uEA48", feature-search-outline: "\uEA49", fedora: "\uE8DA", fence: "\uF799", fence-electric: "\uF7F5", fencing: "\uF4C0", ferris-wheel: "\uEEA3", ferry: "\uE212", file: "\uE213", file-account: "\uE73A", file-account-outline: "\uF027", file-alert: "\uEA4A", file-alert-outline: "\uEA4B", file-arrow-left-right: "\uFA92", file-arrow-left-right-outline: "\uFA93", file-arrow-up-down: "\uFA94", file-arrow-up-down-outline: "\uFA95", file-cabinet: "\uEAB5", file-cad: "\uEEEA", file-cad-box: "\uEEEB", file-cancel: "\uEDC5", file-cancel-outline: "\uEDC6", file-certificate: "\uF185", file-certificate-outline: "\uF186", file-chart: "\uE214", file-chart-check: "\uF9C5", file-chart-check-outline: "\uF9C6", file-chart-outline: "\uF028", file-check: "\uE215", file-check-outline: "\uEE28", file-clock: "\uF2E0", file-clock-outline: "\uF2E1", file-cloud: "\uE216", file-cloud-outline: "\uF029", file-code: "\uE22D", file-code-outline: "\uF02A", file-cog: "\uF07A", file-cog-outline: "\uF07B", file-compare: "\uE8A9", file-delimited: "\uE217", file-delimited-outline: "\uEEA4", file-document: "\uE218", file-document-alert: "\uFA96", file-document-alert-outline: "\uFA97", file-document-check: "\uFA98", file-document-check-outline: "\uFA99", file-document-edit: "\uEDC7", file-document-edit-outline: "\uEDC8", file-document-minus: "\uFA9A", file-document-minus-outline: "\uFA9B", file-document-multiple: "\uF516", file-document-multiple-outline: "\uF517", file-document-outline: "\uE9ED", file-document-plus: "\uFA9C", file-document-plus-outline: "\uFA9D", file-document-remove: "\uFA9E", file-document-remove-outline: "\uFA9F", file-download: "\uE964", file-download-outline: "\uE965", file-edit: "\uF1E6", file-edit-outline: "\uF1E7", file-excel: "\uE21A", file-excel-box: "\uE21B", file-excel-box-outline: "\uF02B", file-excel-outline: "\uF02C", file-export: "\uE21C", file-export-outline: "\uF02D", file-eye: "\uEDC9", file-eye-outline: "\uEDCA", file-find: "\uE21D", file-find-outline: "\uEB96", file-gif-box: "\uED77", file-hidden: "\uE612", file-image: "\uE21E", file-image-marker: "\uF771", file-image-marker-outline: "\uF772", file-image-minus: "\uF93A", file-image-minus-outline: "\uF93B", file-image-outline: "\uEEAF", file-image-plus: "\uF93C", file-image-plus-outline: "\uF93D", file-image-remove: "\uF93E", file-image-remove-outline: "\uF93F", file-import: "\uE21F", file-import-outline: "\uF02E", file-jpg-box: "\uE224", file-key: "\uF183", file-key-outline: "\uF184", file-link: "\uF176", file-link-outline: "\uF177", file-lock: "\uE220", file-lock-open: "\uF9C7", file-lock-open-outline: "\uF9C8", file-lock-outline: "\uF02F", file-marker: "\uF773", file-marker-outline: "\uF774", file-minus: "\uFAA0", file-minus-outline: "\uFAA1", file-move: "\uEAB8", file-move-outline: "\uF030", file-multiple: "\uE221", file-multiple-outline: "\uF031", file-music: "\uE222", file-music-outline: "\uEE29", file-outline: "\uE223", file-pdf-box: "\uE225", file-percent: "\uE81D", file-percent-outline: "\uF032", file-phone: "\uF178", file-phone-outline: "\uF179", file-plus: "\uE751", file-plus-outline: "\uEEEC", file-png-box: "\uEE2C", file-powerpoint: "\uE226", file-powerpoint-box: "\uE227", file-powerpoint-box-outline: "\uF033", file-powerpoint-outline: "\uF034", file-presentation-box: "\uE228", file-question: "\uE86E", file-question-outline: "\uF035", file-refresh: "\uE917", file-refresh-outline: "\uE540", file-remove: "\uEB97", file-remove-outline: "\uF036", file-replace: "\uEB31", file-replace-outline: "\uEB32", file-restore: "\uE66F", file-restore-outline: "\uF037", file-rotate-left: "\uFA3A", file-rotate-left-outline: "\uFA3B", file-rotate-right: "\uFA3C", file-rotate-right-outline: "\uFA3D", file-search: "\uEC7B", file-search-outline: "\uEC7C", file-send: "\uE229", file-send-outline: "\uF038", file-settings: "\uF078", file-settings-outline: "\uF079", file-sign: "\uF9C2", file-star: "\uF039", file-star-outline: "\uF03A", file-swap: "\uEFB3", file-swap-outline: "\uEFB4", file-sync: "\uF215", file-sync-outline: "\uF216", file-table: "\uEC7D", file-table-box: "\uF0E0", file-table-box-multiple: "\uF0E1", file-table-box-multiple-outline: "\uF0E2", file-table-box-outline: "\uF0E3", file-table-outline: "\uEC7E", file-tree: "\uE644", file-tree-outline: "\uF3D1", file-undo: "\uE8DB", file-undo-outline: "\uF03B", file-upload: "\uEA4C", file-upload-outline: "\uEA4D", file-video: "\uE22A", file-video-outline: "\uEE2B", file-word: "\uE22B", file-word-box: "\uE22C", file-word-box-outline: "\uF03C", file-word-outline: "\uF03D", film: "\uE22E", filmstrip: "\uE22F", filmstrip-box: "\uE331", filmstrip-box-multiple: "\uED17", filmstrip-off: "\uE230", filter: "\uE231", filter-check: "\uF8EB", filter-check-outline: "\uF8EC", filter-cog: "\uFAA2", filter-cog-outline: "\uFAA3", filter-menu: "\uF0E4", filter-menu-outline: "\uF0E5", filter-minus: "\uEEED", filter-minus-outline: "\uEEEE", filter-multiple: "\uFA3E", filter-multiple-outline: "\uFA3F", filter-off: "\uF4EE", filter-off-outline: "\uF4EF", filter-outline: "\uE232", filter-plus: "\uEEEF", filter-plus-outline: "\uEEF0", filter-remove: "\uE233", filter-remove-outline: "\uE234", filter-settings: "\uFAA4", filter-settings-outline: "\uFAA5", filter-variant: "\uE235", filter-variant-minus: "\uF111", filter-variant-plus: "\uF112", filter-variant-remove: "\uF03E", finance: "\uE81E", find-replace: "\uE6D3", fingerprint: "\uE236", fingerprint-off: "\uEEB0", fire: "\uE237", fire-alert: "\uF5D6", fire-circle: "\uF806", fire-extinguisher: "\uEEF1", fire-hydrant: "\uF136", fire-hydrant-alert: "\uF137", fire-hydrant-off: "\uF138", fire-off: "\uF721", fire-truck: "\uE8AA", firebase: "\uE966", firefox: "\uE238", fireplace: "\uEE2D", fireplace-off: "\uEE2E", firewire: "\uE5BD", firework: "\uEE2F", firework-off: "\uF722", fish: "\uE239", fish-off: "\uF3F2", fishbowl: "\uEEF2", fishbowl-outline: "\uEEF3", fit-to-page: "\uEEF4", fit-to-page-outline: "\uEEF5", fit-to-screen: "\uF8F3", fit-to-screen-outline: "\uF8F4", flag: "\uE23A", flag-checkered: "\uE23B", flag-minus: "\uEB98", flag-minus-outline: "\uF0B1", flag-off: "\uF8ED", flag-off-outline: "\uF8EE", flag-outline: "\uE23C", flag-plus: "\uEB99", flag-plus-outline: "\uF0B2", flag-remove: "\uEB9A", flag-remove-outline: "\uF0B3", flag-triangle: "\uE23E", flag-variant: "\uE23F", flag-variant-outline: "\uE23D", flare: "\uED71", flash: "\uE240", flash-alert: "\uEEF6", flash-alert-outline: "\uEEF7", flash-auto: "\uE241", flash-off: "\uE242", flash-outline: "\uE6D4", flash-red-eye: "\uE67A", flashlight: "\uE243", flashlight-off: "\uE244", flask: "\uE092", flask-empty: "\uE093", flask-empty-minus: "\uF239", flask-empty-minus-outline: "\uF23A", flask-empty-off: "\uF3F3", flask-empty-off-outline: "\uF3F4", flask-empty-outline: "\uE094", flask-empty-plus: "\uF23B", flask-empty-plus-outline: "\uF23C", flask-empty-remove: "\uF23D", flask-empty-remove-outline: "\uF23E", flask-minus: "\uF23F", flask-minus-outline: "\uF240", flask-off: "\uF3F5", flask-off-outline: "\uF3F6", flask-outline: "\uE095", flask-plus: "\uF241", flask-plus-outline: "\uF242", flask-remove: "\uF243", flask-remove-outline: "\uF244", flask-round-bottom: "\uF24A", flask-round-bottom-empty: "\uF24B", flask-round-bottom-empty-outline: "\uF24C", flask-round-bottom-outline: "\uF24D", fleur-de-lis: "\uF302", flip-horizontal: "\uF0E6", flip-to-back: "\uE246", flip-to-front: "\uE247", flip-vertical: "\uF0E7", floor-lamp: "\uE8DC", floor-lamp-dual: "\uF03F", floor-lamp-dual-outline: "\uF7CD", floor-lamp-outline: "\uF7C7", floor-lamp-torchiere: "\uF746", floor-lamp-torchiere-outline: "\uF7D5", floor-lamp-torchiere-variant: "\uF040", floor-lamp-torchiere-variant-outline: "\uF7CE", floor-plan: "\uE820", floppy: "\uE248", floppy-variant: "\uE9EE", flower: "\uE249", flower-outline: "\uE9EF", flower-pollen: "\uF884", flower-pollen-outline: "\uF885", flower-poppy: "\uED07", flower-tulip: "\uE9F0", flower-tulip-outline: "\uE9F1", focus-auto: "\uEF4D", focus-field: "\uEF4E", focus-field-horizontal: "\uEF4F", focus-field-vertical: "\uEF50", folder: "\uE24A", folder-account: "\uE24B", folder-account-outline: "\uEB9B", folder-alert: "\uEDCB", folder-alert-outline: "\uEDCC", folder-arrow-down: "\uF9E7", folder-arrow-down-outline: "\uF9E8", folder-arrow-left: "\uF9E9", folder-arrow-left-outline: "\uF9EA", folder-arrow-left-right: "\uF9EB", folder-arrow-left-right-outline: "\uF9EC", folder-arrow-right: "\uF9ED", folder-arrow-right-outline: "\uF9EE", folder-arrow-up: "\uF9EF", folder-arrow-up-down: "\uF9F0", folder-arrow-up-down-outline: "\uF9F1", folder-arrow-up-outline: "\uF9F2", folder-cancel: "\uF9F3", folder-cancel-outline: "\uF9F4", folder-check: "\uF97D", folder-check-outline: "\uF97E", folder-clock: "\uEAB9", folder-clock-outline: "\uEABA", folder-cog: "\uF07E", folder-cog-outline: "\uF07F", folder-download: "\uE24C", folder-download-outline: "\uF0E8", folder-edit: "\uE8DD", folder-edit-outline: "\uEDCD", folder-eye: "\uF789", folder-eye-outline: "\uF78A", folder-file: "\uF9F5", folder-file-outline: "\uF9F6", folder-google-drive: "\uE24D", folder-heart: "\uF0E9", folder-heart-outline: "\uF0EA", folder-hidden: "\uF79D", folder-home: "\uF0B4", folder-home-outline: "\uF0B5", folder-image: "\uE24E", folder-information: "\uF0B6", folder-information-outline: "\uF0B7", folder-key: "\uE8AB", folder-key-network: "\uE8AC", folder-key-network-outline: "\uEC7F", folder-key-outline: "\uF0EB", folder-lock: "\uE24F", folder-lock-open: "\uE250", folder-lock-open-outline: "\uFAA6", folder-lock-outline: "\uFAA7", folder-marker: "\uF26C", folder-marker-outline: "\uF26D", folder-move: "\uE251", folder-move-outline: "\uF245", folder-multiple: "\uE252", folder-multiple-image: "\uE253", folder-multiple-outline: "\uE254", folder-multiple-plus: "\uF47D", folder-multiple-plus-outline: "\uF47E", folder-music: "\uF358", folder-music-outline: "\uF359", folder-network: "\uE86F", folder-network-outline: "\uEC80", folder-off: "\uF9F7", folder-off-outline: "\uF9F8", folder-open: "\uE76F", folder-open-outline: "\uEDCE", folder-outline: "\uE255", folder-play: "\uF9F9", folder-play-outline: "\uF9FA", folder-plus: "\uE256", folder-plus-outline: "\uEB9C", folder-pound: "\uED08", folder-pound-outline: "\uED09", folder-question: "\uF9C9", folder-question-outline: "\uF9CA", folder-refresh: "\uE748", folder-refresh-outline: "\uE541", folder-remove: "\uE257", folder-remove-outline: "\uEB9D", folder-search: "\uE967", folder-search-outline: "\uE968", folder-settings: "\uF07C", folder-settings-outline: "\uF07D", folder-star: "\uE69C", folder-star-multiple: "\uF3D2", folder-star-multiple-outline: "\uF3D3", folder-star-outline: "\uEB9E", folder-swap: "\uEFB5", folder-swap-outline: "\uEFB6", folder-sync: "\uED0A", folder-sync-outline: "\uED0B", folder-table: "\uF2E2", folder-table-outline: "\uF2E3", folder-text: "\uEC81", folder-text-outline: "\uEC82", folder-upload: "\uE258", folder-upload-outline: "\uF0EC", folder-wrench: "\uF9FB", folder-wrench-outline: "\uF9FC", folder-zip: "\uE6EA", folder-zip-outline: "\uE7B8", font-awesome: "\uE039", food: "\uE259", food-apple: "\uE25A", food-apple-outline: "\uEC83", food-croissant: "\uE7C7", food-drumstick: "\uF41E", food-drumstick-off: "\uF467", food-drumstick-off-outline: "\uF468", food-drumstick-outline: "\uF41F", food-fork-drink: "\uE5F1", food-halal: "\uF571", food-hot-dog: "\uF84A", food-kosher: "\uF572", food-off: "\uE5F2", food-off-outline: "\uF914", food-outline: "\uF915", food-steak: "\uF469", food-steak-off: "\uF46A", food-takeout-box: "\uF835", food-takeout-box-outline: "\uF836", food-turkey: "\uF71B", food-variant: "\uE25B", food-variant-off: "\uF3E4", foot-print: "\uEF51", football: "\uE25C", football-australian: "\uE25D", football-helmet: "\uE25E", forest: "\uF896", forklift: "\uE7C8", form-dropdown: "\uF3FF", form-select: "\uF400", form-textarea: "\uF094", form-textbox: "\uE60D", form-textbox-lock: "\uF35C", form-textbox-password: "\uE7F4", format-align-bottom: "\uE752", format-align-center: "\uE25F", format-align-justify: "\uE260", format-align-left: "\uE261", format-align-middle: "\uE753", format-align-right: "\uE262", format-align-top: "\uE754", format-annotation-minus: "\uEABB", format-annotation-plus: "\uE645", format-bold: "\uE263", format-clear: "\uE264", format-color-fill: "\uE265", format-color-highlight: "\uEE30", format-color-marker-cancel: "\uF312", format-color-text: "\uE69D", format-columns: "\uE8DE", format-float-center: "\uE266", format-float-left: "\uE267", format-float-none: "\uE268", format-float-right: "\uE269", format-font: "\uE6D5", format-font-size-decrease: "\uE9F2", format-font-size-increase: "\uE9F3", format-header-1: "\uE26A", format-header-2: "\uE26B", format-header-3: "\uE26C", format-header-4: "\uE26D", format-header-5: "\uE26E", format-header-6: "\uE26F", format-header-decrease: "\uE270", format-header-equal: "\uE271", format-header-increase: "\uE272", format-header-pound: "\uE273", format-horizontal-align-center: "\uE61D", format-horizontal-align-left: "\uE61E", format-horizontal-align-right: "\uE61F", format-indent-decrease: "\uE274", format-indent-increase: "\uE275", format-italic: "\uE276", format-letter-case: "\uEB33", format-letter-case-lower: "\uEB34", format-letter-case-upper: "\uEB35", format-letter-ends-with: "\uEFB7", format-letter-matches: "\uEFB8", format-letter-spacing: "\uF955", format-letter-starts-with: "\uEFB9", format-line-spacing: "\uE277", format-line-style: "\uE5C7", format-line-weight: "\uE5C8", format-list-bulleted: "\uE278", format-list-bulleted-square: "\uEDCF", format-list-bulleted-triangle: "\uEEB1", format-list-bulleted-type: "\uE279", format-list-checkbox: "\uE969", format-list-checks: "\uE755", format-list-group: "\uF85F", format-list-numbered: "\uE27A", format-list-numbered-rtl: "\uED0C", format-list-text: "\uF26E", format-overline: "\uEEB2", format-page-break: "\uE6D6", format-page-split: "\uF916", format-paint: "\uE27B", format-paragraph: "\uE27C", format-pilcrow: "\uE6D7", format-quote-close: "\uE27D", format-quote-close-outline: "\uF1A7", format-quote-open: "\uE756", format-quote-open-outline: "\uF1A6", format-rotate-90: "\uE6A9", format-section: "\uE69E", format-size: "\uE27E", format-strikethrough: "\uE27F", format-strikethrough-variant: "\uE280", format-subscript: "\uE281", format-superscript: "\uE282", format-text: "\uE283", format-text-rotation-angle-down: "\uEFBA", format-text-rotation-angle-up: "\uEFBB", format-text-rotation-down: "\uED72", format-text-rotation-down-vertical: "\uEFBC", format-text-rotation-none: "\uED73", format-text-rotation-up: "\uEFBD", format-text-rotation-vertical: "\uEFBE", format-text-variant: "\uEE31", format-text-variant-outline: "\uF50E", format-text-wrapping-clip: "\uED0D", format-text-wrapping-overflow: "\uED0E", format-text-wrapping-wrap: "\uED0F", format-textbox: "\uED10", format-textdirection-l-to-r: "\uE284", format-textdirection-r-to-l: "\uE285", format-title: "\uE5F3", format-underline: "\uE286", format-underline-wavy: "\uF8E8", format-vertical-align-bottom: "\uE620", format-vertical-align-center: "\uE621", format-vertical-align-top: "\uE622", format-wrap-inline: "\uE287", format-wrap-square: "\uE288", format-wrap-tight: "\uE289", format-wrap-top-bottom: "\uE28A", forum: "\uE28B", forum-minus: "\uFAA8", forum-minus-outline: "\uFAA9", forum-outline: "\uE821", forum-plus: "\uFAAA", forum-plus-outline: "\uFAAB", forum-remove: "\uFAAC", forum-remove-outline: "\uFAAD", forward: "\uE28C", forwardburger: "\uED74", fountain: "\uE96A", fountain-pen: "\uED11", fountain-pen-tip: "\uED12", fraction-one-half: "\uF991", freebsd: "\uE8DF", french-fries: "\uF956", frequently-asked-questions: "\uEEB3", fridge: "\uE28F", fridge-alert: "\uF1B0", fridge-alert-outline: "\uF1B1", fridge-bottom: "\uE291", fridge-industrial: "\uF5ED", fridge-industrial-alert: "\uF5EE", fridge-industrial-alert-outline: "\uF5EF", fridge-industrial-off: "\uF5F0", fridge-industrial-off-outline: "\uF5F1", fridge-industrial-outline: "\uF5F2", fridge-off: "\uF1AE", fridge-off-outline: "\uF1AF", fridge-outline: "\uE28E", fridge-top: "\uE290", fridge-variant: "\uF5F3", fridge-variant-alert: "\uF5F4", fridge-variant-alert-outline: "\uF5F5", fridge-variant-off: "\uF5F6", fridge-variant-off-outline: "\uF5F7", fridge-variant-outline: "\uF5F8", fruit-cherries: "\uF041", fruit-cherries-off: "\uF3F7", fruit-citrus: "\uF042", fruit-citrus-off: "\uF3F8", fruit-grapes: "\uF043", fruit-grapes-outline: "\uF044", fruit-pear: "\uFA0D", fruit-pineapple: "\uF045", fruit-watermelon: "\uF046", fuel: "\uE7C9", fuel-cell: "\uF8B4", fullscreen: "\uE292", fullscreen-exit: "\uE293", function: "\uE294", function-variant: "\uE870", furigana-horizontal: "\uF080", furigana-vertical: "\uF081", fuse: "\uEC84", fuse-alert: "\uF42C", fuse-blade: "\uEC85", fuse-off: "\uF42B", gamepad: "\uE295", gamepad-circle: "\uEE32", gamepad-circle-down: "\uEE33", gamepad-circle-left: "\uEE34", gamepad-circle-outline: "\uEE35", gamepad-circle-right: "\uEE36", gamepad-circle-up: "\uEE37", gamepad-down: "\uEE38", gamepad-left: "\uEE39", gamepad-outline: "\uF918", gamepad-right: "\uEE3A", gamepad-round: "\uEE3B", gamepad-round-down: "\uEE3C", gamepad-round-left: "\uEE3D", gamepad-round-outline: "\uEE3E", gamepad-round-right: "\uEE3F", gamepad-round-up: "\uEE40", gamepad-square: "\uEEB4", gamepad-square-outline: "\uEEB5", gamepad-up: "\uEE41", gamepad-variant: "\uE296", gamepad-variant-outline: "\uEEB6", gamma: "\uF0ED", gantry-crane: "\uEDD0", garage: "\uE6D8", garage-alert: "\uE871", garage-alert-variant: "\uF2D4", garage-lock: "\uF7FA", garage-open: "\uE6D9", garage-open-variant: "\uF2D3", garage-variant: "\uF2D2", garage-variant-lock: "\uF7FB", gas-burner: "\uFA1A", gas-cylinder: "\uE646", gas-station: "\uE297", gas-station-off: "\uF408", gas-station-off-outline: "\uF409", gas-station-outline: "\uEEB7", gate: "\uE298", gate-alert: "\uF7F7", gate-and: "\uE8E0", gate-arrow-left: "\uF7F6", gate-arrow-right: "\uF168", gate-nand: "\uE8E1", gate-nor: "\uE8E2", gate-not: "\uE8E3", gate-open: "\uF169", gate-or: "\uE8E4", gate-xnor: "\uE8E5", gate-xor: "\uE8E6", gatsby: "\uEE42", gauge: "\uE299", gauge-empty: "\uE872", gauge-full: "\uE873", gauge-low: "\uE874", gavel: "\uE29A", gender-female: "\uE29B", gender-male: "\uE29C", gender-male-female: "\uE29D", gender-male-female-variant: "\uF13E", gender-non-binary: "\uF13F", gender-transgender: "\uE29E", gentoo: "\uE8E7", gesture: "\uE7CA", gesture-double-tap: "\uE73B", gesture-pinch: "\uEABC", gesture-spread: "\uEABD", gesture-swipe: "\uED75", gesture-swipe-down: "\uE73C", gesture-swipe-horizontal: "\uEABE", gesture-swipe-left: "\uE73D", gesture-swipe-right: "\uE73E", gesture-swipe-up: "\uE73F", gesture-swipe-vertical: "\uEABF", gesture-tap: "\uE740", gesture-tap-box: "\uF2A8", gesture-tap-button: "\uF2A7", gesture-tap-hold: "\uED76", gesture-two-double-tap: "\uE741", gesture-two-tap: "\uE742", ghost: "\uE29F", ghost-off: "\uE9F4", ghost-off-outline: "\uF65B", ghost-outline: "\uF65C", gift: "\uEE43", gift-off: "\uF6EE", gift-off-outline: "\uF6EF", gift-open: "\uF6F0", gift-open-outline: "\uF6F1", gift-outline: "\uE2A0", git: "\uE2A1", github: "\uE2A3", gitlab: "\uEB9F", glass-cocktail: "\uE355", glass-cocktail-off: "\uF5E5", glass-flute: "\uE2A4", glass-fragile: "\uF872", glass-mug: "\uE2A5", glass-mug-off: "\uF5E6", glass-mug-variant: "\uF115", glass-mug-variant-off: "\uF5E7", glass-pint-outline: "\uF30C", glass-stange: "\uE2A6", glass-tulip: "\uE2A7", glass-wine: "\uE875", glasses: "\uE2A9", globe-light: "\uF2D6", globe-model: "\uE8E8", gmail: "\uE2AA", gnome: "\uE2AB", go-kart: "\uED78", go-kart-track: "\uED79", gog: "\uEBA0", gold: "\uF24E", golf: "\uE822", golf-cart: "\uF1A3", golf-tee: "\uF082", gondola: "\uE685", goodreads: "\uED7A", google: "\uE2AC", google-ads: "\uEC86", google-analytics: "\uE7CB", google-assistant: "\uE7CC", google-cardboard: "\uE2AD", google-chrome: "\uE2AE", google-circles: "\uE2AF", google-circles-communities: "\uE2B0", google-circles-extended: "\uE2B1", google-circles-group: "\uE2B2", google-classroom: "\uE2BF", google-cloud: "\uF1F5", google-controller: "\uE2B3", google-controller-off: "\uE2B4", google-downasaur: "\uF361", google-drive: "\uE2B5", google-earth: "\uE2B6", google-fit: "\uE96B", google-glass: "\uE2B7", google-hangouts: "\uE2C8", google-home: "\uE823", google-keep: "\uE6DB", google-lens: "\uE9F5", google-maps: "\uE5F4", google-my-business: "\uF047", google-nearby: "\uE2B8", google-play: "\uE2BB", google-plus: "\uE2BC", google-podcast: "\uEEB8", google-spreadsheet: "\uE9F6", google-street-view: "\uEC87", google-translate: "\uE2BE", gradient-horizontal: "\uF749", gradient-vertical: "\uE69F", grain: "\uED7B", graph: "\uF048", graph-outline: "\uF049", graphql: "\uE876", grass: "\uF50F", grave-stone: "\uEBA1", grease-pencil: "\uE647", greater-than: "\uE96C", greater-than-or-equal: "\uE96D", greenhouse: "\uE02C", grid: "\uE2C0", grid-large: "\uE757", grid-off: "\uE2C1", grill: "\uEE44", grill-outline: "\uF189", group: "\uE2C2", guitar-acoustic: "\uE770", guitar-electric: "\uE2C3", guitar-pick: "\uE2C4", guitar-pick-outline: "\uE2C5", guy-fawkes-mask: "\uE824", gymnastics: "\uFA40", hail: "\uEAC0", hair-dryer: "\uF0EE", hair-dryer-outline: "\uF0EF", halloween: "\uEBA2", hamburger: "\uE684", hamburger-check: "\uF775", hamburger-minus: "\uF776", hamburger-off: "\uF777", hamburger-plus: "\uF778", hamburger-remove: "\uF779", hammer: "\uE8E9", hammer-screwdriver: "\uF321", hammer-sickle: "\uF886", hammer-wrench: "\uF322", hand-back-left: "\uEE45", hand-back-left-off: "\uF82F", hand-back-left-off-outline: "\uF831", hand-back-left-outline: "\uF82B", hand-back-right: "\uEE46", hand-back-right-off: "\uF830", hand-back-right-off-outline: "\uF832", hand-back-right-outline: "\uF82C", hand-clap: "\uF94A", hand-clap-off: "\uFA41", hand-coin: "\uF88E", hand-coin-outline: "\uF88F", hand-extended: "\uF8B5", hand-extended-outline: "\uF8B6", hand-front-left: "\uF82A", hand-front-left-outline: "\uF82D", hand-front-right: "\uEA4E", hand-front-right-outline: "\uF82E", hand-heart: "\uF0F0", hand-heart-outline: "\uF57D", hand-okay: "\uEA4F", hand-peace: "\uEA50", hand-peace-variant: "\uEA51", hand-pointing-down: "\uEA52", hand-pointing-left: "\uEA53", hand-pointing-right: "\uE2C6", hand-pointing-up: "\uEA54", hand-saw: "\uEE47", hand-wash: "\uF57E", hand-wash-outline: "\uF57F", hand-water: "\uF39E", hand-wave: "\uF820", hand-wave-outline: "\uF821", handball: "\uEF52", handcuffs: "\uF13D", hands-pray: "\uE578", handshake: "\uF217", handshake-outline: "\uF5A0", hanger: "\uE2C7", hard-hat: "\uE96E", harddisk: "\uE2C9", harddisk-plus: "\uF04A", harddisk-remove: "\uF04B", hat-fedora: "\uEBA3", hazard-lights: "\uEC88", hdr: "\uED7C", hdr-off: "\uED7D", head: "\uF35D", head-alert: "\uF337", head-alert-outline: "\uF338", head-check: "\uF339", head-check-outline: "\uF33A", head-cog: "\uF33B", head-cog-outline: "\uF33C", head-dots-horizontal: "\uF33D", head-dots-horizontal-outline: "\uF33E", head-flash: "\uF33F", head-flash-outline: "\uF340", head-heart: "\uF341", head-heart-outline: "\uF342", head-lightbulb: "\uF343", head-lightbulb-outline: "\uF344", head-minus: "\uF345", head-minus-outline: "\uF346", head-outline: "\uF35E", head-plus: "\uF347", head-plus-outline: "\uF348", head-question: "\uF349", head-question-outline: "\uF34A", head-remove: "\uF34B", head-remove-outline: "\uF34C", head-snowflake: "\uF34D", head-snowflake-outline: "\uF34E", head-sync: "\uF34F", head-sync-outline: "\uF350", headphones: "\uE2CA", headphones-bluetooth: "\uE96F", headphones-box: "\uE2CB", headphones-off: "\uE7CD", headphones-settings: "\uE2CC", headset: "\uE2CD", headset-dock: "\uE2CE", headset-off: "\uE2CF", heart: "\uE2D0", heart-box: "\uE2D1", heart-box-outline: "\uE2D2", heart-broken: "\uE2D3", heart-broken-outline: "\uED13", heart-circle: "\uE970", heart-circle-outline: "\uE971", heart-cog: "\uF662", heart-cog-outline: "\uF663", heart-flash: "\uEEF8", heart-half: "\uE6DE", heart-half-full: "\uE6DD", heart-half-outline: "\uE6DF", heart-minus: "\uF42E", heart-minus-outline: "\uF431", heart-multiple: "\uEA55", heart-multiple-outline: "\uEA56", heart-off: "\uE758", heart-off-outline: "\uF433", heart-outline: "\uE2D4", heart-plus: "\uF42D", heart-plus-outline: "\uF430", heart-pulse: "\uE5F5", heart-remove: "\uF42F", heart-remove-outline: "\uF432", heart-settings: "\uF664", heart-settings-outline: "\uF665", heat-pump: "\uFA42", heat-pump-outline: "\uFA43", heat-wave: "\uFA44", heating-coil: "\uFAAE", helicopter: "\uEAC1", help: "\uE2D5", help-box: "\uE78A", help-circle: "\uE2D6", help-circle-outline: "\uE624", help-network: "\uE6F4", help-network-outline: "\uEC89", help-rhombus: "\uEBA4", help-rhombus-outline: "\uEBA5", hexadecimal: "\uF2A6", hexagon: "\uE2D7", hexagon-multiple: "\uE6E0", hexagon-multiple-outline: "\uF0F1", hexagon-outline: "\uE2D8", hexagon-slice-1: "\uEAC2", hexagon-slice-2: "\uEAC3", hexagon-slice-3: "\uEAC4", hexagon-slice-4: "\uEAC5", hexagon-slice-5: "\uEAC6", hexagon-slice-6: "\uEAC7", hexagram: "\uEAC8", hexagram-outline: "\uEAC9", high-definition: "\uE7CE", high-definition-box: "\uE877", highway: "\uE5F6", hiking: "\uED7E", history: "\uE2D9", hockey-puck: "\uE878", hockey-sticks: "\uE879", hololens: "\uE2DA", home: "\uE2DB", home-account: "\uE825", home-alert: "\uE87A", home-alert-outline: "\uF5CF", home-analytics: "\uEEB9", home-assistant: "\uE7CF", home-automation: "\uE7D0", home-battery: "\uF900", home-battery-outline: "\uF901", home-circle: "\uE7D1", home-circle-outline: "\uF04C", home-city: "\uED14", home-city-outline: "\uED15", home-clock: "\uFA11", home-clock-outline: "\uFA12", home-edit: "\uF158", home-edit-outline: "\uF159", home-export-outline: "\uEF9A", home-flood: "\uEEF9", home-floor-0: "\uEDD1", home-floor-1: "\uED7F", home-floor-2: "\uED80", home-floor-3: "\uED81", home-floor-a: "\uED82", home-floor-b: "\uED83", home-floor-g: "\uED84", home-floor-l: "\uED85", home-floor-negative-1: "\uEDD2", home-group: "\uEDD3", home-group-minus: "\uF9C0", home-group-plus: "\uF9BF", home-group-remove: "\uF9C1", home-heart: "\uE826", home-import-outline: "\uEF9B", home-lightbulb: "\uF250", home-lightbulb-outline: "\uF251", home-lightning-bolt: "\uF902", home-lightning-bolt-outline: "\uF903", home-lock: "\uE8EA", home-lock-open: "\uE8EB", home-map-marker: "\uE5F7", home-minus: "\uE973", home-minus-outline: "\uF3D4", home-modern: "\uE2DC", home-off: "\uFA45", home-off-outline: "\uFA46", home-outline: "\uE6A0", home-plus: "\uE974", home-plus-outline: "\uF3D5", home-remove: "\uF246", home-remove-outline: "\uF3D6", home-roof: "\uF12A", home-search: "\uF3AF", home-search-outline: "\uF3B0", home-switch: "\uF793", home-switch-outline: "\uF794", home-thermometer: "\uEF53", home-thermometer-outline: "\uEF54", home-variant: "\uE2DD", home-variant-outline: "\uEBA6", hook: "\uE6E1", hook-off: "\uE6E2", hoop-house: "\uEE55", hops: "\uE2DE", horizontal-rotate-clockwise: "\uF0F2", horizontal-rotate-counterclockwise: "\uF0F3", horse: "\uF5BE", horse-human: "\uF5BF", horse-variant: "\uF5C0", horse-variant-fast: "\uF86D", horseshoe: "\uEA57", hospital: "\uEFF5", hospital-box: "\uE2DF", hospital-box-outline: "\uEFF6", hospital-building: "\uE2E0", hospital-marker: "\uE2E1", hot-tub: "\uE827", hours-24: "\uF477", hubspot: "\uED16", hulu: "\uE828", human: "\uE2E5", human-baby-changing-table: "\uF38A", human-cane: "\uF580", human-capacity-decrease: "\uF59A", human-capacity-increase: "\uF59B", human-child: "\uE2E6", human-dolly: "\uF97F", human-edit: "\uF4E7", human-female: "\uE648", human-female-boy: "\uEA58", human-female-dance: "\uF5C8", human-female-female: "\uEA59", human-female-girl: "\uEA5A", human-greeting: "\uF7C3", human-greeting-proximity: "\uF59C", human-greeting-variant: "\uE649", human-handsdown: "\uE64A", human-handsup: "\uE64B", human-male: "\uE64C", human-male-board: "\uE88F", human-male-board-poll: "\uE845", human-male-boy: "\uEA5B", human-male-child: "\uF38B", human-male-female: "\uE2E7", human-male-female-child: "\uF822", human-male-girl: "\uEA5C", human-male-height: "\uEEFA", human-male-height-variant: "\uEEFB", human-male-male: "\uEA5D", human-non-binary: "\uF847", human-pregnant: "\uE5CE", human-queue: "\uF570", human-scooter: "\uF1E8", human-wheelchair: "\uF38C", human-white-cane: "\uF980", humble-bundle: "\uE743", hvac: "\uF351", hvac-off: "\uF59D", hydraulic-oil-level: "\uF323", hydraulic-oil-temperature: "\uF324", hydro-power: "\uF2E4", hydrogen-station: "\uF893", ice-cream: "\uE829", ice-cream-off: "\uEE51", ice-pop: "\uEEFC", id-card: "\uEFBF", identifier: "\uEEFD", ideogram-cjk: "\uF330", ideogram-cjk-variant: "\uF331", image: "\uE2E8", image-album: "\uE2E9", image-area: "\uE2EA", image-area-close: "\uE2EB", image-auto-adjust: "\uEFC0", image-broken: "\uE2EC", image-broken-variant: "\uE2ED", image-edit: "\uF1E2", image-edit-outline: "\uF1E3", image-filter-black-white: "\uE2EF", image-filter-center-focus: "\uE2F0", image-filter-center-focus-strong: "\uEEFE", image-filter-center-focus-strong-outline: "\uEEFF", image-filter-center-focus-weak: "\uE2F1", image-filter-drama: "\uE2F2", image-filter-frames: "\uE2F3", image-filter-hdr: "\uE2F4", image-filter-none: "\uE2F5", image-filter-tilt-shift: "\uE2F6", image-filter-vintage: "\uE2F7", image-frame: "\uEE48", image-lock: "\uFAAF", image-lock-outline: "\uFAB0", image-marker: "\uF77A", image-marker-outline: "\uF77B", image-minus: "\uF418", image-move: "\uE9F7", image-multiple: "\uE2F8", image-multiple-outline: "\uE2EE", image-off: "\uE82A", image-off-outline: "\uF1D0", image-outline: "\uE975", image-plus: "\uE87B", image-refresh: "\uF9FD", image-refresh-outline: "\uF9FE", image-remove: "\uF417", image-search: "\uE976", image-search-outline: "\uE977", image-size-select-actual: "\uEC8C", image-size-select-large: "\uEC8D", image-size-select-small: "\uEC8E", image-sync: "\uF9FF", image-sync-outline: "\uFA00", image-text: "\uF60C", import: "\uE2F9", inbox: "\uE686", inbox-arrow-down: "\uE2FA", inbox-arrow-down-outline: "\uF26F", inbox-arrow-up: "\uE3D0", inbox-arrow-up-outline: "\uF270", inbox-full: "\uF271", inbox-full-outline: "\uF272", inbox-multiple: "\uE8AF", inbox-multiple-outline: "\uEBA7", inbox-outline: "\uF273", inbox-remove: "\uF59E", inbox-remove-outline: "\uF59F", incognito: "\uE5F8", incognito-circle: "\uF420", incognito-circle-off: "\uF421", incognito-off: "\uE074", induction: "\uF84B", infinity: "\uE6E3", information: "\uE2FB", information-off: "\uF78B", information-off-outline: "\uF78C", information-outline: "\uE2FC", information-variant: "\uE64D", instagram: "\uE2FD", instrument-triangle: "\uF04D", integrated-circuit-chip: "\uF912", invert-colors: "\uE300", invert-colors-off: "\uEE49", iobroker: "\uF2E7", ip: "\uEA5E", ip-network: "\uEA5F", ip-network-outline: "\uEC8F", ip-outline: "\uF981", ipod: "\uEC90", iron: "\uF823", iron-board: "\uF837", iron-outline: "\uF824", island: "\uF04E", iv-bag: "\uF0B8", jabber: "\uEDD4", jeepney: "\uE301", jellyfish: "\uEF00", jellyfish-outline: "\uEF01", jira: "\uE302", jquery: "\uE87C", jsfiddle: "\uE303", jump-rope: "\uF2FE", kabaddi: "\uED86", kangaroo: "\uF557", karate: "\uE82B", kayaking: "\uE8AE", keg: "\uE304", kettle: "\uE5F9", kettle-alert: "\uF316", kettle-alert-outline: "\uF317", kettle-off: "\uF31A", kettle-off-outline: "\uF31B", kettle-outline: "\uEF55", kettle-pour-over: "\uF73B", kettle-steam: "\uF318", kettle-steam-outline: "\uF319", kettlebell: "\uF2FF", key: "\uE305", key-alert: "\uF982", key-alert-outline: "\uF983", key-arrow-right: "\uF311", key-chain: "\uF573", key-chain-variant: "\uF574", key-change: "\uE306", key-link: "\uF19E", key-minus: "\uE307", key-outline: "\uEDD5", key-plus: "\uE308", key-remove: "\uE309", key-star: "\uF19D", key-variant: "\uE30A", key-wireless: "\uEFC1", keyboard: "\uE30B", keyboard-backspace: "\uE30C", keyboard-caps: "\uE30D", keyboard-close: "\uE30E", keyboard-esc: "\uF2B6", keyboard-f1: "\uF2AA", keyboard-f10: "\uF2B3", keyboard-f11: "\uF2B4", keyboard-f12: "\uF2B5", keyboard-f2: "\uF2AB", keyboard-f3: "\uF2AC", keyboard-f4: "\uF2AD", keyboard-f5: "\uF2AE", keyboard-f6: "\uF2AF", keyboard-f7: "\uF2B0", keyboard-f8: "\uF2B1", keyboard-f9: "\uF2B2", keyboard-off: "\uE30F", keyboard-off-outline: "\uEE4A", keyboard-outline: "\uE97A", keyboard-return: "\uE310", keyboard-settings: "\uE9F8", keyboard-settings-outline: "\uE9F9", keyboard-space: "\uF04F", keyboard-tab: "\uE311", keyboard-tab-reverse: "\uE324", keyboard-variant: "\uE312", khanda: "\uF0FC", kickstarter: "\uE744", kite: "\uF984", kite-outline: "\uF985", kitesurfing: "\uF743", klingon: "\uF35A", knife: "\uE9FA", knife-military: "\uE9FB", koala: "\uF73E", kodi: "\uE313", kubernetes: "\uF0FD", label: "\uE314", label-multiple: "\uF374", label-multiple-outline: "\uF375", label-off: "\uEACA", label-off-outline: "\uEACB", label-outline: "\uE315", label-percent: "\uF2E9", label-percent-outline: "\uF2EA", label-variant: "\uEACC", label-variant-outline: "\uEACD", ladder: "\uF5A1", ladybug: "\uE82C", lambda: "\uE626", lamp: "\uE6B4", lamp-outline: "\uF7CF", lamps: "\uF575", lamps-outline: "\uF7D0", lan: "\uE316", lan-check: "\uF2A9", lan-connect: "\uE317", lan-disconnect: "\uE318", lan-pending: "\uE319", land-fields: "\uFAB1", land-plots: "\uFAB2", land-plots-circle: "\uFAB3", land-plots-circle-variant: "\uFAB4", land-rows-horizontal: "\uFAB5", land-rows-vertical: "\uFAB6", landslide: "\uFA47", landslide-outline: "\uFA48", language-c: "\uE670", language-cpp: "\uE671", language-csharp: "\uE31A", language-css3: "\uE31B", language-fortran: "\uF219", language-go: "\uE7D2", language-haskell: "\uEC91", language-html5: "\uE31C", language-java: "\uEB36", language-javascript: "\uE31D", language-kotlin: "\uF218", language-lua: "\uE8B0", language-markdown: "\uE353", language-markdown-outline: "\uEF5A", language-php: "\uE31E", language-python: "\uE31F", language-r: "\uE7D3", language-ruby: "\uED2C", language-ruby-on-rails: "\uEACE", language-rust: "\uF616", language-swift: "\uE6E4", language-typescript: "\uE6E5", language-xaml: "\uE672", laptop: "\uE321", laptop-account: "\uFA49", laptop-off: "\uE6E6", laravel: "\uEACF", laser-pointer: "\uF483", lasso: "\uEF02", lastpass: "\uE445", latitude: "\uEF56", launch: "\uE326", lava-lamp: "\uE7D4", layers: "\uE327", layers-edit: "\uF891", layers-minus: "\uEE4B", layers-off: "\uE328", layers-off-outline: "\uE9FC", layers-outline: "\uE9FD", layers-plus: "\uEE4C", layers-remove: "\uEE4D", layers-search: "\uF205", layers-search-outline: "\uF206", layers-triple: "\uEF57", layers-triple-outline: "\uEF58", lead-pencil: "\uE64E", leaf: "\uE329", leaf-circle: "\uF904", leaf-circle-outline: "\uF905", leaf-maple: "\uEC92", leaf-maple-off: "\uF2D9", leaf-off: "\uF2D8", leak: "\uEDD6", leak-off: "\uEDD7", lecturn: "\uFAEF", led-off: "\uE32A", led-on: "\uE32B", led-outline: "\uE32C", led-strip: "\uE7D5", led-strip-variant: "\uF050", led-strip-variant-off: "\uFA4A", led-variant-off: "\uE32D", led-variant-on: "\uE32E", led-variant-outline: "\uE32F", leek: "\uF17C", less-than: "\uE97B", less-than-or-equal: "\uE97C", library: "\uE330", library-outline: "\uFA21", library-shelves: "\uEBA8", license: "\uEFC2", lifebuoy: "\uE87D", light-flood-down: "\uF986", light-flood-up: "\uF987", light-recessed: "\uF79A", light-switch: "\uE97D", light-switch-off: "\uFA23", lightbulb: "\uE334", lightbulb-alert: "\uF9E0", lightbulb-alert-outline: "\uF9E1", lightbulb-auto: "\uF7FF", lightbulb-auto-outline: "\uF800", lightbulb-cfl: "\uF207", lightbulb-cfl-off: "\uF208", lightbulb-cfl-spiral: "\uF274", lightbulb-cfl-spiral-off: "\uF2C2", lightbulb-fluorescent-tube: "\uF803", lightbulb-fluorescent-tube-outline: "\uF804", lightbulb-group: "\uF252", lightbulb-group-off: "\uF2CC", lightbulb-group-off-outline: "\uF2CD", lightbulb-group-outline: "\uF253", lightbulb-multiple: "\uF254", lightbulb-multiple-off: "\uF2CE", lightbulb-multiple-off-outline: "\uF2CF", lightbulb-multiple-outline: "\uF255", lightbulb-night: "\uFA4B", lightbulb-night-outline: "\uFA4C", lightbulb-off: "\uEE4E", lightbulb-off-outline: "\uEE4F", lightbulb-on: "\uE6E7", lightbulb-on-10: "\uFA4D", lightbulb-on-20: "\uFA4E", lightbulb-on-30: "\uFA4F", lightbulb-on-40: "\uFA50", lightbulb-on-50: "\uFA51", lightbulb-on-60: "\uFA52", lightbulb-on-70: "\uFA53", lightbulb-on-80: "\uFA54", lightbulb-on-90: "\uFA55", lightbulb-on-outline: "\uE6E8", lightbulb-outline: "\uE335", lightbulb-question: "\uF9E2", lightbulb-question-outline: "\uF9E3", lightbulb-spot: "\uF7F3", lightbulb-spot-off: "\uF7F4", lightbulb-variant: "\uF801", lightbulb-variant-outline: "\uF802", lighthouse: "\uE9FE", lighthouse-on: "\uE9FF", lightning-bolt: "\uF40A", lightning-bolt-circle: "\uE81F", lightning-bolt-outline: "\uF40B", line-scan: "\uE623", lingerie: "\uF475", link: "\uE336", link-box: "\uED19", link-box-outline: "\uED1A", link-box-variant: "\uED1B", link-box-variant-outline: "\uED1C", link-lock: "\uF0B9", link-off: "\uE337", link-plus: "\uEC93", link-variant: "\uE338", link-variant-minus: "\uF0FE", link-variant-off: "\uE339", link-variant-plus: "\uF0FF", link-variant-remove: "\uF100", linkedin: "\uE33A", linux: "\uE33C", linux-mint: "\uE8EC", lipstick: "\uF3B4", liquid-spot: "\uF825", liquor: "\uF91D", list-status: "\uF5AA", litecoin: "\uEA60", loading: "\uE771", location-enter: "\uEFC3", location-exit: "\uEFC4", lock: "\uE33D", lock-alert: "\uE8ED", lock-alert-outline: "\uF5D0", lock-check: "\uF399", lock-check-outline: "\uF6A7", lock-clock: "\uE97E", lock-minus: "\uF6A8", lock-minus-outline: "\uF6A9", lock-off: "\uF670", lock-off-outline: "\uF671", lock-open: "\uE33E", lock-open-alert: "\uF39A", lock-open-alert-outline: "\uF5D1", lock-open-check: "\uF39B", lock-open-check-outline: "\uF6AA", lock-open-minus: "\uF6AB", lock-open-minus-outline: "\uF6AC", lock-open-outline: "\uE33F", lock-open-plus: "\uF6AD", lock-open-plus-outline: "\uF6AE", lock-open-remove: "\uF6AF", lock-open-remove-outline: "\uF6B0", lock-open-variant: "\uEFC5", lock-open-variant-outline: "\uEFC6", lock-outline: "\uE340", lock-pattern: "\uE6E9", lock-plus: "\uE5FA", lock-plus-outline: "\uF6B1", lock-question: "\uE8EE", lock-remove: "\uF6B2", lock-remove-outline: "\uF6B3", lock-reset: "\uE772", lock-smart: "\uE8B1", locker: "\uE7D6", locker-multiple: "\uE7D7", login: "\uE341", login-variant: "\uE5FB", logout: "\uE342", logout-variant: "\uE5FC", longitude: "\uEF59", looks: "\uE343", lotion: "\uF581", lotion-outline: "\uF582", lotion-plus: "\uF583", lotion-plus-outline: "\uF584", loupe: "\uE344", lumx: "\uE345", lungs: "\uF083", mace: "\uF842", magazine-pistol: "\uE323", magazine-rifle: "\uE322", magic-staff: "\uF843", magnet: "\uE346", magnet-on: "\uE347", magnify: "\uE348", magnify-close: "\uE97F", magnify-expand: "\uF873", magnify-minus: "\uE349", magnify-minus-cursor: "\uEA61", magnify-minus-outline: "\uE6EB", magnify-plus: "\uE34A", magnify-plus-cursor: "\uEA62", magnify-plus-outline: "\uE6EC", magnify-remove-cursor: "\uF20B", magnify-remove-outline: "\uF20C", magnify-scan: "\uF275", mail: "\uEEBA", mailbox: "\uE6ED", mailbox-open: "\uED87", mailbox-open-outline: "\uED88", mailbox-open-up: "\uED89", mailbox-open-up-outline: "\uED8A", mailbox-outline: "\uED8B", mailbox-up: "\uED8C", mailbox-up-outline: "\uED8D", manjaro: "\uF609", map: "\uE34C", map-check: "\uEEBB", map-check-outline: "\uEEBC", map-clock: "\uED1D", map-clock-outline: "\uED1E", map-legend: "\uEA00", map-marker: "\uE34D", map-marker-account: "\uF8E2", map-marker-account-outline: "\uF8E3", map-marker-alert: "\uEF04", map-marker-alert-outline: "\uEF05", map-marker-check: "\uEC94", map-marker-check-outline: "\uF2FA", map-marker-circle: "\uE34E", map-marker-distance: "\uE8EF", map-marker-down: "\uF101", map-marker-left: "\uF2DA", map-marker-left-outline: "\uF2DC", map-marker-minus: "\uE64F", map-marker-minus-outline: "\uF2F8", map-marker-multiple: "\uE34F", map-marker-multiple-outline: "\uF276", map-marker-off: "\uE350", map-marker-off-outline: "\uF2FC", map-marker-outline: "\uE7D8", map-marker-path: "\uED1F", map-marker-plus: "\uE650", map-marker-plus-outline: "\uF2F7", map-marker-question: "\uEF06", map-marker-question-outline: "\uEF07", map-marker-radius: "\uE351", map-marker-radius-outline: "\uF2FB", map-marker-remove: "\uEF08", map-marker-remove-outline: "\uF2F9", map-marker-remove-variant: "\uEF09", map-marker-right: "\uF2DB", map-marker-right-outline: "\uF2DD", map-marker-star: "\uF607", map-marker-star-outline: "\uF608", map-marker-up: "\uF102", map-minus: "\uE980", map-outline: "\uE981", map-plus: "\uE982", map-search: "\uE983", map-search-outline: "\uE984", mapbox: "\uEBA9", margin: "\uE352", marker: "\uE651", marker-cancel: "\uEDD8", marker-check: "\uE354", mastodon: "\uEAD0", material-design: "\uE985", material-ui: "\uE356", math-compass: "\uE357", math-cos: "\uEC95", math-integral: "\uEFC7", math-integral-box: "\uEFC8", math-log: "\uF084", math-norm: "\uEFC9", math-norm-box: "\uEFCA", math-sin: "\uEC96", math-tan: "\uEC97", matrix: "\uE627", medal: "\uE986", medal-outline: "\uF325", medical-bag: "\uE6EE", medical-cotton-swab: "\uFAB7", meditation: "\uF17A", memory: "\uE35A", menorah: "\uF7D3", menorah-fire: "\uF7D4", menu: "\uE35B", menu-down: "\uE35C", menu-down-outline: "\uE6B5", menu-left: "\uE35D", menu-left-outline: "\uEA01", menu-open: "\uEBAA", menu-right: "\uE35E", menu-right-outline: "\uEA02", menu-swap: "\uEA63", menu-swap-outline: "\uEA64", menu-up: "\uE35F", menu-up-outline: "\uE6B6", merge: "\uEF5B", message: "\uE360", message-alert: "\uE361", message-alert-outline: "\uEA03", message-arrow-left: "\uF2F1", message-arrow-left-outline: "\uF2F2", message-arrow-right: "\uF2F3", message-arrow-right-outline: "\uF2F4", message-badge: "\uF940", message-badge-outline: "\uF941", message-bookmark: "\uF5AB", message-bookmark-outline: "\uF5AC", message-bulleted: "\uE6A1", message-bulleted-off: "\uE6A2", message-cog: "\uE6F0", message-cog-outline: "\uF171", message-draw: "\uE362", message-fast: "\uF9CB", message-fast-outline: "\uF9CC", message-flash: "\uF5A8", message-flash-outline: "\uF5A9", message-image: "\uE363", message-image-outline: "\uF16B", message-lock: "\uEFCB", message-lock-outline: "\uF16C", message-minus: "\uF16D", message-minus-outline: "\uF16E", message-off: "\uF64C", message-off-outline: "\uF64D", message-outline: "\uE364", message-plus: "\uE652", message-plus-outline: "\uF0BA", message-processing: "\uE365", message-processing-outline: "\uF16F", message-question: "\uF739", message-question-outline: "\uF73A", message-reply: "\uE366", message-reply-outline: "\uF73C", message-reply-text: "\uE367", message-reply-text-outline: "\uF73D", message-settings: "\uE6EF", message-settings-outline: "\uF170", message-star: "\uE699", message-star-outline: "\uF24F", message-text: "\uE368", message-text-clock: "\uF172", message-text-clock-outline: "\uF173", message-text-fast: "\uF9CD", message-text-fast-outline: "\uF9CE", message-text-lock: "\uEFCC", message-text-lock-outline: "\uF174", message-text-outline: "\uE369", message-video: "\uE36A", meteor: "\uE628", meter-electric: "\uFA56", meter-electric-outline: "\uFA57", meter-gas: "\uFA58", meter-gas-outline: "\uFA59", metronome: "\uE7D9", metronome-tick: "\uE7DA", micro-sd: "\uE7DB", microphone: "\uE36B", microphone-minus: "\uE8B2", microphone-off: "\uE36C", microphone-outline: "\uE36D", microphone-plus: "\uE8B3", microphone-question: "\uF988", microphone-question-outline: "\uF989", microphone-settings: "\uE36E", microphone-variant: "\uE36F", microphone-variant-off: "\uE370", microscope: "\uE653", microsoft: "\uE371", microsoft-access: "\uF38D", microsoft-azure: "\uE804", microsoft-azure-devops: "\uEFD4", microsoft-bing: "\uE0A3", microsoft-dynamics-365: "\uE987", microsoft-edge: "\uE1E8", microsoft-excel: "\uF38E", microsoft-internet-explorer: "\uE2FF", microsoft-office: "\uE3C5", microsoft-onedrive: "\uE3C9", microsoft-onenote: "\uE746", microsoft-outlook: "\uED21", microsoft-powerpoint: "\uF38F", microsoft-sharepoint: "\uF390", microsoft-teams: "\uE2BA", microsoft-visual-studio: "\uE60F", microsoft-visual-studio-code: "\uEA1D", microsoft-windows: "\uE5B2", microsoft-windows-classic: "\uEA20", microsoft-word: "\uF391", microsoft-xbox: "\uE5B8", microsoft-xbox-controller: "\uE5B9", microsoft-xbox-controller-battery-alert: "\uE74A", microsoft-xbox-controller-battery-charging: "\uEA21", microsoft-xbox-controller-battery-empty: "\uE74B", microsoft-xbox-controller-battery-full: "\uE74C", microsoft-xbox-controller-battery-low: "\uE74D", microsoft-xbox-controller-battery-medium: "\uE74E", microsoft-xbox-controller-battery-unknown: "\uE74F", microsoft-xbox-controller-menu: "\uEE6E", microsoft-xbox-controller-off: "\uE5BA", microsoft-xbox-controller-view: "\uEE6F", microwave: "\uEC98", microwave-off: "\uF422", middleware: "\uEF5C", middleware-outline: "\uEF5D", midi: "\uE8F0", midi-port: "\uE8F1", mine: "\uEDD9", minecraft: "\uE372", mini-sd: "\uEA04", minidisc: "\uEA05", minus: "\uE373", minus-box: "\uE374", minus-box-multiple: "\uF140", minus-box-multiple-outline: "\uF141", minus-box-outline: "\uE6F1", minus-circle: "\uE375", minus-circle-multiple: "\uE359", minus-circle-multiple-outline: "\uEAD2", minus-circle-off: "\uF458", minus-circle-off-outline: "\uF459", minus-circle-outline: "\uE376", minus-network: "\uE377", minus-network-outline: "\uEC99", minus-thick: "\uF638", mirror: "\uF1FC", mirror-rectangle: "\uF79E", mirror-variant: "\uF79F", mixed-martial-arts: "\uED8E", mixed-reality: "\uE87E", molecule: "\uEBAB", molecule-co: "\uF2FD", molecule-co2: "\uE7E3", monitor: "\uE378", monitor-account: "\uFA5A", monitor-arrow-down: "\uF9CF", monitor-arrow-down-variant: "\uF9D0", monitor-cellphone: "\uE988", monitor-cellphone-star: "\uE989", monitor-dashboard: "\uEA06", monitor-edit: "\uF2C5", monitor-eye: "\uF3B3", monitor-lock: "\uEDDA", monitor-multiple: "\uE379", monitor-off: "\uED8F", monitor-screenshot: "\uEE50", monitor-share: "\uF482", monitor-shimmer: "\uF103", monitor-small: "\uF875", monitor-speaker: "\uEF5E", monitor-speaker-off: "\uEF5F", monitor-star: "\uEDDB", moon-first-quarter: "\uEF60", moon-full: "\uEF61", moon-last-quarter: "\uEF62", moon-new: "\uEF63", moon-waning-crescent: "\uEF64", moon-waning-gibbous: "\uEF65", moon-waxing-crescent: "\uEF66", moon-waxing-gibbous: "\uEF67", moped: "\uF085", moped-electric: "\uF5B6", moped-electric-outline: "\uF5B7", moped-outline: "\uF5B8", more: "\uE37A", mortar-pestle: "\uF747", mortar-pestle-plus: "\uE3F0", mosque: "\uF826", mother-heart: "\uF313", mother-nurse: "\uED20", motion: "\uF5B1", motion-outline: "\uF5B2", motion-pause: "\uF58F", motion-pause-outline: "\uF591", motion-play: "\uF58E", motion-play-outline: "\uF590", motion-sensor: "\uED90", motion-sensor-off: "\uF434", motorbike: "\uE37B", motorbike-electric: "\uF5B9", mouse: "\uE37C", mouse-bluetooth: "\uE98A", mouse-move-down: "\uF54F", mouse-move-up: "\uF550", mouse-move-vertical: "\uF551", mouse-off: "\uE37D", mouse-variant: "\uE37E", mouse-variant-off: "\uE37F", move-resize: "\uE654", move-resize-variant: "\uE655", movie: "\uE380", movie-check: "\uF6F2", movie-check-outline: "\uF6F3", movie-cog: "\uF6F4", movie-cog-outline: "\uF6F5", movie-edit: "\uF121", movie-edit-outline: "\uF122", movie-filter: "\uF123", movie-filter-outline: "\uF124", movie-minus: "\uF6F6", movie-minus-outline: "\uF6F7", movie-off: "\uF6F8", movie-off-outline: "\uF6F9", movie-open: "\uEFCD", movie-open-check: "\uF6FA", movie-open-check-outline: "\uF6FB", movie-open-cog: "\uF6FC", movie-open-cog-outline: "\uF6FD", movie-open-edit: "\uF6FE", movie-open-edit-outline: "\uF6FF", movie-open-minus: "\uF700", movie-open-minus-outline: "\uF701", movie-open-off: "\uF702", movie-open-off-outline: "\uF703", movie-open-outline: "\uEFCE", movie-open-play: "\uF704", movie-open-play-outline: "\uF705", movie-open-plus: "\uF706", movie-open-plus-outline: "\uF707", movie-open-remove: "\uF708", movie-open-remove-outline: "\uF709", movie-open-settings: "\uF70A", movie-open-settings-outline: "\uF70B", movie-open-star: "\uF70C", movie-open-star-outline: "\uF70D", movie-outline: "\uEDDC", movie-play: "\uF70E", movie-play-outline: "\uF70F", movie-plus: "\uF710", movie-plus-outline: "\uF711", movie-remove: "\uF712", movie-remove-outline: "\uF713", movie-roll: "\uE7DD", movie-search: "\uF1D1", movie-search-outline: "\uF1D2", movie-settings: "\uF714", movie-settings-outline: "\uF715", movie-star: "\uF716", movie-star-outline: "\uF717", mower: "\uF66E", mower-bag: "\uF66F", muffin: "\uE98B", multicast: "\uF892", multiplication: "\uE381", multiplication-box: "\uE382", mushroom: "\uE7DE", mushroom-off: "\uF3F9", mushroom-off-outline: "\uF3FA", mushroom-outline: "\uE7DF", music: "\uE759", music-accidental-double-flat: "\uEF68", music-accidental-double-sharp: "\uEF69", music-accidental-flat: "\uEF6A", music-accidental-natural: "\uEF6B", music-accidental-sharp: "\uEF6C", music-box: "\uE383", music-box-multiple: "\uE332", music-box-multiple-outline: "\uEF03", music-box-outline: "\uE384", music-circle: "\uE385", music-circle-outline: "\uEAD3", music-clef-alto: "\uEF6D", music-clef-bass: "\uEF6E", music-clef-treble: "\uEF6F", music-note: "\uE386", music-note-bluetooth: "\uE5FD", music-note-bluetooth-off: "\uE5FE", music-note-eighth: "\uE387", music-note-eighth-dotted: "\uEF70", music-note-half: "\uE388", music-note-half-dotted: "\uEF71", music-note-off: "\uE389", music-note-off-outline: "\uEF72", music-note-outline: "\uEF73", music-note-plus: "\uEDDD", music-note-quarter: "\uE38A", music-note-quarter-dotted: "\uEF74", music-note-sixteenth: "\uE38B", music-note-sixteenth-dotted: "\uEF75", music-note-whole: "\uE38C", music-note-whole-dotted: "\uEF76", music-off: "\uE75A", music-rest-eighth: "\uEF77", music-rest-half: "\uEF78", music-rest-quarter: "\uEF79", music-rest-sixteenth: "\uEF7A", music-rest-whole: "\uEF7B", mustache: "\uF5DD", nail: "\uEDDE", nas: "\uE8F2", nativescript: "\uE87F", nature: "\uE38D", nature-people: "\uE38E", navigation: "\uE38F", navigation-outline: "\uF606", navigation-variant: "\uF8EF", navigation-variant-outline: "\uF8F0", near-me: "\uE5CC", necklace: "\uEF0A", needle: "\uE390", needle-off: "\uF9D1", netflix: "\uE745", network: "\uE6F2", network-off: "\uEC9A", network-off-outline: "\uEC9B", network-outline: "\uEC9C", network-pos: "\uFACA", network-strength-1: "\uE8F3", network-strength-1-alert: "\uE8F4", network-strength-2: "\uE8F5", network-strength-2-alert: "\uE8F6", network-strength-3: "\uE8F7", network-strength-3-alert: "\uE8F8", network-strength-4: "\uE8F9", network-strength-4-alert: "\uE8FA", network-strength-4-cog: "\uF919", network-strength-off: "\uE8FB", network-strength-off-outline: "\uE8FC", network-strength-outline: "\uE8FD", new-box: "\uE393", newspaper: "\uE394", newspaper-check: "\uF942", newspaper-minus: "\uEF0B", newspaper-plus: "\uEF0C", newspaper-remove: "\uF943", newspaper-variant: "\uF000", newspaper-variant-multiple: "\uF001", newspaper-variant-multiple-outline: "\uF002", newspaper-variant-outline: "\uF003", nfc: "\uE395", nfc-search-variant: "\uEE52", nfc-tap: "\uE396", nfc-variant: "\uE397", nfc-variant-off: "\uEE53", ninja: "\uE773", nintendo-game-boy: "\uF392", nintendo-switch: "\uE7E0", nintendo-wii: "\uE5AA", nintendo-wiiu: "\uE72C", nix: "\uF104", nodejs: "\uE398", noodles: "\uF17D", not-equal: "\uE98C", not-equal-variant: "\uE98D", note: "\uE399", note-alert: "\uF77C", note-alert-outline: "\uF77D", note-check: "\uF77E", note-check-outline: "\uF77F", note-edit: "\uF780", note-edit-outline: "\uF781", note-minus: "\uF64E", note-minus-outline: "\uF64F", note-multiple: "\uE6B7", note-multiple-outline: "\uE6B8", note-off: "\uF782", note-off-outline: "\uF783", note-outline: "\uE39A", note-plus: "\uE39B", note-plus-outline: "\uE39C", note-remove: "\uF650", note-remove-outline: "\uF651", note-search: "\uF652", note-search-outline: "\uF653", note-text: "\uE39D", note-text-outline: "\uF1D6", notebook: "\uE82D", notebook-check: "\uF4F4", notebook-check-outline: "\uF4F5", notebook-edit: "\uF4E6", notebook-edit-outline: "\uF4E8", notebook-heart: "\uFA0A", notebook-heart-outline: "\uFA0B", notebook-minus: "\uF60F", notebook-minus-outline: "\uF610", notebook-multiple: "\uEE54", notebook-outline: "\uEEBE", notebook-plus: "\uF611", notebook-plus-outline: "\uF612", notebook-remove: "\uF613", notebook-remove-outline: "\uF614", notification-clear-all: "\uE39E", npm: "\uE6F6", nuke: "\uE6A3", null: "\uE7E1", numeric: "\uE39F", numeric-0: "\uEB38", numeric-0-box: "\uE3A0", numeric-0-box-multiple: "\uEF0D", numeric-0-box-multiple-outline: "\uE3A1", numeric-0-box-outline: "\uE3A2", numeric-0-circle: "\uEC9D", numeric-0-circle-outline: "\uEC9E", numeric-1: "\uEB39", numeric-1-box: "\uE3A3", numeric-1-box-multiple: "\uEF0E", numeric-1-box-multiple-outline: "\uE3A4", numeric-1-box-outline: "\uE3A5", numeric-1-circle: "\uEC9F", numeric-1-circle-outline: "\uECA0", numeric-10: "\uEFE8", numeric-10-box: "\uEF7C", numeric-10-box-multiple: "\uEFE9", numeric-10-box-multiple-outline: "\uEFEA", numeric-10-box-outline: "\uEF7D", numeric-10-circle: "\uEFEB", numeric-10-circle-outline: "\uEFEC", numeric-2: "\uEB3A", numeric-2-box: "\uE3A6", numeric-2-box-multiple: "\uEF0F", numeric-2-box-multiple-outline: "\uE3A7", numeric-2-box-outline: "\uE3A8", numeric-2-circle: "\uECA1", numeric-2-circle-outline: "\uECA2", numeric-3: "\uEB3B", numeric-3-box: "\uE3A9", numeric-3-box-multiple: "\uEF10", numeric-3-box-multiple-outline: "\uE3AA", numeric-3-box-outline: "\uE3AB", numeric-3-circle: "\uECA3", numeric-3-circle-outline: "\uECA4", numeric-4: "\uEB3C", numeric-4-box: "\uE3AC", numeric-4-box-multiple: "\uEF11", numeric-4-box-multiple-outline: "\uE3B1", numeric-4-box-outline: "\uE3AD", numeric-4-circle: "\uECA5", numeric-4-circle-outline: "\uECA6", numeric-5: "\uEB3D", numeric-5-box: "\uE3B0", numeric-5-box-multiple: "\uEF12", numeric-5-box-multiple-outline: "\uE3AE", numeric-5-box-outline: "\uE3AF", numeric-5-circle: "\uECA7", numeric-5-circle-outline: "\uECA8", numeric-6: "\uEB3E", numeric-6-box: "\uE3B2", numeric-6-box-multiple: "\uEF13", numeric-6-box-multiple-outline: "\uE3B3", numeric-6-box-outline: "\uE3B4", numeric-6-circle: "\uECA9", numeric-6-circle-outline: "\uECAA", numeric-7: "\uEB3F", numeric-7-box: "\uE3B5", numeric-7-box-multiple: "\uEF14", numeric-7-box-multiple-outline: "\uE3B6", numeric-7-box-outline: "\uE3B7", numeric-7-circle: "\uECAB", numeric-7-circle-outline: "\uECAC", numeric-8: "\uEB40", numeric-8-box: "\uE3B8", numeric-8-box-multiple: "\uEF15", numeric-8-box-multiple-outline: "\uE3B9", numeric-8-box-outline: "\uE3BA", numeric-8-circle: "\uECAD", numeric-8-circle-outline: "\uECAE", numeric-9: "\uEB41", numeric-9-box: "\uE3BB", numeric-9-box-multiple: "\uEF16", numeric-9-box-multiple-outline: "\uE3BC", numeric-9-box-outline: "\uE3BD", numeric-9-circle: "\uECAF", numeric-9-circle-outline: "\uECB0", numeric-9-plus: "\uEFED", numeric-9-plus-box: "\uE3BE", numeric-9-plus-box-multiple: "\uEF17", numeric-9-plus-box-multiple-outline: "\uE3BF", numeric-9-plus-box-outline: "\uE3C0", numeric-9-plus-circle: "\uECB1", numeric-9-plus-circle-outline: "\uECB2", numeric-negative-1: "\uF051", numeric-off: "\uF9D2", numeric-positive-1: "\uF5CA", nut: "\uE6F7", nutrition: "\uE3C1", nuxt: "\uF105", oar: "\uE67B", ocarina: "\uEDDF", oci: "\uF2E8", ocr: "\uF139", octagon: "\uE3C2", octagon-outline: "\uE3C3", octagram: "\uE6F8", octagram-outline: "\uE774", octahedron: "\uF94F", octahedron-off: "\uF950", odnoklassniki: "\uE3C4", offer: "\uF21A", office-building: "\uE990", office-building-cog: "\uF948", office-building-cog-outline: "\uF949", office-building-marker: "\uF51F", office-building-marker-outline: "\uF520", office-building-outline: "\uF51E", oil: "\uE3C6", oil-lamp: "\uEF18", oil-level: "\uF052", oil-temperature: "\uEFF7", om: "\uE972", omega: "\uE3C8", one-up: "\uEBAC", onepassword: "\uE880", opacity: "\uE5CB", open-in-app: "\uE3CA", open-in-new: "\uE3CB", open-source-initiative: "\uEBAD", openid: "\uE3CC", opera: "\uE3CD", orbit: "\uE017", orbit-variant: "\uF5DA", order-alphabetical-ascending: "\uE20C", order-alphabetical-descending: "\uED06", order-bool-ascending: "\uE2BD", order-bool-ascending-variant: "\uE98E", order-bool-descending: "\uF383", order-bool-descending-variant: "\uE98F", order-numeric-ascending: "\uE544", order-numeric-descending: "\uE545", origin: "\uEB42", ornament: "\uE3CE", ornament-variant: "\uE3CF", outdoor-lamp: "\uF053", overscan: "\uF004", owl: "\uE3D1", pac-man: "\uEBAE", package: "\uE3D2", package-down: "\uE3D3", package-up: "\uE3D4", package-variant: "\uE3D5", package-variant-closed: "\uE3D6", package-variant-closed-minus: "\uF9D3", package-variant-closed-plus: "\uF9D4", package-variant-closed-remove: "\uF9D5", package-variant-minus: "\uF9D6", package-variant-plus: "\uF9D7", package-variant-remove: "\uF9D8", page-first: "\uE5FF", page-last: "\uE600", page-layout-body: "\uE6F9", page-layout-footer: "\uE6FA", page-layout-header: "\uE6FB", page-layout-header-footer: "\uEF7E", page-layout-sidebar-left: "\uE6FC", page-layout-sidebar-right: "\uE6FD", page-next: "\uEBAF", page-next-outline: "\uEBB0", page-previous: "\uEBB1", page-previous-outline: "\uEBB2", pail: "\uF416", pail-minus: "\uF436", pail-minus-outline: "\uF43B", pail-off: "\uF438", pail-off-outline: "\uF43D", pail-outline: "\uF439", pail-plus: "\uF435", pail-plus-outline: "\uF43A", pail-remove: "\uF437", pail-remove-outline: "\uF43C", palette: "\uE3D7", palette-advanced: "\uE3D8", palette-outline: "\uEE0B", palette-swatch: "\uE8B4", palette-swatch-outline: "\uF35B", palette-swatch-variant: "\uF959", palm-tree: "\uF054", pan: "\uEBB3", pan-bottom-left: "\uEBB4", pan-bottom-right: "\uEBB5", pan-down: "\uEBB6", pan-horizontal: "\uEBB7", pan-left: "\uEBB8", pan-right: "\uEBB9", pan-top-left: "\uEBBA", pan-top-right: "\uEBBB", pan-up: "\uEBBC", pan-vertical: "\uEBBD", panda: "\uE3D9", pandora: "\uE3DA", panorama: "\uE3DB", panorama-fisheye: "\uE3DC", panorama-horizontal: "\uF927", panorama-horizontal-outline: "\uE3DD", panorama-outline: "\uF98B", panorama-sphere: "\uF98C", panorama-sphere-outline: "\uF98D", panorama-variant: "\uF98E", panorama-variant-outline: "\uF98F", panorama-vertical: "\uF928", panorama-vertical-outline: "\uE3DE", panorama-wide-angle: "\uF95E", panorama-wide-angle-outline: "\uE3DF", paper-cut-vertical: "\uE3E0", paper-roll: "\uF156", paper-roll-outline: "\uF157", paperclip: "\uE3E1", paperclip-check: "\uFAC5", paperclip-lock: "\uF9D9", paperclip-minus: "\uFAC6", paperclip-off: "\uFAC7", paperclip-plus: "\uFAC8", paperclip-remove: "\uFAC9", parachute: "\uECB3", parachute-outline: "\uECB4", paragliding: "\uF744", parking: "\uE3E2", party-popper: "\uF055", passport: "\uE7E2", passport-biometric: "\uEDE0", pasta: "\uF15F", patio-heater: "\uEF7F", patreon: "\uE881", pause: "\uE3E3", pause-circle: "\uE3E4", pause-circle-outline: "\uE3E5", pause-octagon: "\uE3E6", pause-octagon-outline: "\uE3E7", paw: "\uE3E8", paw-off: "\uE656", paw-off-outline: "\uF675", paw-outline: "\uF674", peace: "\uE883", peanut: "\uEFFB", peanut-off: "\uEFFC", peanut-off-outline: "\uEFFE", peanut-outline: "\uEFFD", pen: "\uE3E9", pen-lock: "\uEDE1", pen-minus: "\uEDE2", pen-off: "\uEDE3", pen-plus: "\uEDE4", pen-remove: "\uEDE5", pencil: "\uE3EA", pencil-box: "\uE3EB", pencil-box-multiple: "\uF143", pencil-box-multiple-outline: "\uF144", pencil-box-outline: "\uE3EC", pencil-circle: "\uE6FE", pencil-circle-outline: "\uE775", pencil-lock: "\uE3ED", pencil-lock-outline: "\uEDE6", pencil-minus: "\uEDE7", pencil-minus-outline: "\uEDE8", pencil-off: "\uE3EE", pencil-off-outline: "\uEDE9", pencil-outline: "\uECB5", pencil-plus: "\uEDEA", pencil-plus-outline: "\uEDEB", pencil-remove: "\uEDEC", pencil-remove-outline: "\uEDED", pencil-ruler: "\uF352", penguin: "\uEEBF", pentagon: "\uE700", pentagon-outline: "\uE6FF", pentagram: "\uF666", percent: "\uE3EF", percent-box: "\uFA01", percent-box-outline: "\uFA02", percent-circle: "\uFA03", percent-circle-outline: "\uFA04", percent-outline: "\uF277", periodic-table: "\uE8B5", perspective-less: "\uED22", perspective-more: "\uED23", ph: "\uF7C4", phone: "\uE3F1", phone-alert: "\uEF19", phone-alert-outline: "\uF18D", phone-bluetooth: "\uE3F2", phone-bluetooth-outline: "\uF18E", phone-cancel: "\uF0BB", phone-cancel-outline: "\uF18F", phone-check: "\uF1A8", phone-check-outline: "\uF1A9", phone-classic: "\uE601", phone-classic-off: "\uF278", phone-clock: "\uF9DA", phone-dial: "\uF558", phone-dial-outline: "\uF559", phone-forward: "\uE3F3", phone-forward-outline: "\uF190", phone-hangup: "\uE3F4", phone-hangup-outline: "\uF191", phone-in-talk: "\uE3F5", phone-in-talk-outline: "\uF181", phone-incoming: "\uE3F6", phone-incoming-outline: "\uF192", phone-lock: "\uE3F7", phone-lock-outline: "\uF193", phone-log: "\uE3F8", phone-log-outline: "\uF194", phone-message: "\uF195", phone-message-outline: "\uF196", phone-minus: "\uE657", phone-minus-outline: "\uF197", phone-missed: "\uE3F9", phone-missed-outline: "\uF1A4", phone-off: "\uEDEE", phone-off-outline: "\uF1A5", phone-outgoing: "\uE3FA", phone-outgoing-outline: "\uF198", phone-outline: "\uEDEF", phone-paused: "\uE3FB", phone-paused-outline: "\uF199", phone-plus: "\uE658", phone-plus-outline: "\uF19A", phone-refresh: "\uF992", phone-refresh-outline: "\uF993", phone-remove: "\uF52E", phone-remove-outline: "\uF52F", phone-return: "\uE82E", phone-return-outline: "\uF19B", phone-ring: "\uF1AA", phone-ring-outline: "\uF1AB", phone-rotate-landscape: "\uE884", phone-rotate-portrait: "\uE885", phone-settings: "\uE3FC", phone-settings-outline: "\uF19C", phone-sync: "\uF994", phone-sync-outline: "\uF995", phone-voip: "\uE3FD", pi: "\uE3FE", pi-box: "\uE3FF", pi-hole: "\uEDF0", piano: "\uE67C", piano-off: "\uE697", pickaxe: "\uE8B6", picture-in-picture-bottom-right: "\uEE56", picture-in-picture-bottom-right-outline: "\uEE57", picture-in-picture-top-right: "\uEE58", picture-in-picture-top-right-outline: "\uEE59", pier: "\uE886", pier-crane: "\uE887", pig: "\uE400", pig-variant: "\uF005", pig-variant-outline: "\uF677", piggy-bank: "\uF006", piggy-bank-outline: "\uF678", pill: "\uE401", pill-off: "\uFA5B", pillar: "\uE701", pin: "\uE402", pin-off: "\uE403", pin-off-outline: "\uE92F", pin-outline: "\uE930", pine-tree: "\uE404", pine-tree-box: "\uE405", pine-tree-fire: "\uF419", pinterest: "\uE406", pinwheel: "\uEAD4", pinwheel-outline: "\uEAD5", pipe: "\uE7E4", pipe-disconnected: "\uE7E5", pipe-leak: "\uE888", pipe-valve: "\uF84C", pipe-wrench: "\uF353", pirate: "\uEA07", pistol: "\uE702", piston: "\uE889", pitchfork: "\uF552", pizza: "\uE408", play: "\uE409", play-box: "\uF279", play-box-lock: "\uFA15", play-box-lock-open: "\uFA16", play-box-lock-open-outline: "\uFA17", play-box-lock-outline: "\uFA18", play-box-multiple: "\uED18", play-box-multiple-outline: "\uF3E5", play-box-outline: "\uE40A", play-circle: "\uE40B", play-circle-outline: "\uE40C", play-network: "\uE88A", play-network-outline: "\uECB6", play-outline: "\uEF1A", play-pause: "\uE40D", play-protected-content: "\uE40E", play-speed: "\uE8FE", playlist-check: "\uE5C6", playlist-edit: "\uE8FF", playlist-minus: "\uE40F", playlist-music: "\uECB7", playlist-music-outline: "\uECB8", playlist-play: "\uE410", playlist-plus: "\uE411", playlist-remove: "\uE412", playlist-star: "\uEDF1", plex: "\uE6B9", pliers: "\uF9A3", plus: "\uE414", plus-box: "\uE415", plus-box-multiple: "\uE333", plus-box-multiple-outline: "\uF142", plus-box-outline: "\uE703", plus-circle: "\uE416", plus-circle-multiple: "\uE34B", plus-circle-multiple-outline: "\uE417", plus-circle-outline: "\uE418", plus-lock: "\uFA5C", plus-lock-open: "\uFA5D", plus-minus: "\uE991", plus-minus-box: "\uE992", plus-minus-variant: "\uF4C8", plus-network: "\uE419", plus-network-outline: "\uECB9", plus-outline: "\uE704", plus-thick: "\uF1EB", podcast: "\uE993", podium: "\uED24", podium-bronze: "\uED25", podium-gold: "\uED26", podium-silver: "\uED27", point-of-sale: "\uED91", pokeball: "\uE41C", pokemon-go: "\uEA08", poker-chip: "\uE82F", polaroid: "\uE41D", police-badge: "\uF166", police-badge-outline: "\uF167", police-station: "\uF838", poll: "\uE41E", polo: "\uF4C2", polymer: "\uE420", pool: "\uE605", pool-thermometer: "\uFA5E", popcorn: "\uE421", post: "\uF007", post-lamp: "\uFA5F", post-outline: "\uF008", postage-stamp: "\uECBA", pot: "\uE2E4", pot-mix: "\uE65A", pot-mix-outline: "\uE676", pot-outline: "\uE2FE", pot-steam: "\uE659", pot-steam-outline: "\uE325", pound: "\uE422", pound-box: "\uE423", pound-box-outline: "\uF17E", power: "\uE424", power-cycle: "\uE900", power-off: "\uE901", power-on: "\uE902", power-plug: "\uE6A4", power-plug-off: "\uE6A5", power-plug-off-outline: "\uF423", power-plug-outline: "\uF424", power-settings: "\uE425", power-sleep: "\uE903", power-socket: "\uE426", power-socket-au: "\uE904", power-socket-ch: "\uEFB2", power-socket-de: "\uF106", power-socket-eu: "\uE7E6", power-socket-fr: "\uF107", power-socket-it: "\uF4FE", power-socket-jp: "\uF108", power-socket-uk: "\uE7E7", power-socket-us: "\uE7E8", power-standby: "\uE905", powershell: "\uEA09", prescription: "\uE705", presentation: "\uE427", presentation-play: "\uE428", pretzel: "\uF561", printer: "\uE429", printer-3d: "\uE42A", printer-3d-nozzle: "\uEE5A", printer-3d-nozzle-alert: "\uF1BF", printer-3d-nozzle-alert-outline: "\uF1C0", printer-3d-nozzle-heat: "\uF8B7", printer-3d-nozzle-heat-outline: "\uF8B8", printer-3d-nozzle-outline: "\uEE5B", printer-alert: "\uE42B", printer-check: "\uF145", printer-eye: "\uF457", printer-off: "\uEE5C", printer-off-outline: "\uF784", printer-outline: "\uF785", printer-pos: "\uF056", printer-search: "\uF456", printer-settings: "\uE706", printer-wireless: "\uEA0A", priority-high: "\uE602", priority-low: "\uE603", professional-hexagon: "\uE42C", progress-alert: "\uECBB", progress-check: "\uE994", progress-clock: "\uE995", progress-close: "\uF109", progress-download: "\uE996", progress-pencil: "\uF786", progress-question: "\uF521", progress-star: "\uF787", progress-upload: "\uE997", progress-wrench: "\uECBC", projector: "\uE42D", projector-off: "\uFA22", projector-screen: "\uE42E", projector-screen-off: "\uF80C", projector-screen-off-outline: "\uF80D", projector-screen-outline: "\uF723", projector-screen-variant: "\uF80E", projector-screen-variant-off: "\uF80F", projector-screen-variant-off-outline: "\uF810", projector-screen-variant-outline: "\uF811", propane-tank: "\uF356", propane-tank-outline: "\uF357", protocol: "\uEFD7", publish: "\uE6A6", publish-off: "\uF944", pulse: "\uE42F", pump: "\uF401", pumpkin: "\uEBBE", purse: "\uEF1B", purse-outline: "\uEF1C", puzzle: "\uE430", puzzle-check: "\uF425", puzzle-check-outline: "\uF426", puzzle-edit: "\uF4D2", puzzle-edit-outline: "\uF4D8", puzzle-heart: "\uF4D3", puzzle-heart-outline: "\uF4D9", puzzle-minus: "\uF4D0", puzzle-minus-outline: "\uF4D6", puzzle-outline: "\uEA65", puzzle-plus: "\uF4CF", puzzle-plus-outline: "\uF4D5", puzzle-remove: "\uF4D1", puzzle-remove-outline: "\uF4D7", puzzle-star: "\uF4D4", puzzle-star-outline: "\uF4DA", pyramid: "\uF951", pyramid-off: "\uF952", qi: "\uE998", qqchat: "\uE604", qrcode: "\uE431", qrcode-edit: "\uE8B7", qrcode-minus: "\uF18B", qrcode-plus: "\uF18A", qrcode-remove: "\uF18C", qrcode-scan: "\uE432", quadcopter: "\uE433", quality-high: "\uE434", quality-low: "\uEA0B", quality-medium: "\uEA0C", quora: "\uED28", rabbit: "\uE906", rabbit-variant: "\uFA60", rabbit-variant-outline: "\uFA61", racing-helmet: "\uED92", racquetball: "\uED93", radar: "\uE436", radiator: "\uE437", radiator-disabled: "\uEAD6", radiator-off: "\uEAD7", radio: "\uE438", radio-am: "\uECBD", radio-fm: "\uECBE", radio-handheld: "\uE439", radio-off: "\uF21B", radio-tower: "\uE43A", radioactive: "\uE43B", radioactive-circle: "\uF85C", radioactive-circle-outline: "\uF85D", radioactive-off: "\uEEC0", radiobox-blank: "\uE43C", radiobox-marked: "\uE43D", radiology-box: "\uF4C4", radiology-box-outline: "\uF4C5", radius: "\uECBF", radius-outline: "\uECC0", railroad-light: "\uEF1D", rake: "\uF543", raspberry-pi: "\uE43E", raw: "\uFA0E", raw-off: "\uFA0F", ray-end: "\uE43F", ray-end-arrow: "\uE440", ray-start: "\uE441", ray-start-arrow: "\uE442", ray-start-end: "\uE443", ray-start-vertex-end: "\uF5D7", ray-vertex: "\uE444", razor-double-edge: "\uF996", razor-single-edge: "\uF997", react: "\uE707", read: "\uE446", receipt: "\uE448", receipt-outline: "\uF9DB", receipt-text-check: "\uFA62", receipt-text-check-outline: "\uFA63", receipt-text-minus: "\uFA64", receipt-text-minus-outline: "\uFA65", receipt-text-plus: "\uFA66", receipt-text-plus-outline: "\uFA67", receipt-text-remove: "\uFA68", receipt-text-remove-outline: "\uFA69", record: "\uE449", record-circle: "\uEEC1", record-circle-outline: "\uEEC2", record-player: "\uE999", record-rec: "\uE44A", rectangle: "\uEE5D", rectangle-outline: "\uEE5E", recycle: "\uE44B", recycle-variant: "\uF39C", reddit: "\uE44C", redhat: "\uF11A", redo: "\uE44D", redo-variant: "\uE44E", reflect-horizontal: "\uEA0D", reflect-vertical: "\uEA0E", refresh: "\uE44F", refresh-auto: "\uF8F1", refresh-circle: "\uF376", regex: "\uE450", registered-trademark: "\uEA66", reiterate: "\uF587", relation-many-to-many: "\uF495", relation-many-to-one: "\uF496", relation-many-to-one-or-many: "\uF497", relation-many-to-only-one: "\uF498", relation-many-to-zero-or-many: "\uF499", relation-many-to-zero-or-one: "\uF49A", relation-one-or-many-to-many: "\uF49B", relation-one-or-many-to-one: "\uF49C", relation-one-or-many-to-one-or-many: "\uF49D", relation-one-or-many-to-only-one: "\uF49E", relation-one-or-many-to-zero-or-many: "\uF49F", relation-one-or-many-to-zero-or-one: "\uF4A0", relation-one-to-many: "\uF4A1", relation-one-to-one: "\uF4A2", relation-one-to-one-or-many: "\uF4A3", relation-one-to-only-one: "\uF4A4", relation-one-to-zero-or-many: "\uF4A5", relation-one-to-zero-or-one: "\uF4A6", relation-only-one-to-many: "\uF4A7", relation-only-one-to-one: "\uF4A8", relation-only-one-to-one-or-many: "\uF4A9", relation-only-one-to-only-one: "\uF4AA", relation-only-one-to-zero-or-many: "\uF4AB", relation-only-one-to-zero-or-one: "\uF4AC", relation-zero-or-many-to-many: "\uF4AD", relation-zero-or-many-to-one: "\uF4AE", relation-zero-or-many-to-one-or-many: "\uF4AF", relation-zero-or-many-to-only-one: "\uF4B0", relation-zero-or-many-to-zero-or-many: "\uF4B1", relation-zero-or-many-to-zero-or-one: "\uF4B2", relation-zero-or-one-to-many: "\uF4B3", relation-zero-or-one-to-one: "\uF4B4", relation-zero-or-one-to-one-or-many: "\uF4B5", relation-zero-or-one-to-only-one: "\uF4B6", relation-zero-or-one-to-zero-or-many: "\uF4B7", relation-zero-or-one-to-zero-or-one: "\uF4B8", relative-scale: "\uE451", reload: "\uE452", reload-alert: "\uF10A", reminder: "\uE88B", remote: "\uE453", remote-desktop: "\uE8B8", remote-off: "\uEEC3", remote-tv: "\uEEC4", remote-tv-off: "\uEEC5", rename-box: "\uE454", reorder-horizontal: "\uE687", reorder-vertical: "\uE688", repeat: "\uE455", repeat-off: "\uE456", repeat-once: "\uE457", repeat-variant: "\uE546", replay: "\uE458", reply: "\uE459", reply-all: "\uE45A", reply-all-outline: "\uEF1E", reply-circle: "\uF1AD", reply-outline: "\uEF1F", reproduction: "\uE45B", resistor: "\uEB43", resistor-nodes: "\uEB44", resize: "\uEA67", resize-bottom-right: "\uE45C", responsive: "\uE45D", restart: "\uE708", restart-alert: "\uF10B", restart-off: "\uED94", restore: "\uE99A", restore-alert: "\uF10C", rewind: "\uE45E", rewind-10: "\uED29", rewind-15: "\uF945", rewind-30: "\uED95", rewind-5: "\uF1F8", rewind-60: "\uF60B", rewind-outline: "\uE709", rhombus: "\uE70A", rhombus-medium: "\uEA0F", rhombus-medium-outline: "\uF4DB", rhombus-outline: "\uE70B", rhombus-split: "\uEA10", rhombus-split-outline: "\uF4DC", ribbon: "\uE45F", rice: "\uE7E9", rickshaw: "\uF5BA", rickshaw-electric: "\uF5BB", ring: "\uE7EA", rivet: "\uEE5F", road: "\uE460", road-variant: "\uE461", robber: "\uF057", robot: "\uE6A8", robot-angry: "\uF69C", robot-angry-outline: "\uF69D", robot-confused: "\uF69E", robot-confused-outline: "\uF69F", robot-dead: "\uF6A0", robot-dead-outline: "\uF6A1", robot-excited: "\uF6A2", robot-excited-outline: "\uF6A3", robot-happy: "\uF718", robot-happy-outline: "\uF719", robot-industrial: "\uEB45", robot-industrial-outline: "\uFA19", robot-love: "\uF6A4", robot-love-outline: "\uF6A5", robot-mower: "\uF1F6", robot-mower-outline: "\uF1F2", robot-off: "\uF6A6", robot-off-outline: "\uF67A", robot-outline: "\uF679", robot-vacuum: "\uE70C", robot-vacuum-variant: "\uE907", rocket: "\uE462", rocket-launch: "\uF4DD", rocket-launch-outline: "\uF4DE", rocket-outline: "\uF3AE", rodent: "\uF326", roller-shade: "\uFA6A", roller-shade-closed: "\uFA6B", roller-skate: "\uED2A", roller-skate-off: "\uE144", rollerblade: "\uED2B", rollerblade-off: "\uE02D", rollupjs: "\uEBBF", rolodex: "\uFAB8", rolodex-outline: "\uFAB9", roman-numeral-1: "\uF087", roman-numeral-10: "\uF090", roman-numeral-2: "\uF088", roman-numeral-3: "\uF089", roman-numeral-4: "\uF08A", roman-numeral-5: "\uF08B", roman-numeral-6: "\uF08C", roman-numeral-7: "\uF08D", roman-numeral-8: "\uF08E", roman-numeral-9: "\uF08F", room-service: "\uE88C", room-service-outline: "\uED96", rotate-360: "\uF998", rotate-3d: "\uEEC6", rotate-3d-variant: "\uE463", rotate-left: "\uE464", rotate-left-variant: "\uE465", rotate-orbit: "\uED97", rotate-right: "\uE466", rotate-right-variant: "\uE467", rounded-corner: "\uE606", router: "\uF1E1", router-network: "\uF086", router-wireless: "\uE468", router-wireless-off: "\uF5A2", router-wireless-settings: "\uEA68", routes: "\uE469", routes-clock: "\uF058", rowing: "\uE607", rss: "\uE46A", rss-box: "\uE46B", rss-off: "\uEF20", rug: "\uF474", rugby: "\uED98", ruler: "\uE46C", ruler-square: "\uECC1", ruler-square-compass: "\uEEBD", run: "\uE70D", run-fast: "\uE46D", rv-truck: "\uF1D3", sack: "\uED2D", sack-percent: "\uED2E", safe: "\uEA69", safe-square: "\uF27B", safe-square-outline: "\uF27C", safety-goggles: "\uED2F", sail-boat: "\uEEC7", sail-boat-sink: "\uFAEE", sale: "\uE46E", sale-outline: "\uFA05", salesforce: "\uE88D", sass: "\uE7EB", satellite: "\uE46F", satellite-uplink: "\uE908", satellite-variant: "\uE470", sausage: "\uE8B9", sausage-off: "\uF788", saw-blade: "\uEE60", sawtooth-wave: "\uF479", saxophone: "\uE608", scale: "\uE471", scale-balance: "\uE5D0", scale-bathroom: "\uE472", scale-off: "\uF059", scale-unbalanced: "\uF9B7", scan-helper: "\uF3D7", scanner: "\uE6AA", scanner-off: "\uE909", scatter-plot: "\uEEC8", scatter-plot-outline: "\uEEC9", scent: "\uF957", scent-off: "\uF958", school: "\uE473", school-outline: "\uF17F", scissors-cutting: "\uEA6A", scooter: "\uF5BC", scooter-electric: "\uF5BD", scoreboard: "\uF27D", scoreboard-outline: "\uF27E", screen-rotation: "\uE474", screen-rotation-lock: "\uE477", screw-flat-top: "\uEDF2", screw-lag: "\uEDF3", screw-machine-flat-top: "\uEDF4", screw-machine-round-top: "\uEDF5", screw-round-top: "\uEDF6", screwdriver: "\uE475", script: "\uEBC0", script-outline: "\uE476", script-text: "\uEBC1", script-text-key: "\uF724", script-text-key-outline: "\uF725", script-text-outline: "\uEBC2", script-text-play: "\uF726", script-text-play-outline: "\uF727", sd: "\uE478", seal: "\uE479", seal-variant: "\uEFD8", search-web: "\uE70E", seat: "\uECC2", seat-flat: "\uE47A", seat-flat-angled: "\uE47B", seat-individual-suite: "\uE47C", seat-legroom-extra: "\uE47D", seat-legroom-normal: "\uE47E", seat-legroom-reduced: "\uE47F", seat-outline: "\uECC3", seat-passenger: "\uF248", seat-recline-extra: "\uE480", seat-recline-normal: "\uE481", seatbelt: "\uECC4", security: "\uE482", security-network: "\uE483", seed: "\uEE61", seed-off: "\uF3FC", seed-off-outline: "\uF3FD", seed-outline: "\uEE62", seed-plus: "\uFA6C", seed-plus-outline: "\uFA6D", seesaw: "\uF5A3", segment: "\uEECA", select: "\uE484", select-all: "\uE485", select-color: "\uED30", select-compare: "\uEAD8", select-drag: "\uEA6B", select-group: "\uEF81", select-inverse: "\uE486", select-marker: "\uF27F", select-multiple: "\uF280", select-multiple-marker: "\uF281", select-off: "\uE487", select-place: "\uEFD9", select-remove: "\uF7C0", select-search: "\uF203", selection: "\uE488", selection-drag: "\uEA6C", selection-ellipse: "\uED31", selection-ellipse-arrow-inside: "\uEF21", selection-ellipse-remove: "\uF7C1", selection-marker: "\uF282", selection-multiple: "\uF284", selection-multiple-marker: "\uF283", selection-off: "\uE776", selection-remove: "\uF7C2", selection-search: "\uF204", semantic-web: "\uF315", send: "\uE489", send-check: "\uF160", send-check-outline: "\uF161", send-circle: "\uEDF7", send-circle-outline: "\uEDF8", send-clock: "\uF162", send-clock-outline: "\uF163", send-lock: "\uE7EC", send-lock-outline: "\uF165", send-outline: "\uF164", serial-port: "\uE65B", server: "\uE48A", server-minus: "\uE48B", server-network: "\uE48C", server-network-off: "\uE48D", server-off: "\uE48E", server-plus: "\uE48F", server-remove: "\uE490", server-security: "\uE491", set-all: "\uE777", set-center: "\uE778", set-center-right: "\uE779", set-left: "\uE77A", set-left-center: "\uE77B", set-left-right: "\uE77C", set-merge: "\uF4DF", set-none: "\uE77D", set-right: "\uE77E", set-split: "\uF4E0", set-square: "\uF45C", set-top-box: "\uE99E", settings-helper: "\uEA6D", shaker: "\uF10D", shaker-outline: "\uF10E", shape: "\uE830", shape-circle-plus: "\uE65C", shape-outline: "\uE831", shape-oval-plus: "\uF1F9", shape-plus: "\uE494", shape-polygon-plus: "\uE65D", shape-rectangle-plus: "\uE65E", shape-square-plus: "\uE65F", shape-square-rounded-plus: "\uF4F9", share: "\uE495", share-all: "\uF1F3", share-all-outline: "\uF1F4", share-circle: "\uF1AC", share-off: "\uEF22", share-off-outline: "\uEF23", share-outline: "\uE931", share-variant: "\uE496", share-variant-outline: "\uF513", shark: "\uF8B9", shark-fin: "\uF672", shark-fin-outline: "\uF673", shark-off: "\uF8BA", sheep: "\uECC5", shield: "\uE497", shield-account: "\uE88E", shield-account-outline: "\uEA11", shield-account-variant: "\uF5A6", shield-account-variant-outline: "\uF5A7", shield-airplane: "\uE6BA", shield-airplane-outline: "\uECC6", shield-alert: "\uEECB", shield-alert-outline: "\uEECC", shield-bug: "\uF3D9", shield-bug-outline: "\uF3DA", shield-car: "\uEF82", shield-check: "\uE564", shield-check-outline: "\uECC7", shield-cross: "\uECC8", shield-cross-outline: "\uECC9", shield-crown: "\uF8BB", shield-crown-outline: "\uF8BC", shield-edit: "\uF19F", shield-edit-outline: "\uF1A0", shield-half: "\uF35F", shield-half-full: "\uE77F", shield-home: "\uE689", shield-home-outline: "\uECCA", shield-key: "\uEBC3", shield-key-outline: "\uEBC4", shield-link-variant: "\uED32", shield-link-variant-outline: "\uED33", shield-lock: "\uE99C", shield-lock-open: "\uF999", shield-lock-open-outline: "\uF99A", shield-lock-outline: "\uECCB", shield-moon: "\uF827", shield-moon-outline: "\uF828", shield-off: "\uE99D", shield-off-outline: "\uE99B", shield-outline: "\uE498", shield-plus: "\uEAD9", shield-plus-outline: "\uEADA", shield-refresh: "\uE0A9", shield-refresh-outline: "\uE1DF", shield-remove: "\uEADB", shield-remove-outline: "\uEADC", shield-search: "\uED99", shield-star: "\uF13A", shield-star-outline: "\uF13B", shield-sun: "\uF05C", shield-sun-outline: "\uF05D", shield-sword: "\uF8BD", shield-sword-outline: "\uF8BE", shield-sync: "\uF1A1", shield-sync-outline: "\uF1A2", shimmer: "\uF544", ship-wheel: "\uE832", shipping-pallet: "\uF84D", shoe-ballet: "\uF5C9", shoe-cleat: "\uF5C6", shoe-formal: "\uEB46", shoe-heel: "\uEB47", shoe-print: "\uEDF9", shoe-sneaker: "\uF5C7", shopping: "\uE499", shopping-music: "\uE49A", shopping-outline: "\uF1D4", shopping-search: "\uEF83", shopping-search-outline: "\uFA6E", shore: "\uF4F8", shovel: "\uE70F", shovel-off: "\uE710", shower: "\uE99F", shower-head: "\uE9A0", shredder: "\uE49B", shuffle: "\uE49C", shuffle-disabled: "\uE49D", shuffle-variant: "\uE49E", shuriken: "\uF37E", sickle: "\uF8BF", sigma: "\uE49F", sigma-lower: "\uE62A", sign-caution: "\uE4A0", sign-direction: "\uE780", sign-direction-minus: "\uEFFF", sign-direction-plus: "\uEFDB", sign-direction-remove: "\uEFDC", sign-pole: "\uF4F7", sign-real-estate: "\uF117", sign-text: "\uE781", signal: "\uE4A1", signal-2g: "\uE711", signal-3g: "\uE712", signal-4g: "\uE713", signal-5g: "\uEA6E", signal-cellular-1: "\uE8BB", signal-cellular-2: "\uE8BC", signal-cellular-3: "\uE8BD", signal-cellular-outline: "\uE8BE", signal-distance-variant: "\uEE63", signal-hspa: "\uE714", signal-hspa-plus: "\uE715", signal-off: "\uE782", signal-variant: "\uE609", signature: "\uEDFA", signature-freehand: "\uEDFB", signature-image: "\uEDFC", signature-text: "\uEDFD", silo: "\uEB48", silverware: "\uE4A2", silverware-clean: "\uEFDD", silverware-fork: "\uE4A3", silverware-fork-knife: "\uEA6F", silverware-spoon: "\uE4A4", silverware-variant: "\uE4A5", sim: "\uE4A6", sim-alert: "\uE4A7", sim-alert-outline: "\uF5D2", sim-off: "\uE4A8", sim-off-outline: "\uF5D3", sim-outline: "\uF5D4", simple-icons: "\uF31C", sina-weibo: "\uEADE", sine-wave: "\uE95A", sitemap: "\uE4A9", sitemap-outline: "\uF99B", size-l: "\uF3A5", size-m: "\uF3A4", size-s: "\uF3A3", size-xl: "\uF3A6", size-xs: "\uF3A2", size-xxl: "\uF3A7", size-xxs: "\uF3A1", size-xxxl: "\uF3A8", skate: "\uED34", skate-off: "\uE698", skateboard: "\uF4C1", skateboarding: "\uE500", skew-less: "\uED35", skew-more: "\uED36", ski: "\uF303", ski-cross-country: "\uF304", ski-water: "\uF305", skip-backward: "\uE4AA", skip-backward-outline: "\uEF24", skip-forward: "\uE4AB", skip-forward-outline: "\uEF25", skip-next: "\uE4AC", skip-next-circle: "\uE660", skip-next-circle-outline: "\uE661", skip-next-outline: "\uEF26", skip-previous: "\uE4AD", skip-previous-circle: "\uE662", skip-previous-circle-outline: "\uE663", skip-previous-outline: "\uEF27", skull: "\uE68B", skull-crossbones: "\uEBC5", skull-crossbones-outline: "\uEBC6", skull-outline: "\uEBC7", skull-scan: "\uF4C6", skull-scan-outline: "\uF4C7", skype: "\uE4AE", skype-business: "\uE4AF", slack: "\uE4B0", slash-forward: "\uEFDE", slash-forward-box: "\uEFDF", sledding: "\uE41A", sleep: "\uE4B1", sleep-off: "\uE4B2", slide: "\uF5A4", slope-downhill: "\uEDFE", slope-uphill: "\uEDFF", slot-machine: "\uF113", slot-machine-outline: "\uF114", smart-card: "\uF0BC", smart-card-off: "\uF8F6", smart-card-off-outline: "\uF8F7", smart-card-outline: "\uF0BD", smart-card-reader: "\uF0BE", smart-card-reader-outline: "\uF0BF", smog: "\uEA70", smoke: "\uF798", smoke-detector: "\uE391", smoke-detector-alert: "\uF92D", smoke-detector-alert-outline: "\uF92E", smoke-detector-off: "\uF808", smoke-detector-off-outline: "\uF809", smoke-detector-outline: "\uF807", smoke-detector-variant: "\uF80A", smoke-detector-variant-alert: "\uF92F", smoke-detector-variant-off: "\uF80B", smoking: "\uE4B3", smoking-off: "\uE4B4", smoking-pipe: "\uF40C", smoking-pipe-off: "\uF427", snail: "\uF676", snake: "\uF50D", snapchat: "\uE4B5", snowboard: "\uF306", snowflake: "\uE716", snowflake-alert: "\uEF28", snowflake-check: "\uFA6F", snowflake-melt: "\uF2CA", snowflake-off: "\uF4E2", snowflake-thermometer: "\uFA70", snowflake-variant: "\uEF29", snowman: "\uE4B6", snowmobile: "\uE6DC", snowshoeing: "\uFA71", soccer: "\uE4B7", soccer-field: "\uE833", social-distance-2-meters: "\uF578", social-distance-6-feet: "\uF579", sofa: "\uE4B8", sofa-outline: "\uF56C", sofa-single: "\uF56D", sofa-single-outline: "\uF56E", solar-panel: "\uED9A", solar-panel-large: "\uED9B", solar-power: "\uEA71", solar-power-variant: "\uFA72", solar-power-variant-outline: "\uFA73", soldering-iron: "\uF091", solid: "\uE68C", sony-playstation: "\uE413", sort: "\uE4B9", sort-alphabetical-ascending: "\uE5BC", sort-alphabetical-ascending-variant: "\uF147", sort-alphabetical-descending: "\uE5BE", sort-alphabetical-descending-variant: "\uF148", sort-alphabetical-variant: "\uE4BA", sort-ascending: "\uE4BB", sort-bool-ascending: "\uF384", sort-bool-ascending-variant: "\uF385", sort-bool-descending: "\uF386", sort-bool-descending-variant: "\uF387", sort-calendar-ascending: "\uF546", sort-calendar-descending: "\uF547", sort-clock-ascending: "\uF548", sort-clock-ascending-outline: "\uF549", sort-clock-descending: "\uF54A", sort-clock-descending-outline: "\uF54B", sort-descending: "\uE4BC", sort-numeric-ascending: "\uF388", sort-numeric-ascending-variant: "\uE90C", sort-numeric-descending: "\uF389", sort-numeric-descending-variant: "\uEAD1", sort-numeric-variant: "\uE4BD", sort-reverse-variant: "\uE33B", sort-variant: "\uE4BE", sort-variant-lock: "\uECCC", sort-variant-lock-open: "\uECCD", sort-variant-off: "\uFABA", sort-variant-remove: "\uF146", soundbar: "\uF7DA", soundcloud: "\uE4BF", source-branch: "\uE62B", source-branch-check: "\uF4CE", source-branch-minus: "\uF4CA", source-branch-plus: "\uF4C9", source-branch-refresh: "\uF4CC", source-branch-remove: "\uF4CB", source-branch-sync: "\uF4CD", source-commit: "\uE717", source-commit-end: "\uE718", source-commit-end-local: "\uE719", source-commit-local: "\uE71A", source-commit-next-local: "\uE71B", source-commit-start: "\uE71C", source-commit-start-next-local: "\uE71D", source-fork: "\uE4C0", source-merge: "\uE62C", source-pull: "\uE4C1", source-repository: "\uECCE", source-repository-multiple: "\uECCF", soy-sauce: "\uE7ED", soy-sauce-off: "\uF3FB", spa: "\uECD0", spa-outline: "\uECD1", space-invaders: "\uEBC8", space-station: "\uF382", spade: "\uEE64", speaker: "\uE4C2", speaker-bluetooth: "\uE9A1", speaker-multiple: "\uED37", speaker-off: "\uE4C3", speaker-wireless: "\uE71E", spear: "\uF844", speedometer: "\uE4C4", speedometer-medium: "\uEF84", speedometer-slow: "\uEF85", spellcheck: "\uE4C5", sphere: "\uF953", sphere-off: "\uF954", spider: "\uF1E9", spider-thread: "\uF1EA", spider-web: "\uEBC9", spirit-level: "\uF4F0", spoon-sugar: "\uF428", spotify: "\uE4C6", spotlight: "\uE4C7", spotlight-beam: "\uE4C8", spray: "\uE664", spray-bottle: "\uEADF", sprinkler: "\uF05E", sprinkler-fire: "\uF99C", sprinkler-variant: "\uF05F", sprout: "\uEE65", sprout-outline: "\uEE66", square: "\uE763", square-circle: "\uF4FF", square-edit-outline: "\uE90B", square-medium: "\uEA12", square-medium-outline: "\uEA13", square-off: "\uF2ED", square-off-outline: "\uF2EE", square-opacity: "\uF853", square-outline: "\uE762", square-root: "\uE783", square-root-box: "\uE9A2", square-rounded: "\uF4FA", square-rounded-badge: "\uFA06", square-rounded-badge-outline: "\uFA07", square-rounded-outline: "\uF4FB", square-small: "\uEA14", square-wave: "\uF47A", squeegee: "\uEAE0", ssh: "\uE8BF", stack-exchange: "\uE60A", stack-overflow: "\uE4CB", stackpath: "\uE358", stadium: "\uEFF8", stadium-variant: "\uE71F", stairs: "\uE4CC", stairs-box: "\uF39D", stairs-down: "\uF2BD", stairs-up: "\uF2BC", stamper: "\uED38", standard-definition: "\uE7EE", star: "\uE4CD", star-box: "\uEA72", star-box-multiple: "\uF285", star-box-multiple-outline: "\uF286", star-box-outline: "\uEA73", star-check: "\uF565", star-check-outline: "\uF569", star-circle: "\uE4CE", star-circle-outline: "\uE9A3", star-cog: "\uF667", star-cog-outline: "\uF668", star-crescent: "\uE978", star-david: "\uE979", star-face: "\uE9A4", star-four-points: "\uEAE1", star-four-points-outline: "\uEAE2", star-half: "\uE245", star-half-full: "\uE4CF", star-minus: "\uF563", star-minus-outline: "\uF567", star-off: "\uE4D0", star-off-outline: "\uF55A", star-outline: "\uE4D1", star-plus: "\uF562", star-plus-outline: "\uF566", star-remove: "\uF564", star-remove-outline: "\uF568", star-settings: "\uF669", star-settings-outline: "\uF66A", star-shooting: "\uF740", star-shooting-outline: "\uF741", star-three-points: "\uEAE3", star-three-points-outline: "\uEAE4", state-machine: "\uF1EE", steam: "\uE4D2", steering: "\uE4D3", steering-off: "\uE90D", step-backward: "\uE4D4", step-backward-2: "\uE4D5", step-forward: "\uE4D6", step-forward-2: "\uE4D7", stethoscope: "\uE4D8", sticker: "\uF363", sticker-alert: "\uF364", sticker-alert-outline: "\uF365", sticker-check: "\uF366", sticker-check-outline: "\uF367", sticker-circle-outline: "\uE5CF", sticker-emoji: "\uE784", sticker-minus: "\uF368", sticker-minus-outline: "\uF369", sticker-outline: "\uF36A", sticker-plus: "\uF36B", sticker-plus-outline: "\uF36C", sticker-remove: "\uF36D", sticker-remove-outline: "\uF36E", sticker-text: "\uF78D", sticker-text-outline: "\uF78E", stocking: "\uE4D9", stomach: "\uF092", stool: "\uF95C", stool-outline: "\uF95D", stop: "\uE4DA", stop-circle: "\uE665", stop-circle-outline: "\uE666", storage-tank: "\uFA74", storage-tank-outline: "\uFA75", store: "\uE4DB", store-24-hour: "\uE4DC", store-alert: "\uF8C0", store-alert-outline: "\uF8C1", store-check: "\uF8C2", store-check-outline: "\uF8C3", store-clock: "\uF8C4", store-clock-outline: "\uF8C5", store-cog: "\uF8C6", store-cog-outline: "\uF8C7", store-edit: "\uF8C8", store-edit-outline: "\uF8C9", store-marker: "\uF8CA", store-marker-outline: "\uF8CB", store-minus: "\uF65D", store-minus-outline: "\uF8CC", store-off: "\uF8CD", store-off-outline: "\uF8CE", store-outline: "\uF360", store-plus: "\uF65E", store-plus-outline: "\uF8CF", store-remove: "\uF65F", store-remove-outline: "\uF8D0", store-search: "\uF8D1", store-search-outline: "\uF8D2", store-settings: "\uF8D3", store-settings-outline: "\uF8D4", storefront: "\uE7C6", storefront-outline: "\uF0C0", stove: "\uE4DD", strategy: "\uF1D5", stretch-to-page: "\uEF2A", stretch-to-page-outline: "\uEF2B", string-lights: "\uF2B9", string-lights-off: "\uF2BA", subdirectory-arrow-left: "\uE60B", subdirectory-arrow-right: "\uE60C", submarine: "\uF56B", subtitles: "\uEA15", subtitles-outline: "\uEA16", subway: "\uE6AB", subway-alert-variant: "\uED9C", subway-variant: "\uE4DE", summit: "\uE785", sun-clock: "\uFA76", sun-clock-outline: "\uFA77", sun-compass: "\uF9A4", sun-snowflake: "\uF795", sun-snowflake-variant: "\uFA78", sun-thermometer: "\uF8D5", sun-thermometer-outline: "\uF8D6", sun-wireless: "\uF7FD", sun-wireless-outline: "\uF7FE", sunglasses: "\uE4DF", surfing: "\uF745", surround-sound: "\uE5C4", surround-sound-2-0: "\uE7EF", surround-sound-2-1: "\uF728", surround-sound-3-1: "\uE7F0", surround-sound-5-1: "\uE7F1", surround-sound-5-1-2: "\uF729", surround-sound-7-1: "\uE7F2", svg: "\uE720", swap-horizontal: "\uE4E0", swap-horizontal-bold: "\uEBCC", swap-horizontal-circle: "\uEFE0", swap-horizontal-circle-outline: "\uEFE1", swap-horizontal-variant: "\uE8C0", swap-vertical: "\uE4E1", swap-vertical-bold: "\uEBCD", swap-vertical-circle: "\uEFE2", swap-vertical-circle-outline: "\uEFE3", swap-vertical-variant: "\uE8C1", swim: "\uE4E2", switch: "\uE4E3", sword: "\uE4E4", sword-cross: "\uE786", syllabary-hangul: "\uF332", syllabary-hiragana: "\uF333", syllabary-katakana: "\uF334", syllabary-katakana-halfwidth: "\uF335", symbol: "\uF500", symfony: "\uEAE5", sync: "\uE4E5", sync-alert: "\uE4E6", sync-circle: "\uF377", sync-off: "\uE4E7", tab: "\uE4E8", tab-minus: "\uEB4A", tab-plus: "\uE75B", tab-remove: "\uEB4B", tab-search: "\uF99D", tab-unselected: "\uE4E9", table: "\uE4EA", table-account: "\uF3B8", table-alert: "\uF3B9", table-arrow-down: "\uF3BA", table-arrow-left: "\uF3BB", table-arrow-right: "\uF3BC", table-arrow-up: "\uF3BD", table-border: "\uEA17", table-cancel: "\uF3BE", table-chair: "\uF060", table-check: "\uF3BF", table-clock: "\uF3C0", table-cog: "\uF3C1", table-column: "\uE834", table-column-plus-after: "\uE4EB", table-column-plus-before: "\uE4EC", table-column-remove: "\uE4ED", table-column-width: "\uE4EE", table-edit: "\uE4EF", table-eye: "\uF093", table-eye-off: "\uF3C2", table-furniture: "\uE5BB", table-headers-eye: "\uF21C", table-headers-eye-off: "\uF21D", table-heart: "\uF3C3", table-key: "\uF3C4", table-large: "\uE4F0", table-large-plus: "\uEF86", table-large-remove: "\uEF87", table-lock: "\uF3C5", table-merge-cells: "\uE9A5", table-minus: "\uF3C6", table-multiple: "\uF3C7", table-network: "\uF3C8", table-of-contents: "\uE835", table-off: "\uF3C9", table-picnic: "\uF742", table-pivot: "\uF83B", table-plus: "\uEA74", table-refresh: "\uF39F", table-remove: "\uEA75", table-row: "\uE836", table-row-height: "\uE4F1", table-row-plus-after: "\uE4F2", table-row-plus-before: "\uE4F3", table-row-remove: "\uE4F4", table-search: "\uE90E", table-settings: "\uE837", table-split-cell: "\uF429", table-star: "\uF3CA", table-sync: "\uF3A0", table-tennis: "\uEE67", tablet: "\uE4F5", tablet-android: "\uE4F6", tablet-cellphone: "\uE9A6", tablet-dashboard: "\uEECD", taco: "\uE761", tag: "\uE4F8", tag-arrow-down: "\uF72A", tag-arrow-down-outline: "\uF72B", tag-arrow-left: "\uF72C", tag-arrow-left-outline: "\uF72D", tag-arrow-right: "\uF72E", tag-arrow-right-outline: "\uF72F", tag-arrow-up: "\uF730", tag-arrow-up-outline: "\uF731", tag-check: "\uFA79", tag-check-outline: "\uFA7A", tag-faces: "\uE4F9", tag-heart: "\uE68A", tag-heart-outline: "\uEBCE", tag-minus: "\uE90F", tag-minus-outline: "\uF21E", tag-multiple: "\uE4FA", tag-multiple-outline: "\uF2F6", tag-off: "\uF21F", tag-off-outline: "\uF220", tag-outline: "\uE4FB", tag-plus: "\uE721", tag-plus-outline: "\uF221", tag-remove: "\uE722", tag-remove-outline: "\uF222", tag-search: "\uF906", tag-search-outline: "\uF907", tag-text: "\uF223", tag-text-outline: "\uE4FC", tailwind: "\uF3FE", tally-mark-1: "\uFABB", tally-mark-2: "\uFABC", tally-mark-3: "\uFABD", tally-mark-4: "\uFABE", tally-mark-5: "\uFABF", tangram: "\uE4F7", tank: "\uED39", tanker-truck: "\uEFE4", tape-drive: "\uF6DE", tape-measure: "\uEB4C", target: "\uE4FD", target-account: "\uEBCF", target-variant: "\uEA76", taxi: "\uE4FE", tea: "\uED9D", tea-outline: "\uED9E", teamviewer: "\uE4FF", teddy-bear: "\uF8FA", telescope: "\uEB4D", television: "\uE501", television-ambient-light: "\uF355", television-box: "\uE838", television-classic: "\uE7F3", television-classic-off: "\uE839", television-guide: "\uE502", television-off: "\uE83A", television-pause: "\uEF88", television-play: "\uEECE", television-shimmer: "\uF10F", television-stop: "\uEF89", temperature-celsius: "\uE503", temperature-fahrenheit: "\uE504", temperature-kelvin: "\uE505", tennis: "\uED9F", tennis-ball: "\uE506", tent: "\uE507", terraform: "\uF061", terrain: "\uE508", test-tube: "\uE667", test-tube-empty: "\uE910", test-tube-off: "\uE911", text: "\uE9A7", text-account: "\uF56F", text-box: "\uE219", text-box-check: "\uEEA5", text-box-check-outline: "\uEEA6", text-box-edit: "\uFA7B", text-box-edit-outline: "\uFA7C", text-box-minus: "\uEEA7", text-box-minus-outline: "\uEEA8", text-box-multiple: "\uEAB6", text-box-multiple-outline: "\uEAB7", text-box-outline: "\uE9EC", text-box-plus: "\uEEA9", text-box-plus-outline: "\uEEAA", text-box-remove: "\uEEAB", text-box-remove-outline: "\uEEAC", text-box-search: "\uEEAD", text-box-search-outline: "\uEEAE", text-long: "\uE9A9", text-recognition: "\uF13C", text-search: "\uF3B7", text-search-variant: "\uFA7D", text-shadow: "\uE668", text-short: "\uE9A8", text-to-speech: "\uE509", text-to-speech-off: "\uE50A", texture: "\uE50B", texture-box: "\uEFE5", theater: "\uE50C", theme-light-dark: "\uE50D", thermometer: "\uE50E", thermometer-alert: "\uEE00", thermometer-bluetooth: "\uF894", thermometer-check: "\uFA7E", thermometer-chevron-down: "\uEE01", thermometer-chevron-up: "\uEE02", thermometer-high: "\uF0C1", thermometer-lines: "\uE50F", thermometer-low: "\uF0C2", thermometer-minus: "\uEE03", thermometer-off: "\uF530", thermometer-plus: "\uEE04", thermometer-water: "\uFA7F", thermostat: "\uE392", thermostat-box: "\uE890", thought-bubble: "\uE7F5", thought-bubble-outline: "\uE7F6", thumb-down: "\uE510", thumb-down-outline: "\uE511", thumb-up: "\uE512", thumb-up-outline: "\uE513", thumbs-up-down: "\uE514", thumbs-up-down-outline: "\uF913", ticket: "\uE515", ticket-account: "\uE516", ticket-confirmation: "\uE517", ticket-confirmation-outline: "\uF3A9", ticket-outline: "\uE912", ticket-percent: "\uE723", ticket-percent-outline: "\uF42A", tie: "\uE518", tilde: "\uE724", tilde-off: "\uF8F2", timelapse: "\uE519", timeline: "\uEBD0", timeline-alert: "\uEF94", timeline-alert-outline: "\uEF97", timeline-check: "\uF531", timeline-check-outline: "\uF532", timeline-clock: "\uF1FA", timeline-clock-outline: "\uF1FB", timeline-help: "\uEF98", timeline-help-outline: "\uEF99", timeline-minus: "\uF533", timeline-minus-outline: "\uF534", timeline-outline: "\uEBD1", timeline-plus: "\uEF95", timeline-plus-outline: "\uEF96", timeline-remove: "\uF535", timeline-remove-outline: "\uF536", timeline-text: "\uEBD2", timeline-text-outline: "\uEBD3", timer: "\uF3AA", timer-10: "\uE51B", timer-3: "\uE51C", timer-alert: "\uFACB", timer-alert-outline: "\uFACC", timer-cancel: "\uFACD", timer-cancel-outline: "\uFACE", timer-check: "\uFACF", timer-check-outline: "\uFAD0", timer-cog: "\uF924", timer-cog-outline: "\uF925", timer-edit: "\uFAD1", timer-edit-outline: "\uFAD2", timer-lock: "\uFAD3", timer-lock-open: "\uFAD4", timer-lock-open-outline: "\uFAD5", timer-lock-outline: "\uFAD6", timer-marker: "\uFAD7", timer-marker-outline: "\uFAD8", timer-minus: "\uFAD9", timer-minus-outline: "\uFADA", timer-music: "\uFADB", timer-music-outline: "\uFADC", timer-off: "\uF3AB", timer-off-outline: "\uE51D", timer-outline: "\uE51A", timer-pause: "\uFADD", timer-pause-outline: "\uFADE", timer-play: "\uFADF", timer-play-outline: "\uFAE0", timer-plus: "\uFAE1", timer-plus-outline: "\uFAE2", timer-refresh: "\uFAE3", timer-refresh-outline: "\uFAE4", timer-remove: "\uFAE5", timer-remove-outline: "\uFAE6", timer-sand: "\uE51E", timer-sand-complete: "\uF99E", timer-sand-empty: "\uE6AC", timer-sand-full: "\uE78B", timer-sand-paused: "\uF99F", timer-settings: "\uF922", timer-settings-outline: "\uF923", timer-star: "\uFAE7", timer-star-outline: "\uFAE8", timer-stop: "\uFAE9", timer-stop-outline: "\uFAEA", timer-sync: "\uFAEB", timer-sync-outline: "\uFAEC", timetable: "\uE51F", tire: "\uF895", toaster: "\uF062", toaster-off: "\uF1B6", toaster-oven: "\uECD2", toggle-switch: "\uE520", toggle-switch-off: "\uE521", toggle-switch-off-outline: "\uEA18", toggle-switch-outline: "\uEA19", toggle-switch-variant: "\uFA24", toggle-switch-variant-off: "\uFA25", toilet: "\uE9AA", toolbox: "\uE9AB", toolbox-outline: "\uE9AC", tools: "\uF063", tooltip: "\uE522", tooltip-account: "\uE00B", tooltip-cellphone: "\uF83A", tooltip-check: "\uF55B", tooltip-check-outline: "\uF55C", tooltip-edit: "\uE523", tooltip-edit-outline: "\uF2C4", tooltip-image: "\uE524", tooltip-image-outline: "\uEBD4", tooltip-minus: "\uF55D", tooltip-minus-outline: "\uF55E", tooltip-outline: "\uE525", tooltip-plus: "\uEBD5", tooltip-plus-outline: "\uE526", tooltip-remove: "\uF55F", tooltip-remove-outline: "\uF560", tooltip-text: "\uE527", tooltip-text-outline: "\uEBD6", tooth: "\uE8C2", tooth-outline: "\uE528", toothbrush: "\uF128", toothbrush-electric: "\uF12B", toothbrush-paste: "\uF129", torch: "\uF605", tortoise: "\uED3A", toslink: "\uF2B7", tournament: "\uE9AD", tow-truck: "\uE83B", tower-beach: "\uE680", tower-fire: "\uE681", town-hall: "\uF874", toy-brick: "\uF287", toy-brick-marker: "\uF288", toy-brick-marker-outline: "\uF289", toy-brick-minus: "\uF28A", toy-brick-minus-outline: "\uF28B", toy-brick-outline: "\uF28C", toy-brick-plus: "\uF28D", toy-brick-plus-outline: "\uF28E", toy-brick-remove: "\uF28F", toy-brick-remove-outline: "\uF290", toy-brick-search: "\uF291", toy-brick-search-outline: "\uF292", track-light: "\uE913", trackpad: "\uE7F7", trackpad-lock: "\uE932", tractor: "\uE891", tractor-variant: "\uF4C3", trademark: "\uEA77", traffic-cone: "\uF37B", traffic-light: "\uE52A", traffic-light-outline: "\uF829", train: "\uE52B", train-car: "\uEBD7", train-car-passenger: "\uF732", train-car-passenger-door: "\uF733", train-car-passenger-door-open: "\uF734", train-car-passenger-variant: "\uF735", train-variant: "\uE8C3", tram: "\uE52C", tram-side: "\uEFE6", transcribe: "\uE52D", transcribe-close: "\uE52E", transfer: "\uF064", transfer-down: "\uEDA0", transfer-left: "\uEDA1", transfer-right: "\uE52F", transfer-up: "\uEDA2", transit-connection: "\uED3B", transit-connection-horizontal: "\uF545", transit-connection-variant: "\uED3C", transit-detour: "\uEF8A", transit-skip: "\uF514", transit-transfer: "\uE6AD", transition: "\uE914", transition-masked: "\uE915", translate: "\uE5C9", translate-off: "\uEE05", transmission-tower: "\uED3D", transmission-tower-export: "\uF92B", transmission-tower-import: "\uF92C", transmission-tower-off: "\uF9DC", trash-can: "\uEA78", trash-can-outline: "\uEA79", tray: "\uF293", tray-alert: "\uF294", tray-arrow-down: "\uE11F", tray-arrow-up: "\uE11C", tray-full: "\uF295", tray-minus: "\uF296", tray-plus: "\uF297", tray-remove: "\uF298", treasure-chest: "\uE725", tree: "\uE530", tree-outline: "\uEE68", trello: "\uE531", trending-down: "\uE532", trending-neutral: "\uE533", trending-up: "\uE534", triangle: "\uE535", triangle-outline: "\uE536", triangle-small-down: "\uFA08", triangle-small-up: "\uFA09", triangle-wave: "\uF47B", triforce: "\uEBD8", trophy: "\uE537", trophy-award: "\uE538", trophy-broken: "\uEDA3", trophy-outline: "\uE539", trophy-variant: "\uE53A", trophy-variant-outline: "\uE53B", truck: "\uE53C", truck-alert: "\uF9DD", truck-alert-outline: "\uF9DE", truck-cargo-container: "\uF8D7", truck-check: "\uECD3", truck-check-outline: "\uF299", truck-delivery: "\uE53D", truck-delivery-outline: "\uF29A", truck-fast: "\uE787", truck-fast-outline: "\uF29B", truck-flatbed: "\uF890", truck-minus: "\uF9AD", truck-minus-outline: "\uF9BC", truck-outline: "\uF29C", truck-plus: "\uF9AC", truck-plus-outline: "\uF9BB", truck-remove: "\uF9AE", truck-remove-outline: "\uF9BD", truck-snowflake: "\uF9A5", truck-trailer: "\uE726", trumpet: "\uF095", tshirt-crew: "\uEA7A", tshirt-crew-outline: "\uE53E", tshirt-v: "\uEA7B", tshirt-v-outline: "\uE53F", tsunami: "\uFA80", tumble-dryer: "\uE916", tumble-dryer-alert: "\uF1B9", tumble-dryer-off: "\uF1BA", tune: "\uE62D", tune-variant: "\uF541", tune-vertical: "\uE669", tune-vertical-variant: "\uF542", tunnel: "\uF83C", tunnel-outline: "\uF83D", turbine: "\uFA81", turkey: "\uF71A", turnstile: "\uECD4", turnstile-outline: "\uECD5", turtle: "\uECD6", twitch: "\uE542", twitter: "\uE543", two-factor-authentication: "\uE9AE", typewriter: "\uEF2C", ubisoft: "\uEBD9", ubuntu: "\uE547", ufo: "\uF0C3", ufo-outline: "\uF0C4", ultra-high-definition: "\uE7F8", umbraco: "\uE548", umbrella: "\uE549", umbrella-beach: "\uF889", umbrella-beach-outline: "\uF88A", umbrella-closed: "\uE9AF", umbrella-closed-outline: "\uF3E1", umbrella-closed-variant: "\uF3E0", umbrella-outline: "\uE54A", undo: "\uE54B", undo-variant: "\uE54C", unfold-less-horizontal: "\uE54D", unfold-less-vertical: "\uE75F", unfold-more-horizontal: "\uE54E", unfold-more-vertical: "\uE760", ungroup: "\uE54F", unicode: "\uEECF", unicorn: "\uF5C1", unicorn-variant: "\uF5C2", unicycle: "\uF5E4", unity: "\uE6AE", unreal: "\uE9B0", update: "\uE6AF", upload: "\uE551", upload-lock: "\uF372", upload-lock-outline: "\uF373", upload-multiple: "\uE83C", upload-network: "\uE6F5", upload-network-outline: "\uECD7", upload-off: "\uF0C5", upload-off-outline: "\uF0C6", upload-outline: "\uEE06", usb: "\uE552", usb-flash-drive: "\uF29D", usb-flash-drive-outline: "\uF29E", usb-port: "\uF1EF", vacuum: "\uF9A0", vacuum-outline: "\uF9A1", valve: "\uF065", valve-closed: "\uF066", valve-open: "\uF067", van-passenger: "\uE7F9", van-utility: "\uE7FA", vanish: "\uE7FB", vanish-quarter: "\uF553", vanity-light: "\uF1E0", variable: "\uEAE6", variable-box: "\uF110", vector-arrange-above: "\uE553", vector-arrange-below: "\uE554", vector-bezier: "\uEAE7", vector-circle: "\uE555", vector-circle-variant: "\uE556", vector-combine: "\uE557", vector-curve: "\uE558", vector-difference: "\uE559", vector-difference-ab: "\uE55A", vector-difference-ba: "\uE55B", vector-ellipse: "\uE892", vector-intersection: "\uE55C", vector-line: "\uE55D", vector-link: "\uEFE7", vector-point: "\uE55E", vector-polygon: "\uE55F", vector-polygon-variant: "\uF855", vector-polyline: "\uE560", vector-polyline-edit: "\uF224", vector-polyline-minus: "\uF225", vector-polyline-plus: "\uF226", vector-polyline-remove: "\uF227", vector-radius: "\uE749", vector-rectangle: "\uE5C5", vector-selection: "\uE561", vector-square: "\uE000", vector-square-close: "\uF856", vector-square-edit: "\uF8D8", vector-square-minus: "\uF8D9", vector-square-open: "\uF857", vector-square-plus: "\uF8DA", vector-square-remove: "\uF8DB", vector-triangle: "\uE562", vector-union: "\uE563", vhs: "\uEA1A", vibrate: "\uE565", vibrate-off: "\uECD8", video: "\uE566", video-2d: "\uFA1B", video-3d: "\uE7FC", video-3d-off: "\uF3D8", video-3d-variant: "\uEED0", video-4k-box: "\uE83D", video-account: "\uE918", video-box: "\uE0FC", video-box-off: "\uE0FD", video-check: "\uF068", video-check-outline: "\uF069", video-high-definition: "\uF52D", video-image: "\uE919", video-input-antenna: "\uE83E", video-input-component: "\uE83F", video-input-hdmi: "\uE840", video-input-scart: "\uEF8B", video-input-svideo: "\uE841", video-marker: "\uF9A8", video-marker-outline: "\uF9A9", video-minus: "\uE9B1", video-minus-outline: "\uE2B9", video-off: "\uE567", video-off-outline: "\uEBDA", video-outline: "\uEBDB", video-plus: "\uE9B2", video-plus-outline: "\uE1D2", video-stabilization: "\uE91A", video-switch: "\uE568", video-switch-outline: "\uE78F", video-vintage: "\uEA1B", video-wireless: "\uEED1", video-wireless-outline: "\uEED2", view-agenda: "\uE569", view-agenda-outline: "\uF1D7", view-array: "\uE56A", view-array-outline: "\uF484", view-carousel: "\uE56B", view-carousel-outline: "\uF485", view-column: "\uE56C", view-column-outline: "\uF486", view-comfy: "\uEE69", view-comfy-outline: "\uF487", view-compact: "\uEE6A", view-compact-outline: "\uEE6B", view-dashboard: "\uE56D", view-dashboard-edit: "\uF946", view-dashboard-edit-outline: "\uF947", view-dashboard-outline: "\uEA1C", view-dashboard-variant: "\uE842", view-dashboard-variant-outline: "\uF488", view-day: "\uE56E", view-day-outline: "\uF489", view-gallery: "\uF887", view-gallery-outline: "\uF888", view-grid: "\uE56F", view-grid-outline: "\uF1D8", view-grid-plus: "\uEF8C", view-grid-plus-outline: "\uF1D9", view-headline: "\uE570", view-list: "\uE571", view-list-outline: "\uF48A", view-module: "\uE572", view-module-outline: "\uF48B", view-parallel: "\uE727", view-parallel-outline: "\uF48C", view-quilt: "\uE573", view-quilt-outline: "\uF48D", view-sequential: "\uE728", view-sequential-outline: "\uF48E", view-split-horizontal: "\uEBCA", view-split-vertical: "\uEBCB", view-stream: "\uE574", view-stream-outline: "\uF48F", view-week: "\uE575", view-week-outline: "\uF490", vimeo: "\uE576", violin: "\uE60E", virtual-reality: "\uE893", virus: "\uF3B5", virus-off: "\uF8E0", virus-off-outline: "\uF8E1", virus-outline: "\uF3B6", vlc: "\uE57B", voicemail: "\uE57C", volcano: "\uFA82", volcano-outline: "\uFA83", volleyball: "\uE9B3", volume-high: "\uE57D", volume-low: "\uE57E", volume-medium: "\uE57F", volume-minus: "\uE75D", volume-mute: "\uE75E", volume-off: "\uE580", volume-plus: "\uE75C", volume-source: "\uF11F", volume-variant-off: "\uEE07", volume-vibrate: "\uF120", vote: "\uEA1E", vote-outline: "\uEA1F", vpn: "\uE581", vuejs: "\uE843", vuetify: "\uEE6C", walk: "\uE582", wall: "\uE7FD", wall-fire: "\uFA10", wall-sconce: "\uE91B", wall-sconce-flat: "\uE91C", wall-sconce-flat-outline: "\uF7C8", wall-sconce-flat-variant: "\uE41B", wall-sconce-flat-variant-outline: "\uF7C9", wall-sconce-outline: "\uF7CA", wall-sconce-round: "\uE747", wall-sconce-round-outline: "\uF7CB", wall-sconce-round-variant: "\uE91D", wall-sconce-round-variant-outline: "\uF7CC", wallet: "\uE583", wallet-giftcard: "\uE584", wallet-membership: "\uE585", wallet-outline: "\uEBDC", wallet-plus: "\uEF8D", wallet-plus-outline: "\uEF8E", wallet-travel: "\uE586", wallpaper: "\uEE08", wan: "\uE587", wardrobe: "\uEF8F", wardrobe-outline: "\uEF90", warehouse: "\uEF80", washing-machine: "\uE729", washing-machine-alert: "\uF1BB", washing-machine-off: "\uF1BC", watch: "\uE588", watch-export: "\uE589", watch-export-variant: "\uE894", watch-import: "\uE58A", watch-import-variant: "\uE895", watch-variant: "\uE896", watch-vibrate: "\uE6B0", watch-vibrate-off: "\uECD9", water: "\uE58B", water-alert: "\uF501", water-alert-outline: "\uF502", water-boiler: "\uEF91", water-boiler-alert: "\uF1B2", water-boiler-off: "\uF1B3", water-check: "\uF503", water-check-outline: "\uF504", water-circle: "\uF805", water-minus: "\uF505", water-minus-outline: "\uF506", water-off: "\uE58C", water-off-outline: "\uF507", water-opacity: "\uF854", water-outline: "\uEE09", water-percent: "\uE58D", water-percent-alert: "\uF508", water-plus: "\uF509", water-plus-outline: "\uF50A", water-polo: "\uF29F", water-pump: "\uE58E", water-pump-off: "\uEF92", water-remove: "\uF50B", water-remove-outline: "\uF50C", water-sync: "\uF7C5", water-thermometer: "\uFA84", water-thermometer-outline: "\uFA85", water-well: "\uF06A", water-well-outline: "\uF06B", waterfall: "\uF848", watering-can: "\uF480", watering-can-outline: "\uF481", watermark: "\uE611", wave: "\uEF2D", waveform: "\uF47C", waves: "\uE78C", waves-arrow-left: "\uF858", waves-arrow-right: "\uF859", waves-arrow-up: "\uF85A", waze: "\uEBDD", weather-cloudy: "\uE58F", weather-cloudy-alert: "\uEF2E", weather-cloudy-arrow-right: "\uEE6D", weather-cloudy-clock: "\uF8F5", weather-fog: "\uE590", weather-hail: "\uE591", weather-hazy: "\uEF2F", weather-hurricane: "\uE897", weather-lightning: "\uE592", weather-lightning-rainy: "\uE67D", weather-night: "\uE593", weather-night-partly-cloudy: "\uEF30", weather-partly-cloudy: "\uE594", weather-partly-lightning: "\uEF31", weather-partly-rainy: "\uEF32", weather-partly-snowy: "\uEF33", weather-partly-snowy-rainy: "\uEF34", weather-pouring: "\uE595", weather-rainy: "\uE596", weather-snowy: "\uE597", weather-snowy-heavy: "\uEF35", weather-snowy-rainy: "\uE67E", weather-sunny: "\uE598", weather-sunny-alert: "\uEF36", weather-sunny-off: "\uF4E3", weather-sunset: "\uE599", weather-sunset-down: "\uE59A", weather-sunset-up: "\uE59B", weather-tornado: "\uEF37", weather-windy: "\uE59C", weather-windy-variant: "\uE59D", web: "\uE59E", web-box: "\uEF93", web-cancel: "\uF78F", web-check: "\uE788", web-clock: "\uF249", web-minus: "\uF09F", web-off: "\uEA8D", web-plus: "\uE032", web-refresh: "\uF790", web-remove: "\uE550", web-sync: "\uF791", webcam: "\uE59F", webcam-off: "\uF736", webhook: "\uE62E", webpack: "\uE72A", webrtc: "\uF247", wechat: "\uE610", weight: "\uE5A0", weight-gram: "\uED3E", weight-kilogram: "\uE5A1", weight-lifter: "\uF15C", weight-pound: "\uE9B4", whatsapp: "\uE5A2", wheel-barrow: "\uF4F1", wheelchair: "\uFA86", wheelchair-accessibility: "\uE5A3", whistle: "\uE9B5", whistle-outline: "\uF2BB", white-balance-auto: "\uE5A4", white-balance-incandescent: "\uE5A5", white-balance-iridescent: "\uE5A6", white-balance-sunny: "\uE5A7", widgets: "\uE72B", widgets-outline: "\uF354", wifi: "\uE5A8", wifi-alert: "\uF6B4", wifi-arrow-down: "\uF6B5", wifi-arrow-left: "\uF6B6", wifi-arrow-left-right: "\uF6B7", wifi-arrow-right: "\uF6B8", wifi-arrow-up: "\uF6B9", wifi-arrow-up-down: "\uF6BA", wifi-cancel: "\uF6BB", wifi-check: "\uF6BC", wifi-cog: "\uF6BD", wifi-lock: "\uF6BE", wifi-lock-open: "\uF6BF", wifi-marker: "\uF6C0", wifi-minus: "\uF6C1", wifi-off: "\uE5A9", wifi-plus: "\uF6C2", wifi-refresh: "\uF6C3", wifi-remove: "\uF6C4", wifi-settings: "\uF6C5", wifi-star: "\uEE0A", wifi-strength-1: "\uE91E", wifi-strength-1-alert: "\uE91F", wifi-strength-1-lock: "\uE920", wifi-strength-1-lock-open: "\uF6CA", wifi-strength-2: "\uE921", wifi-strength-2-alert: "\uE922", wifi-strength-2-lock: "\uE923", wifi-strength-2-lock-open: "\uF6CB", wifi-strength-3: "\uE924", wifi-strength-3-alert: "\uE925", wifi-strength-3-lock: "\uE926", wifi-strength-3-lock-open: "\uF6CC", wifi-strength-4: "\uE927", wifi-strength-4-alert: "\uE928", wifi-strength-4-lock: "\uE929", wifi-strength-4-lock-open: "\uF6CD", wifi-strength-alert-outline: "\uE92A", wifi-strength-lock-open-outline: "\uF6CE", wifi-strength-lock-outline: "\uE92B", wifi-strength-off: "\uE92C", wifi-strength-off-outline: "\uE92D", wifi-strength-outline: "\uE92E", wifi-sync: "\uF6C6", wikipedia: "\uE5AB", wind-power: "\uFA87", wind-power-outline: "\uFA88", wind-turbine: "\uEDA4", wind-turbine-alert: "\uF9AA", wind-turbine-check: "\uF9AB", window-close: "\uE5AC", window-closed: "\uE5AD", window-closed-variant: "\uF1DA", window-maximize: "\uE5AE", window-minimize: "\uE5AF", window-open: "\uE5B0", window-open-variant: "\uF1DB", window-restore: "\uE5B1", window-shutter: "\uF11B", window-shutter-alert: "\uF11C", window-shutter-cog: "\uFA89", window-shutter-open: "\uF11D", window-shutter-settings: "\uFA8A", windsock: "\uF5F9", wiper: "\uEAE8", wiper-wash: "\uEDA5", wiper-wash-alert: "\uF8DE", wizard-hat: "\uF476", wordpress: "\uE5B3", wrap: "\uE5B5", wrap-disabled: "\uEBDE", wrench: "\uE5B6", wrench-clock: "\uF9A2", wrench-outline: "\uEBDF", xamarin: "\uE844", xml: "\uE5BF", xmpp: "\uE7FE", yahoo: "\uEB4E", yeast: "\uE5C0", yin-yang: "\uE67F", yoga: "\uF17B", youtube: "\uE5C2", youtube-gaming: "\uE847", youtube-studio: "\uE846", youtube-subscription: "\uED3F", youtube-tv: "\uE447", yurt: "\uF515", z-wave: "\uEAE9", zend: "\uEAEA", zigbee: "\uED40", zip-box: "\uE5C3", zip-box-outline: "\uEFF9", zip-disk: "\uEA22", zodiac-aquarius: "\uEA7C", zodiac-aries: "\uEA7D", zodiac-cancer: "\uEA7E", zodiac-capricorn: "\uEA7F", zodiac-gemini: "\uEA80", zodiac-leo: "\uEA81", zodiac-libra: "\uEA82", zodiac-pisces: "\uEA83", zodiac-sagittarius: "\uEA84", zodiac-scorpio: "\uEA85", zodiac-taurus: "\uEA86", zodiac-virgo: "\uEA87" } - # yamllint enable rule:line-length rule:braces - - ##### Nextion dict #### - nextion: - color: - blue: [0, 128, 248] - grey_dark: [40, 44, 40] - grey_light: [128, 128, 128] - grey_super_light: [200, 204, 200] - grey_white: [225, 225, 225] - red: [248, 0, 0] - white: [255, 255, 255] - yellow: [248, 248, 0] - #### Colors from HA Style: - green: [76, 175, 80] - orange: [255, 152, 0] - cyan: [0, 188, 212] - deep_orange: [255, 87, 34] - amber: [255, 193, 7] - "on": !input icon_color_fallback_on - "off": !input icon_color_fallback_off - disabled: [189, 189, 189] - unknown: [3, 6, 3] - unavailable: [3, 6, 3] - icon: - domain: - air_quality: "\uED42" # mdi:air-filter - alarm_control_panel: "\uE497" # mdi:shield - alert: "\uE025" # mdi:alert - automation: "\uE6A8" # mdi:robot - binary_sensor: "\uE7C0" # mdi:dip-switch - button: "\uED76" # mdi:gesture-tap-hold - calendar: "\uE0EC" # mdi:calendar - camera: "\uE566" # mdi:video - climate: "\uE392" # mdi:thermostat - configurator: "\uE492" # mdi:cog - conversation: "\uE36B" # mdi:microphone (HA uses mdi:microphone-message, not available for Nextion) - counter: "\uE198" # mdi:counter - cover: "\uE0AB" # mdi:blinds - device_tracker: "\uF2A9" # mdi:lan-check (I couldn't find the default icon in HA) - event: "\uF2A7" # mdi:gesture-tap-button - fan: "\uE20F" # mdi:fan - datetime: "\uE0EF" # mdi:calendar-clock - date: "\uE0EC" # mdi:calendar - demo: "\uE7CF" # mdi:home-assistant - google_assistant: "\uE7CC" # mdi:google-assistant - group: "\uE2B0" # mdi:google-circles-communities (This icon was deprecated by Google) - homeassistant: "\uE7CF" # mdi:home-assistant - homekit: "\uE7D0" # mdi:home-utomation - humidifier: "\uF098" # mdi:air-humidifier - image: "\uE2E8" # mdi:image - image_processing: "\uE2F3" # mdi:image-filter-frames - input_boolean: "\uEA19" # mdi:toggle-switch-outline - input_button: "\uF2A7" # mdi:gesture-tap-button (HA uses mdi:button-pointer, not available for Nextion) - input_datetime: "\uE0EF" # mdi:calendar-clock - input_number: "\uE444" # mdi:ray-vertex - input_select: "\uE278" # mdi:format-list-bulleted - input_text: "\uE60D" # mdi:form-textbox - lawn_mower: "\uF1F6" # mdi:robot-mower - light: "\uE334" # mdi:lightbulb - mailbox: "\uE6ED" # mdi:mailbox - media_player: "\uE117" # mdi:cast - notify: "\uE17C" # mdi:comment-alert - number: "\uE444" # mdi:ray-vertex - persistent_notification: "\uE099" # mdi:bell - person: "\uE003" # mdi:account - plant: "\uE249" # mdi:flower - proximity: "\uE038" # mdi:apple-safari - remote: "\uE453" # mdi:remote - scene: "\uE3D7" # mdi:palette - schedule: "\uE0EF" # mdi:calendar-clock - script: "\uEBC1" # mdi:script-text - select: "\uE278" # mdi:format-list-bulleted - sensor: "\uE207" # mdi:eye, - simple_alarm: "\uE099" # mdi:bell - siren: "\uE0E5" # mdi:bullhorn - stt: "\uE36B" # mdi:microphone (HA uses mdi:microphone-message, not available for Nextion) - sun: '{{ "\uE598" if sun_is_up else "\uE593" }}' # mdi:weather-sunny or mdi:weather-night - switch: "\uE97D" # mdi:light-switch - text: "\uE60D" # mdi:form-textbox - todo: "\uF0D3" # mdi:clipboard-list - time: "\uE953" # mdi:clock - timer: "\uE51A" # mdi:timer-outline - tts: "\uE4C2" # mdi:speaker (HA uses mdi:speaker-message, not available for Nextion) - update: "\uE3D2" # mdi:package - updater: "\uE166" # mdi:cloud-upload - vacuum: "\uE70C" # mdi:robot-vacuum - wake_word: "\uF2D0" # mdi:chat-sleep - weather: "\uEF34" # mdi:weather-partly-snowy-rainy - zone: "\uE351" # mdi:map-marker-radius - unknown: "\uE027" # mdi:alert-circle - weather: - lightning: "\uE592" # mdi:weather-lightning - protect: "\uF05C" # mdi:shield-sun - rain: "\uE595" # mdi:weather-pouring - sun: "\uE5A7" # mdi:white-balance-sunny - wind: "\uE59C" # mdi:weather-windy - gauge: "\uE299" # mdi:gauge - unknown: "\uE027" # mdi:alert-circle - pic: - button: - "off": 35 - "on": 36 - weather: - sunny: '{{ 2 if sun_is_up else 15}}' # some weather providers returns "sunny" for "clear-night" - cloudy: 3 - rainy: 4 - pouring: 5 - snowy: 6 - hail: 7 - snowy_rainy: 7 - snowy-rainy: 7 - fog: 8 - windy: 9 - windy_variant: 9 - windy-variant: 9 - lightning: 10 - partlycloudy: '{{ 11 if sun_is_up else 12}}' - lightning_rainy: '{{ 13 if sun_is_up else 14}}' - lightning-rainy: '{{ 13 if sun_is_up else 14}}' - execptional: '{{ 13 if sun_is_up else 14}}' - clear_night: 15 - clear-night: 15 - unknown: 1 - unavailable: 1 - pages: current: '{{ states(currentpage) }}' home: "home" @@ -3469,2938 +3372,8 @@ variables: confirm: "confirm" utilities: "utilities" - ##### MUI Multilingual User Interface ##### - language_tmp: !input 'language' - language: > - {{ - language_tmp - if language_tmp is string - and language_tmp in ["ar", "bg", "hr", "cs", "da", "nl", "et", "fi", "fr", "de", "el", "he", "hu", "id", "it", "ja", - "ko", "lv", "lt", "nb", "pl", "pt", "ro", "ru", "sk", "sl", "es", "sv", "tr", "uk", "zh-tw"] - else "en" - }} + home_page_background_update: !input home_page_background_update - mui: - ar: # Arabic - weekdays: - mon: الاثنين - tue: الثلاثاء - wed: الأربعاء - thu: الخميس - fri: الجمعة - sat: السبت - sun: الأحد - weekdays_short: - mon: اثن - tue: ثلا - wed: أرب - thu: خمي - fri: جمع - sat: سبت - sun: أحد - months: - jan: يناير - feb: فبراير - mar: مارس - apr: أبريل - may: مايو - jun: يونيو - jul: يوليو - aug: أغسطس - sep: سبتمبر - oct: أكتوبر - nov: نوفمبر - dec: ديسمبر - months_short: - jan: ينا - feb: فبر - mar: مار - apr: أبر - may: ماي - jun: يون - jul: يول - aug: أغس - sep: سبت - oct: أكت - nov: نوف - dec: ديس - relative_day: - today: اليوم - tomorrow: غدًا - in_2_days: بعد يومين - in_3_days: بعد ثلاثة أيام - in_4_days: بعد أربعة أيام - climate: - states: - "on": مشغل - "off": مطفأ - heat: تدفئة - please_confirm: يرجى التأكيد - unavailable: غير متاح - unknown: مجهول - no_name: بدون اسم - alarm: - home: في المنزل - away: بعيد - night: ليل - vacation: إجازة - bypass: تجاوز - disarm: نزع السلاح - settings: - reboot: إعادة تشغيل - sleep: وضع النوم - brightness: سطوع - bright: مشرق - dimming: تعتيم - dim: خافت - meridiem: - am: صباحاً - pm: مساءً - bg: # Bulgarian - weekdays: - mon: Понеделник - tue: Вторник - wed: Сряда - thu: Четвъртък - fri: Петък - sat: Събота - sun: Неделя - weekdays_short: - mon: Пон - tue: Вто - wed: Сря - thu: Чет - fri: Пет - sat: Съб - sun: Нед - months: - jan: Януари - feb: Февруари - mar: Март - apr: Април - may: Май - jun: Юни - jul: Юли - aug: Август - sep: Септември - oct: Октомври - nov: Ноември - dec: Декември - months_short: - jan: Яну - feb: Фев - mar: Мар - apr: Апр - may: Май - jun: Юни - jul: Юли - aug: Авг - sep: Сеп - oct: Окт - nov: Ное - dec: Дек - relative_day: - today: Днес - tomorrow: Утре - in_2_days: След 2 дни - in_3_days: След 3 дни - in_4_days: След 4 дни - climate: - states: - "on": Включен - "off": Изключен - heat: Отопление - please_confirm: Моля, потвърдете - unavailable: Недостъпен - unknown: Неизвестен - no_name: Няма име - alarm: - home: Вкъщи - away: Навън - night: Нощ - vacation: Ваканция - bypass: Заобикаляне - disarm: Разоръжаване - settings: - reboot: Рестартиране - sleep: Сън - brightness: Яркост - bright: Ярък - dimming: Затъмняване - dim: Тъмен - meridiem: - am: AM - pm: PM - cs: # Czech - weekdays: - mon: Pondělí - tue: Úterý - wed: Středa - thu: Čtvrtek - fri: Pátek - sat: Sobota - sun: Neděle - weekdays_short: - mon: Po - tue: Út - wed: St - thu: Čt - fri: Pá - sat: So - sun: Ne - months: - jan: Leden - feb: Únor - mar: Březen - apr: Duben - may: Květen - jun: Červen - jul: Červenec - aug: Srpen - sep: Září - oct: Říjen - nov: Listopad - dec: Prosinec - months_short: - jan: Led - feb: Úno - mar: Bře - apr: Dub - may: Kvě - jun: Čvn - jul: Čvc - aug: Srp - sep: Zář - oct: Říj - nov: Lis - dec: Pro - relative_day: - today: Dnes - tomorrow: Zítra - in_2_days: Za 2 dny - in_3_days: Za 3 dny - in_4_days: Za 4 dny - climate: - states: - "on": Zapnuto - "off": Vypnuto - heat: Topení - please_confirm: Prosím, potvrďte - unavailable: Nedostupné - unknown: Neznámý - no_name: Bez názvu - alarm: - home: Doma - away: Pryč - night: Noc - vacation: Dovolená - bypass: Obcházet - disarm: Odjistit - settings: - reboot: Restart - sleep: Spánek - brightness: Jas - bright: Světlý - dimming: Ztmavení - dim: Tmavý - meridiem: - am: dop. - pm: odp. - da: # Danish - weekdays: - mon: Mandag - tue: Tirsdag - wed: Onsdag - thu: Torsdag - fri: Fredag - sat: Lørdag - sun: Søndag - weekdays_short: - mon: Man - tue: Tir - wed: Ons - thu: Tor - fri: Fre - sat: Lør - sun: Søn - months: - jan: Januar - feb: Februar - mar: Marts - apr: April - may: Maj - jun: Juni - jul: Juli - aug: August - sep: September - oct: Oktober - nov: November - dec: December - months_short: - jan: Jan - feb: Feb - mar: Mar - apr: Apr - may: Maj - jun: Jun - jul: Jul - aug: Aug - sep: Sep - oct: Okt - nov: Nov - dec: Dec - relative_day: - today: I dag - tomorrow: I morgen - in_2_days: Om 2 dage - in_3_days: Om 3 dage - in_4_days: Om 4 dage - climate: - states: - "on": Tændt - "off": Slukket - heat: Varme - please_confirm: Bekræft venligst - unavailable: Utilgængelig - unknown: Ukendt - no_name: Intet navn - alarm: - home: Hjemme - away: Væk - night: Nat - vacation: Ferie - bypass: Omkørsel - disarm: Afvæbne - settings: - reboot: Genstart - sleep: Sove - brightness: Lysstyrke - bright: Lys - dimming: Dæmpning - dim: Dæmpet - meridiem: - am: FM - pm: EM - de: # German - weekdays: - mon: Montag - tue: Dienstag - wed: Mittwoch - thu: Donnerstag - fri: Freitag - sat: Samstag - sun: Sonntag - weekdays_short: - mon: Mo - tue: Di - wed: Mi - thu: Do - fri: Fr - sat: Sa - sun: So - months: - jan: Januar - feb: Februar - mar: März - apr: April - may: Mai - jun: Juni - jul: Juli - aug: August - sep: September - oct: Oktober - nov: November - dec: Dezember - months_short: - jan: Jan - feb: Feb - mar: Mär - apr: Apr - may: Mai - jun: Jun - jul: Jul - aug: Aug - sep: Sep - oct: Okt - nov: Nov - dec: Dez - relative_day: - today: Heute - tomorrow: Morgen - in_2_days: In 2 Tagen - in_3_days: In 3 Tagen - in_4_days: In 4 Tagen - climate: - states: - "on": Ein - "off": Aus - heat: Heizen - please_confirm: Bitte bestätigen - unavailable: Nicht verfügbar - unknown: Unbekannt - no_name: Kein Name - alarm: - home: Zuhause - away: Abwesend - night: Nacht - vacation: Urlaub - bypass: Umgehen - disarm: Entwaffnen - settings: - reboot: Neustart - sleep: Schlafmodus - brightness: Helligkeit - bright: Hell - dimming: Dimmen - dim: Gedimmt - meridiem: - am: vorm. - pm: nachm. - el: # Greek - weekdays: - mon: Δευτέρα - tue: Τρίτη - wed: Τετάρτη - thu: Πέμπτη - fri: Παρασκευή - sat: Σάββατο - sun: Κυριακή - weekdays_short: - mon: Δευ - tue: Τρι - wed: Τετ - thu: Πεμ - fri: Παρ - sat: Σαβ - sun: Κυρ - months: - jan: Ιανουάριος - feb: Φεβρουάριος - mar: Μάρτιος - apr: Απρίλιος - may: Μάιος - jun: Ιούνιος - jul: Ιούλιος - aug: Αύγουστος - sep: Σεπτέμβριος - oct: Οκτώβριος - nov: Νοέμβριος - dec: Δεκέμβριος - months_short: - jan: Ιαν - feb: Φεβ - mar: Μαρ - apr: Απρ - may: Μαι - jun: Ιουν - jul: Ιουλ - aug: Αυγ - sep: Σεπ - oct: Οκτ - nov: Νοε - dec: Δεκ - relative_day: - today: Σήμερα - tomorrow: Αύριο - in_2_days: σε 2 ημέρες - in_3_days: σε 3 ημέρες - in_4_days: σε 4 ημέρες - climate: - states: - "on": Ενεργό - "off": Ανενεργό - heat: Θέρμανση - please_confirm: Παρακαλώ επιβεβαιώστε - unavailable: Μη διαθέσιμο - unknown: Άγνωστο - no_name: Χωρίς όνομα - alarm: - home: Σπίτι - away: Μακριά - night: Νύχτα - vacation: Διακοπές - bypass: Παράκαμψη - disarm: Αφοπλισμός - settings: - reboot: Επανεκκίνηση - sleep: Ύπνος - brightness: Φωτεινότητα - bright: Φωτεινό - dimming: Σκίαση - dim: Σκοτεινό - meridiem: - am: πμ - pm: μμ - en: # English - weekdays: - mon: Monday - tue: Tuesday - wed: Wednesday - thu: Thursday - fri: Friday - sat: Saturday - sun: Sunday - weekdays_short: - mon: Mon - tue: Tue - wed: Wed - thu: Thu - fri: Fri - sat: Sat - sun: Sun - months: - jan: January - feb: February - mar: March - apr: April - may: May - jun: June - jul: July - aug: August - sep: September - oct: October - nov: November - dec: December - months_short: - jan: Jan - feb: Feb - mar: Mar - apr: Apr - may: May - jun: Jun - jul: Jul - aug: Aug - sep: Sep - oct: Oct - nov: Nov - dec: Dec - relative_day: - today: Today - tomorrow: Tomorrow - in_2_days: In 2 days - in_3_days: In 3 days - in_4_days: In 4 days - climate: - states: - "on": "on" - "off": "off" - heat: heat - please_confirm: Please confirm - unavailable: Unavailable - unknown: Unknown - no_name: No name - alarm: - home: Home - away: Away - night: Night - vacation: Holiday - bypass: Custom bypass - disarm: Disarm - settings: - reboot: Reboot - sleep: Sleep mode - brightness: Brightness - bright: Bright - dimming: Dimming - dim: Dim - meridiem: - am: AM - pm: PM - es: # Spanish - weekdays: - mon: Lunes - tue: Martes - wed: Miércoles - thu: Jueves - fri: Viernes - sat: Sábado - sun: Domingo - weekdays_short: - mon: Lun - tue: Mar - wed: Mié - thu: Jue - fri: Vie - sat: Sáb - sun: Dom - months: - jan: Enero - feb: Febrero - mar: Marzo - apr: Abril - may: Mayo - jun: Junio - jul: Julio - aug: Agosto - sep: Septiembre - oct: Octubre - nov: Noviembre - dec: Diciembre - months_short: - jan: Ene - feb: Feb - mar: Mar - apr: Abr - may: May - jun: Jun - jul: Jul - aug: Ago - sep: Sep - oct: Oct - nov: Nov - dec: Dic - relative_day: - today: Hoy - tomorrow: Mañana - in_2_days: En 2 días - in_3_days: En 3 días - in_4_days: En 4 días - climate: - states: - "on": Encendido - "off": Apagado - heat: Calentar - please_confirm: Por favor, confirme - unavailable: No disponible - unknown: Desconocido - no_name: Sin nombre - alarm: - home: Casa - away: Fuera - night: Noche - vacation: Vacaciones - bypass: Bypass - disarm: Desarmar - settings: - reboot: Reiniciar - sleep: Dormir - brightness: Brillo - bright: Brillante - dimming: Atenuación - dim: Oscuro - meridiem: - am: a.m. - pm: p.m. - et: # Estonian - weekdays: - mon: Esmaspäev - tue: Teisipäev - wed: Kolmapäev - thu: Neljapäev - fri: Reede - sat: Laupäev - sun: Pühapäev - weekdays_short: - mon: E - tue: T - wed: K - thu: N - fri: R - sat: L - sun: P - months: - jan: Jaanuar - feb: Veebruar - mar: Märts - apr: Aprill - may: Mai - jun: Juuni - jul: Juuli - aug: August - sep: September - oct: Oktoober - nov: November - dec: Detsember - months_short: - jan: Jan - feb: Veb - mar: Mär - apr: Apr - may: Mai - jun: Jun - jul: Jul - aug: Aug - sep: Sep - oct: Okt - nov: Nov - dec: Dets - relative_day: - today: Täna - tomorrow: Homme - in_2_days: 2 päeva pärast - in_3_days: 3 päeva pärast - in_4_days: 4 päeva pärast - climate: - states: - "on": sees - "off": väljas - heat: kütte - please_confirm: Palun kinnitage - unavailable: Pole saadaval - unknown: Tundmatu - no_name: Nime pole - alarm: - home: Kodus - away: Ära - night: Öö - vacation: Puhkus - bypass: Möödaviik - disarm: Desarmeerima - settings: - reboot: Taaskäivita - sleep: Uni - brightness: Heledus - bright: Ere - dimming: Hämardamine - dim: Hämar - meridiem: - am: e.l. - pm: p.l. - fi: # Finnish - weekdays: - mon: maanantai - tue: tiistai - wed: keskiviikko - thu: torstai - fri: perjantai - sat: lauantai - sun: sunnuntai - weekdays_short: - mon: ma - tue: ti - wed: ke - thu: to - fri: pe - sat: la - sun: su - months: - jan: tammikuu - feb: helmikuu - mar: maaliskuu - apr: huhtikuu - may: toukokuu - jun: kesäkuu - jul: heinäkuu - aug: elokuu - sep: syyskuu - oct: lokakuu - nov: marraskuu - dec: joulukuu - months_short: - jan: tammi - feb: helmi - mar: maalis - apr: huhti - may: touko - jun: kesä - jul: heinä - aug: elo - sep: syys - oct: loka - nov: marras - dec: joulu - relative_day: - today: Tänään - tomorrow: Huomenna - in_2_days: 2 päivän päästä - in_3_days: 3 päivän päästä - in_4_days: 4 päivän päästä - climate: - states: - "on": päällä - "off": pois päältä - heat: lämpö - please_confirm: Vahvista - unavailable: Ei saatavilla - unknown: Tuntematon - no_name: Nimeämätön - alarm: - home: Kotona - away: Poissa - night: Yö - vacation: Loma - bypass: Ohitus - disarm: Pois päältä - settings: - reboot: Käynnistä uudelleen - sleep: Lepotila - brightness: Kirkkaus - bright: Kirkas - dimming: Himmennys - dim: Himmeä - meridiem: - am: aamupäivä - pm: iltapäivä - fr: # French - weekdays: - mon: Lundi - tue: Mardi - wed: Mercredi - thu: Jeudi - fri: Vendredi - sat: Samedi - sun: Dimanche - weekdays_short: - mon: Lun - tue: Mar - wed: Mer - thu: Jeu - fri: Ven - sat: Sam - sun: Dim - months: - jan: Janvier - feb: Février - mar: Mars - apr: Avril - may: Mai - jun: Juin - jul: Juillet - aug: Août - sep: Septembre - oct: Octobre - nov: Novembre - dec: Décembre - months_short: - jan: Jan - feb: Fév - mar: Mar - apr: Avr - may: Mai - jun: Jun - jul: Jul - aug: Aoû - sep: Sep - oct: Oct - nov: Nov - dec: Déc - relative_day: - today: Aujourd'hui - tomorrow: Demain - in_2_days: Dans 2 jours - in_3_days: Dans 3 jours - in_4_days: Dans 4 jours - climate: - states: - "on": Activé - "off": Désactivé - heat: Chauffage - please_confirm: Veuillez confirmer - unavailable: Indisponible - unknown: Inconnu - no_name: Sans nom - alarm: - home: À la maison - away: Absent - night: Nuit - vacation: Vacances - bypass: Contournement - disarm: Désarmer - settings: - reboot: Redémarrer - sleep: Veille - brightness: Luminosité - bright: Lumineux - dimming: Atténuation - dim: Sombre - meridiem: - am: AM - pm: PM - he: # Hebrew - weekdays: - mon: יום שני - tue: יום שלישי - wed: יום רביעי - thu: יום חמישי - fri: יום שישי - sat: יום שבת - sun: יום ראשון - weekdays_short: - mon: ב' - tue: ג' - wed: ד' - thu: ה' - fri: ו' - sat: ש' - sun: א' - months: - jan: ינואר - feb: פברואר - mar: מרץ - apr: אפריל - may: מאי - jun: יוני - jul: יולי - aug: אוגוסט - sep: ספטמבר - oct: אוקטובר - nov: נובמבר - dec: דצמבר - months_short: - jan: ינו' - feb: פבר' - mar: מרץ - apr: אפר' - may: מאי - jun: יונ' - jul: יול' - aug: אוג' - sep: ספט' - oct: אוק' - nov: נוב' - dec: דצמ' - relative_day: - today: היום - tomorrow: מחר - in_2_days: בעוד יומיים - in_3_days: בעוד שלושה ימים - in_4_days: בעוד ארבעה ימים - climate: - states: - "on": פעיל - "off": כבוי - heat: חימום - please_confirm: אנא אשר - unavailable: לא זמין - unknown: לא ידוע - no_name: ללא שם - alarm: - home: בבית - away: החוצה - night: לילה - vacation: חופשה - bypass: עקיפה - disarm: נטרול - settings: - reboot: הפעלה מחדש - sleep: שינה - brightness: בהירות - bright: בהיר - dimming: החשכה - dim: כהה - meridiem: - am: לפנה"צ - pm: אחה"צ - hr: # Croatian - weekdays: - mon: Ponedjeljak - tue: Utorak - wed: Srijeda - thu: Četvrtak - fri: Petak - sat: Subota - sun: Nedjelja - weekdays_short: - mon: Pon - tue: Uto - wed: Sri - thu: Čet - fri: Pet - sat: Sub - sun: Ned - months: - jan: Siječanj - feb: Veljača - mar: Ožujak - apr: Travanj - may: Svibanj - jun: Lipanj - jul: Srpanj - aug: Kolovoz - sep: Rujan - oct: Listopad - nov: Studeni - dec: Prosinac - months_short: - jan: Sij - feb: Velj - mar: Ožu - apr: Tra - may: Svi - jun: Lip - jul: Srp - aug: Kol - sep: Ruj - oct: Lis - nov: Stu - dec: Pro - relative_day: - today: Danas - tomorrow: Sutra - in_2_days: Za 2 dana - in_3_days: Za 3 dana - in_4_days: Za 4 dana - climate: - states: - "on": Uključeno - "off": Isključeno - heat: Grijanje - please_confirm: Molimo potvrdite - unavailable: Nedostupno - unknown: Nepoznato - no_name: Bez imena - alarm: - home: Kod kuće - away: Odsutan - night: Noć - vacation: Odmor - bypass: Zaobići - disarm: Razoružati - settings: - reboot: Ponovno pokretanje - sleep: Spavanje - brightness: Svjetlina - bright: Svijetlo - dimming: Zatamnjenje - dim: Tamno - meridiem: - am: AM - pm: PM - hu: # Hungarian - weekdays: - mon: Hétfő - tue: Kedd - wed: Szerda - thu: Csütörtök - fri: Péntek - sat: Szombat - sun: Vasárnap - weekdays_short: - mon: H - tue: K - wed: Sze - thu: Cs - fri: P - sat: Szo - sun: V - months: - jan: Január - feb: Február - mar: Március - apr: Április - may: Május - jun: Június - jul: Július - aug: Augusztus - sep: Szeptember - oct: Október - nov: November - dec: December - months_short: - jan: Jan - feb: Feb - mar: Márc - apr: Ápr - may: Máj - jun: Jún - jul: Júl - aug: Aug - sep: Szep - oct: Okt - nov: Nov - dec: Dec - relative_day: - today: Ma - tomorrow: Holnap - in_2_days: 2 nap múlva - in_3_days: 3 nap múlva - in_4_days: 4 nap múlva - climate: - states: - "on": Bekapcsolva - "off": Kikapcsolva - heat: Fűtés - please_confirm: Kérjük, erősítse meg - unavailable: Nem elérhető - unknown: Ismeretlen - no_name: Névtelen - alarm: - home: Otthon - away: Távol - night: Éjszaka - vacation: Szabadság - bypass: Kerülő - disarm: Hatástalanítás - settings: - reboot: Újraindítás - sleep: Alvás - brightness: Fényerő - bright: Világos - dimming: Sötétítés - dim: Sötét - meridiem: - am: DE - pm: DU - id: # Indonesian - weekdays: - mon: Senin - tue: Selasa - wed: Rabu - thu: Kamis - fri: Jumat - sat: Sabtu - sun: Minggu - weekdays_short: - mon: Sen - tue: Sel - wed: Rab - thu: Kam - fri: Jum - sat: Sab - sun: Min - months: - jan: Januari - feb: Februari - mar: Maret - apr: April - may: Mei - jun: Juni - jul: Juli - aug: Agustus - sep: September - oct: Oktober - nov: November - dec: Desember - months_short: - jan: Jan - feb: Feb - mar: Mar - apr: Apr - may: Mei - jun: Jun - jul: Jul - aug: Agu - sep: Sep - oct: Okt - nov: Nov - dec: Des - relative_day: - today: Hari ini - tomorrow: Besok - in_2_days: Dalam 2 hari - in_3_days: Dalam 3 hari - in_4_days: Dalam 4 hari - climate: - states: - "on": Menyala - "off": Mati - heat: Pemanas - please_confirm: Mohon konfirmasi - unavailable: Tidak tersedia - unknown: Tidak diketahui - no_name: Tanpa nama - alarm: - home: Di rumah - away: Jauh - night: Malam - vacation: Liburan - bypass: Bypass - disarm: Menonaktifkan - settings: - reboot: Mulai ulang - sleep: Tidur - brightness: Kecerahan - bright: Terang - dimming: Redup - dim: Redup - meridiem: - am: AM - pm: PM - it: # Italian - weekdays: - mon: Lunedì - tue: Martedì - wed: Mercoledì - thu: Giovedì - fri: Venerdì - sat: Sabato - sun: Domenica - weekdays_short: - mon: Lun - tue: Mar - wed: Mer - thu: Gio - fri: Ven - sat: Sab - sun: Dom - months: - jan: Gennaio - feb: Febbraio - mar: Marzo - apr: Aprile - may: Maggio - jun: Giugno - jul: Luglio - aug: Agosto - sep: Settembre - oct: Ottobre - nov: Novembre - dec: Dicembre - months_short: - jan: Gen - feb: Feb - mar: Mar - apr: Apr - may: Mag - jun: Giu - jul: Lug - aug: Ago - sep: Set - oct: Ott - nov: Nov - dec: Dic - relative_day: - today: Oggi - tomorrow: Domani - in_2_days: Dopodomani - in_3_days: In 3 giorni - in_4_days: In 4 giorni - climate: - states: - "on": Acceso - "off": Spento - heat: Riscaldamento - please_confirm: Confermare - unavailable: Non disponibile - unknown: Sconosciuto - no_name: Senza nome - alarm: - home: Casa - away: Fuori casa - night: Notte - vacation: Vacanza - bypass: Bypass - disarm: Disarmato - settings: - reboot: Riavvio - sleep: Modalità ECO - brightness: Luminosità - bright: Luminoso - dimming: Diminuzione - dim: Diminuito - meridiem: - am: AM - pm: PM - ja: # Japanese - weekdays: - mon: 月曜日 - tue: 火曜日 - wed: 水曜日 - thu: 木曜日 - fri: 金曜日 - sat: 土曜日 - sun: 日曜日 - weekdays_short: - mon: 月 - tue: 火 - wed: 水 - thu: 木 - fri: 金 - sat: 土 - sun: 日 - months: - jan: 1月 - feb: 2月 - mar: 3月 - apr: 4月 - may: 5月 - jun: 6月 - jul: 7月 - aug: 8月 - sep: 9月 - oct: 10月 - nov: 11月 - dec: 12月 - months_short: - jan: 1月 - feb: 2月 - mar: 3月 - apr: 4月 - may: 5月 - jun: 6月 - jul: 7月 - aug: 8月 - sep: 9月 - oct: 10月 - nov: 11月 - dec: 12月 - relative_day: - today: 今日 - tomorrow: 明日 - in_2_days: 明後日 - in_3_days: 3日後 - in_4_days: 4日後 - climate: - states: - "on": オン - "off": オフ - heat: 暖房 - please_confirm: 確認してください - unavailable: 利用不可 - unknown: 不明 - no_name: 名前なし - alarm: - home: 自宅 - away: 外出 - night: 夜間 - vacation: 休暇 - bypass: バイパス - disarm: 解除 - settings: - reboot: 再起動 - sleep: スリープモード - brightness: 明るさ - bright: 明るい - dimming: 調光 - dim: 低輝度 - meridiem: - am: 午前 - pm: 午後 - ko: # Korean - weekdays: - mon: 월요일 - tue: 화요일 - wed: 수요일 - thu: 목요일 - fri: 금요일 - sat: 토요일 - sun: 일요일 - weekdays_short: - mon: 월 - tue: 화 - wed: 수 - thu: 목 - fri: 금 - sat: 토 - sun: 일 - months: - jan: 1월 - feb: 2월 - mar: 3월 - apr: 4월 - may: 5월 - jun: 6월 - jul: 7월 - aug: 8월 - sep: 9월 - oct: 10월 - nov: 11월 - dec: 12월 - months_short: - jan: 1월 - feb: 2월 - mar: 3월 - apr: 4월 - may: 5월 - jun: 6월 - jul: 7월 - aug: 8월 - sep: 9월 - oct: 10월 - nov: 11월 - dec: 12월 - relative_day: - today: 오늘 - tomorrow: 내일 - in_2_days: 이틀 후 - in_3_days: 사흘 후 - in_4_days: 나흘 후 - climate: - states: - "on": 켜짐 - "off": 꺼짐 - heat: 난방 - please_confirm: 확인해 주세요 - unavailable: 사용 불가 - unknown: 알 수 없음 - no_name: 이름 없음 - alarm: - home: 집 - away: 외출 - night: 밤 - vacation: 휴가 - bypass: 우회 - disarm: 해제 - settings: - reboot: 재부팅 - sleep: 슬립 모드 - brightness: 밝기 - bright: 밝은 - dimming: 조광 - dim: 어두운 - meridiem: - am: 오전 - pm: 오후 - lt: # Lithuanian - weekdays: - mon: Pirmadienis - tue: Antradienis - wed: Trečiadienis - thu: Ketvirtadienis - fri: Penktadienis - sat: Šeštadienis - sun: Sekmadienis - weekdays_short: - mon: Pir - tue: Ant - wed: Tre - thu: Ket - fri: Pen - sat: Šeš - sun: Sek - months: - jan: Sausis - feb: Vasaris - mar: Kovas - apr: Balandis - may: Gegužė - jun: Birželis - jul: Liepa - aug: Rugpjūtis - sep: Rugsėjis - oct: Spalis - nov: Lapkritis - dec: Gruodis - months_short: - jan: Sau - feb: Vas - mar: Kov - apr: Bal - may: Geg - jun: Bir - jul: Lie - aug: Rgp - sep: Rgs - oct: Spa - nov: Lap - dec: Gru - relative_day: - today: Šiandien - tomorrow: Rytoj - in_2_days: Po 2 dienų - in_3_days: Po 3 dienų - in_4_days: Po 4 dienų - climate: - states: - "on": Įjungta - "off": Išjungta - heat: Šildymas - please_confirm: Prašome patvirtinti - unavailable: Nepasiekiamas - unknown: Nežinomas - no_name: Be pavadinimo - alarm: - home: Namuose - away: Išvykęs - night: Naktis - vacation: Atostogos - bypass: Apeiti - disarm: Išjungti - settings: - reboot: Perkrauti - sleep: Miego režimas - brightness: Ryškumas - bright: Ryškus - dimming: Tamsinimas - dim: Tamsus - meridiem: - am: AM - pm: PM - lv: # Latvian - weekdays: - mon: Pirmdiena - tue: Otrdiena - wed: Trešdiena - thu: Ceturtdiena - fri: Piektdiena - sat: Sestdiena - sun: Svētdiena - weekdays_short: - mon: Pir - tue: Otr - wed: Tre - thu: Cet - fri: Pie - sat: Ses - sun: Sve - months: - jan: Janvāris - feb: Februāris - mar: Marts - apr: Aprīlis - may: Maijs - jun: Jūnijs - jul: Jūlijs - aug: Augusts - sep: Septembris - oct: Oktobris - nov: Novembris - dec: Decembris - months_short: - jan: Jan - feb: Feb - mar: Mar - apr: Apr - may: Mai - jun: Jūn - jul: Jūl - aug: Aug - sep: Sep - oct: Okt - nov: Nov - dec: Dec - relative_day: - today: Šodien - tomorrow: Rīt - in_2_days: Pēc 2 dienām - in_3_days: Pēc 3 dienām - in_4_days: Pēc 4 dienām - climate: - states: - "on": Ieslēgts - "off": Izslēgts - heat: Apkure - please_confirm: Lūdzu, apstipriniet - unavailable: Nav pieejams - unknown: Nezināms - no_name: Bez nosaukuma - alarm: - home: Mājās - away: Projām - night: Nakts - vacation: Atvaļinājums - bypass: Aplūkošana - disarm: Atbruņošana - settings: - reboot: Restartēt - sleep: Miega režīms - brightness: Spilgtums - bright: Spilgts - dimming: Tumšošana - dim: Tumšs - meridiem: - am: AM - pm: PM - nb: # Norwegian Bokmål - weekdays: - mon: Mandag - tue: Tirsdag - wed: Onsdag - thu: Torsdag - fri: Fredag - sat: Lørdag - sun: Søndag - weekdays_short: - mon: Man - tue: Tir - wed: Ons - thu: Tor - fri: Fre - sat: Lør - sun: Søn - months: - jan: Januar - feb: Februar - mar: Mars - apr: April - may: Mai - jun: Juni - jul: Juli - aug: August - sep: September - oct: Oktober - nov: November - dec: Desember - months_short: - jan: Jan - feb: Feb - mar: Mar - apr: Apr - may: Mai - jun: Jun - jul: Jul - aug: Aug - sep: Sep - oct: Okt - nov: Nov - dec: Des - relative_day: - today: I dag - tomorrow: I morgen - in_2_days: Om 2 dager - in_3_days: Om 3 dager - in_4_days: Om 4 dager - climate: - states: - "on": På - "off": Av - heat: Varme - please_confirm: Vennligst bekreft - unavailable: Utilgjengelig - unknown: Ukjent - no_name: Ingen navn - alarm: - home: Hjemme - away: Borte - night: Natt - vacation: Ferie - bypass: Omkjøring - disarm: Avvæpne - settings: - reboot: Start på nytt - sleep: Søvnmodus - brightness: Lysstyrke - bright: Lys - dimming: Demping - dim: Dimmet - meridiem: - am: AM - pm: PM - nl: # Dutch - weekdays: - mon: Maandag - tue: Dinsdag - wed: Woensdag - thu: Donderdag - fri: Vrijdag - sat: Zaterdag - sun: Zondag - weekdays_short: - mon: Ma - tue: Di - wed: Wo - thu: Do - fri: Vr - sat: Za - sun: Zo - months: - jan: Januari - feb: Februari - mar: Maart - apr: April - may: Mei - jun: Juni - jul: Juli - aug: Augustus - sep: September - oct: Oktober - nov: November - dec: December - months_short: - jan: Jan - feb: Feb - mar: Mrt - apr: Apr - may: Mei - jun: Jun - jul: Jul - aug: Aug - sep: Sep - oct: Okt - nov: Nov - dec: Dec - relative_day: - today: Vandaag - tomorrow: Morgen - in_2_days: Overmorgen - in_3_days: Over 3 dagen - in_4_days: Over 4 dagen - climate: - states: - "on": Aan - "off": Uit - heat: Verwarming - please_confirm: Bevestig alstublieft - unavailable: Niet beschikbaar - unknown: Onbekend - no_name: Geen naam - alarm: - home: Thuis - away: Weg - night: Nacht - vacation: Vakantie - bypass: Omzeilen - disarm: Ontwapenen - settings: - reboot: Herstarten - sleep: Slaapstand - brightness: Helderheid - bright: Helder - dimming: Dimmen - dim: Gedimd - meridiem: - am: AM - pm: PM - pl: # Polish - weekdays: - mon: Poniedziałek - tue: Wtorek - wed: Środa - thu: Czwartek - fri: Piątek - sat: Sobota - sun: Niedziela - weekdays_short: - mon: Pon - tue: Wt - wed: Śr - thu: Czw - fri: Pt - sat: Sob - sun: Ndz - months: - jan: Styczeń - feb: Luty - mar: Marzec - apr: Kwiecień - may: Maj - jun: Czerwiec - jul: Lipiec - aug: Sierpień - sep: Wrzesień - oct: Październik - nov: Listopad - dec: Grudzień - months_short: - jan: Sty - feb: Lut - mar: Mar - apr: Kwi - may: Maj - jun: Cze - jul: Lip - aug: Sie - sep: Wrz - oct: Paź - nov: Lis - dec: Gru - relative_day: - today: Dzisiaj - tomorrow: Jutro - in_2_days: Za 2 dni - in_3_days: Za 3 dni - in_4_days: Za 4 dni - climate: - states: - "on": Włączony - "off": Wyłączony - heat: Ogrzewanie - please_confirm: Proszę potwierdzić - unavailable: Niedostępny - unknown: Nieznany - no_name: Bez nazwy - alarm: - home: W domu - away: Poza domem - night: Noc - vacation: Wakacje - bypass: Obejście - disarm: Rozbroić - settings: - reboot: Restart - sleep: Tryb uśpienia - brightness: Jasność - bright: Jasny - dimming: Ściemnianie - dim: Ciemny - meridiem: - am: AM - pm: PM - pt: # Portuguese - weekdays: - mon: Segunda-feira - tue: Terça-feira - wed: Quarta-feira - thu: Quinta-feira - fri: Sexta-feira - sat: Sábado - sun: Domingo - weekdays_short: - mon: Seg - tue: Ter - wed: Qua - thu: Qui - fri: Sex - sat: Sáb - sun: Dom - months: - jan: Janeiro - feb: Fevereiro - mar: Março - apr: Abril - may: Maio - jun: Junho - jul: Julho - aug: Agosto - sep: Setembro - oct: Outubro - nov: Novembro - dec: Dezembro - months_short: - jan: Jan - feb: Fev - mar: Mar - apr: Abr - may: Mai - jun: Jun - jul: Jul - aug: Ago - sep: Set - oct: Out - nov: Nov - dec: Dez - relative_day: - today: Hoje - tomorrow: Amanhã - in_2_days: Em 2 dias - in_3_days: Em 3 dias - in_4_days: Em 4 dias - climate: - states: - "on": Ligado - "off": Desligado - heat: Aquecimento - please_confirm: Por favor, confirme - unavailable: Indisponível - unknown: Desconhecido - no_name: Sem nome - alarm: - home: Em casa - away: Ausente - night: Noturno - vacation: Férias - bypass: Desvio - disarm: Desarmar - settings: - reboot: Reiniciar - sleep: Dormir - brightness: Brilho - bright: Claro - dimming: Escurecimento - dim: Escuro - meridiem: - am: AM - pm: PM - ro: # Romanian - weekdays: - mon: Luni - tue: Marți - wed: Miercuri - thu: Joi - fri: Vineri - sat: Sâmbătă - sun: Duminică - weekdays_short: - mon: Lun - tue: Mar - wed: Mie - thu: Joi - fri: Vin - sat: Sâm - sun: Dum - months: - jan: Ianuarie - feb: Februarie - mar: Martie - apr: Aprilie - may: Mai - jun: Iunie - jul: Iulie - aug: August - sep: Septembrie - oct: Octombrie - nov: Noiembrie - dec: Decembrie - months_short: - jan: Ian - feb: Feb - mar: Mar - apr: Apr - may: Mai - jun: Iun - jul: Iul - aug: Aug - sep: Sep - oct: Oct - nov: Nov - dec: Dec - relative_day: - today: Astăzi - tomorrow: Mâine - in_2_days: În 2 zile - in_3_days: În 3 zile - in_4_days: În 4 zile - climate: - states: - "on": Pornit - "off": Oprit - heat: Încălzire - please_confirm: Vă rugăm să confirmați - unavailable: Indisponibil - unknown: Necunoscut - no_name: Fără nume - alarm: - home: Acasă - away: Plecat - night: Noapte - vacation: Vacanță - bypass: Ocolire - disarm: Dezarmare - settings: - reboot: Repornire - sleep: Somn - brightness: Luminozitate - bright: Luminos - dimming: Diminuare - dim: Întunecat - meridiem: - am: AM - pm: PM - ru: # Russian - weekdays: - mon: Понедельник - tue: Вторник - wed: Среда - thu: Четверг - fri: Пятница - sat: Суббота - sun: Воскресенье - weekdays_short: - mon: Пн - tue: Вт - wed: Ср - thu: Чт - fri: Пт - sat: Сб - sun: Вс - months: - jan: Январь - feb: Февраль - mar: Март - apr: Апрель - may: Май - jun: Июнь - jul: Июль - aug: Август - sep: Сентябрь - oct: Октябрь - nov: Ноябрь - dec: Декабрь - months_short: - jan: Янв - feb: Фев - mar: Мар - apr: Апр - may: Май - jun: Июн - jul: Июл - aug: Авг - sep: Сен - oct: Окт - nov: Ноя - dec: Дек - relative_day: - today: Сегодня - tomorrow: Завтра - in_2_days: Через 2 дня - in_3_days: Через 3 дня - in_4_days: Через 4 дня - climate: - states: - "on": Включено - "off": Выключено - heat: Отопление - please_confirm: Пожалуйста, подтвердите - unavailable: Недоступно - unknown: Неизвестно - no_name: Без названия - alarm: - home: Дома - away: Вне дома - night: Ночь - vacation: Отпуск - bypass: Обход - disarm: Разоружение - settings: - reboot: Перезагрузка - sleep: Сон - brightness: Яркость - bright: Яркий - dimming: Затемнение - dim: Тусклый - meridiem: - am: ДП - pm: ПП - sk: # Slovak - weekdays: - mon: Pondelok - tue: Utorok - wed: Streda - thu: Štvrtok - fri: Piatok - sat: Sobota - sun: Nedeľa - weekdays_short: - mon: Po - tue: Ut - wed: St - thu: Št - fri: Pi - sat: So - sun: Ne - months: - jan: Január - feb: Február - mar: Marec - apr: Apríl - may: Máj - jun: Jún - jul: Júl - aug: August - sep: September - oct: Október - nov: November - dec: December - months_short: - jan: Jan - feb: Feb - mar: Mar - apr: Apr - may: Máj - jun: Jún - jul: Júl - aug: Aug - sep: Sep - oct: Okt - nov: Nov - dec: Dec - relative_day: - today: Dnes - tomorrow: Zajtra - in_2_days: O 2 dni - in_3_days: O 3 dni - in_4_days: O 4 dni - climate: - states: - "on": Zapnuté - "off": Vypnuté - heat: Kúrenie - please_confirm: Potvrďte, prosím - unavailable: Nedostupné - unknown: Neznámy - no_name: Bez mena - alarm: - home: Doma - away: Preč - night: Noc - vacation: Dovolenka - bypass: Obísť - disarm: Zneškodniť - settings: - reboot: Reštartovať - sleep: Spánok - brightness: Jas - bright: Svetlý - dimming: Stmavovanie - dim: Tmavý - meridiem: - am: AM - pm: PM - sl: # Slovenian - weekdays: - mon: Ponedeljek - tue: Torek - wed: Sreda - thu: Četrtek - fri: Petek - sat: Sobota - sun: Nedelja - weekdays_short: - mon: Pon - tue: Tor - wed: Sre - thu: Čet - fri: Pet - sat: Sob - sun: Ned - months: - jan: Januar - feb: Februar - mar: Marec - apr: April - may: Maj - jun: Junij - jul: Julij - aug: Avgust - sep: September - oct: Oktober - nov: November - dec: December - months_short: - jan: Jan - feb: Feb - mar: Mar - apr: Apr - may: Maj - jun: Jun - jul: Jul - aug: Avg - sep: Sep - oct: Okt - nov: Nov - dec: Dec - relative_day: - today: Danes - tomorrow: Jutri - in_2_days: Čez 2 dni - in_3_days: Čez 3 dni - in_4_days: Čez 4 dni - climate: - states: - "on": Vklopljeno - "off": Izklopljeno - heat: Ogrevanje - please_confirm: Prosimo, potrdite - unavailable: Nedosegljivo - unknown: Neznano - no_name: Brez imena - alarm: - home: Doma - away: Odsoten - night: Noč - vacation: Dopust - bypass: Obvoz - disarm: Razorožitev - settings: - reboot: Ponovni zagon - sleep: Spanje - brightness: Svetlost - bright: Svetlo - dimming: Zatemnitev - dim: Temno - meridiem: - am: dop. - pm: pop. - sv: # Swedish - weekdays: - mon: Måndag - tue: Tisdag - wed: Onsdag - thu: Torsdag - fri: Fredag - sat: Lördag - sun: Söndag - weekdays_short: - mon: Mån - tue: Tis - wed: Ons - thu: Tors - fri: Fre - sat: Lör - sun: Sön - months: - jan: Januari - feb: Februari - mar: Mars - apr: April - may: Maj - jun: Juni - jul: Juli - aug: Augusti - sep: September - oct: Oktober - nov: November - dec: December - months_short: - jan: Jan - feb: Feb - mar: Mar - apr: Apr - may: Maj - jun: Jun - jul: Jul - aug: Aug - sep: Sep - oct: Okt - nov: Nov - dec: Dec - relative_day: - today: Idag - tomorrow: Imorgon - in_2_days: Om 2 dagar - in_3_days: Om 3 dagar - in_4_days: Om 4 dagar - climate: - states: - "on": På - "off": Av - heat: Värme - please_confirm: Vänligen bekräfta - unavailable: Otillgänglig - unknown: Okänd - no_name: Inget namn - alarm: - home: Hemma - away: Borta - night: Natt - vacation: Semester - bypass: Förbigå - disarm: Avaktivera - settings: - reboot: Starta om - sleep: Vila - brightness: Ljusstyrka - bright: Ljust - dimming: Dimmning - dim: Dimma - meridiem: - am: FM - pm: EM - tr: # Turkish - weekdays: - mon: Pazartesi - tue: Salı - wed: Çarşamba - thu: Perşembe - fri: Cuma - sat: Cumartesi - sun: Pazar - weekdays_short: - mon: Pzt - tue: Sal - wed: Çar - thu: Per - fri: Cum - sat: Cmt - sun: Paz - months: - jan: Ocak - feb: Şubat - mar: Mart - apr: Nisan - may: Mayıs - jun: Haziran - jul: Temmuz - aug: Ağustos - sep: Eylül - oct: Ekim - nov: Kasım - dec: Aralık - months_short: - jan: Oca - feb: Şub - mar: Mar - apr: Nis - may: May - jun: Haz - jul: Tem - aug: Ağu - sep: Eyl - oct: Eki - nov: Kas - dec: Ara - relative_day: - today: Bugün - tomorrow: Yarın - in_2_days: 2 gün içinde - in_3_days: 3 gün içinde - in_4_days: 4 gün içinde - climate: - states: - "on": Açık - "off": Kapalı - heat: Isıtma - please_confirm: Lütfen onaylayın - unavailable: Kullanılamaz - unknown: Bilinmeyen - no_name: İsimsiz - alarm: - home: Evde - away: Dışarıda - night: Gece - vacation: Tatil - bypass: Bypass - disarm: Devre dışı bırak - settings: - reboot: Yeniden başlat - sleep: Uyku modu - brightness: Parlaklık - bright: Parlak - dimming: Karartma - dim: Karanlık - meridiem: - am: ÖÖ - pm: ÖS - uk: # Ukrainian - weekdays: - mon: Понеділок - tue: Вівторок - wed: Середа - thu: Четвер - fri: П'ятниця - sat: Субота - sun: Неділя - weekdays_short: - mon: Пн - tue: Вт - wed: Ср - thu: Чт - fri: Пт - sat: Сб - sun: Нд - months: - jan: Січень - feb: Лютий - mar: Березень - apr: Квітень - may: Травень - jun: Червень - jul: Липень - aug: Серпень - sep: Вересень - oct: Жовтень - nov: Листопад - dec: Грудень - months_short: - jan: Січ - feb: Лют - mar: Бер - apr: Кві - may: Тра - jun: Чер - jul: Лип - aug: Сер - sep: Вер - oct: Жов - nov: Лис - dec: Гру - relative_day: - today: Сьогодні - tomorrow: Завтра - in_2_days: Через 2 дні - in_3_days: Через 3 дні - in_4_days: Через 4 дні - climate: - states: - "on": Увімкнено - "off": Вимкнено - heat: Опалення - please_confirm: Будь ласка, підтвердіть - unavailable: Недоступно - unknown: Невідомо - no_name: Без імені - alarm: - home: Вдома - away: Відсутній - night: Ніч - vacation: Відпустка - bypass: Обхід - disarm: Роззброєння - settings: - reboot: Перезавантаження - sleep: Сон - brightness: Яскравість - bright: Яскравий - dimming: Затемнення - dim: Темний - meridiem: - am: ДП - pm: ПП - zh-tw: # Traditional Chinese - weekdays: - mon: 星期一 - tue: 星期二 - wed: 星期三 - thu: 星期四 - fri: 星期五 - sat: 星期六 - sun: 星期日 - weekdays_short: - mon: 一 - tue: 二 - wed: 三 - thu: 四 - fri: 五 - sat: 六 - sun: 日 - months: - jan: 1月 - feb: 2月 - mar: 3月 - apr: 4月 - may: 5月 - jun: 6月 - jul: 7月 - aug: 8月 - sep: 9月 - oct: 10月 - nov: 11月 - dec: 12月 - months_short: - jan: 1月 - feb: 2月 - mar: 3月 - apr: 4月 - may: 5月 - jun: 6月 - jul: 7月 - aug: 8月 - sep: 9月 - oct: 10月 - nov: 11月 - dec: 12月 - relative_day: - today: 今天 - tomorrow: 明天 - in_2_days: 後天 - in_3_days: 大後天 - in_4_days: 四天後 - climate: - states: - 'on': 開啟 - 'off': 關閉 - heat: 暖氣 - please_confirm: 請確認 - unavailable: 無法使用 - unknown: 未知 - no_name: 未命名 - alarm: - home: 在家 - away: 離家 - night: 夜間 - vacation: 假期 - bypass: 忽略 - disarm: 解除 - settings: - reboot: 重啟 - sleep: 睡眠 - brightness: 亮度 - bright: 正常 - dimming: 調光 - dim: 待機 - meridiem: - am: 上午 - pm: 下午 - - ##### Button pages ##### - buttons_pages: - labels: - buttonpage01: !input button_page01_label - buttonpage02: !input button_page02_label - buttonpage03: !input button_page03_label - buttonpage04: !input button_page04_label - buttons: # Buttons 1 - 32 - - entity: !input 'entity01' - name: !input 'entity01_name' - icon: !input 'entity01_icon' - icon_color_rgb: !input 'entity01_icon_color' - confirm: !input 'entity01_confirm' - page: buttonpage01 - component: button01 - - entity: !input 'entity02' - name: !input 'entity02_name' - icon: !input 'entity02_icon' - icon_color_rgb: !input 'entity02_icon_color' - confirm: !input 'entity02_confirm' - page: buttonpage01 - component: button02 - - entity: !input 'entity03' - name: !input 'entity03_name' - icon: !input 'entity03_icon' - icon_color_rgb: !input 'entity03_icon_color' - confirm: !input 'entity03_confirm' - page: buttonpage01 - component: button03 - - entity: !input 'entity04' - name: !input 'entity04_name' - icon: !input 'entity04_icon' - icon_color_rgb: !input 'entity04_icon_color' - confirm: !input 'entity04_confirm' - page: buttonpage01 - component: button04 - - entity: !input 'entity05' - name: !input 'entity05_name' - icon: !input 'entity05_icon' - icon_color_rgb: !input 'entity05_icon_color' - confirm: !input 'entity05_confirm' - page: buttonpage01 - component: button05 - - entity: !input 'entity06' - name: !input 'entity06_name' - icon: !input 'entity06_icon' - icon_color_rgb: !input 'entity06_icon_color' - confirm: !input 'entity06_confirm' - page: buttonpage01 - component: button06 - - entity: !input 'entity07' - name: !input 'entity07_name' - icon: !input 'entity07_icon' - icon_color_rgb: !input 'entity07_icon_color' - confirm: !input 'entity07_confirm' - page: buttonpage01 - component: button07 - - entity: !input 'entity08' - name: !input 'entity08_name' - icon: !input 'entity08_icon' - icon_color_rgb: !input 'entity08_icon_color' - confirm: !input 'entity08_confirm' - page: buttonpage01 - component: button08 - - entity: !input 'entity09' - name: !input 'entity09_name' - icon: !input 'entity09_icon' - icon_color_rgb: !input 'entity09_icon_color' - confirm: !input 'entity09_confirm' - page: buttonpage02 - component: button01 - - entity: !input 'entity10' - name: !input 'entity10_name' - icon: !input 'entity10_icon' - icon_color_rgb: !input 'entity10_icon_color' - confirm: !input 'entity10_confirm' - page: buttonpage02 - component: button02 - - entity: !input 'entity11' - name: !input 'entity11_name' - icon: !input 'entity11_icon' - icon_color_rgb: !input 'entity11_icon_color' - confirm: !input 'entity11_confirm' - page: buttonpage02 - component: button03 - - entity: !input 'entity12' - name: !input 'entity12_name' - icon: !input 'entity12_icon' - icon_color_rgb: !input 'entity12_icon_color' - confirm: !input 'entity12_confirm' - page: buttonpage02 - component: button04 - - entity: !input 'entity13' - name: !input 'entity13_name' - icon: !input 'entity13_icon' - icon_color_rgb: !input 'entity13_icon_color' - confirm: !input 'entity13_confirm' - page: buttonpage02 - component: button05 - - entity: !input 'entity14' - name: !input 'entity14_name' - icon: !input 'entity14_icon' - icon_color_rgb: !input 'entity14_icon_color' - confirm: !input 'entity14_confirm' - page: buttonpage02 - component: button06 - - entity: !input 'entity15' - name: !input 'entity15_name' - icon: !input 'entity15_icon' - icon_color_rgb: !input 'entity15_icon_color' - confirm: !input 'entity15_confirm' - page: buttonpage02 - component: button07 - - entity: !input 'entity16' - name: !input 'entity16_name' - icon: !input 'entity16_icon' - icon_color_rgb: !input 'entity16_icon_color' - confirm: !input 'entity16_confirm' - page: buttonpage02 - component: button08 - - entity: !input 'entity17' - name: !input 'entity17_name' - icon: !input 'entity17_icon' - icon_color_rgb: !input 'entity17_icon_color' - confirm: !input 'entity17_confirm' - page: buttonpage03 - component: button01 - - entity: !input 'entity18' - name: !input 'entity18_name' - icon: !input 'entity18_icon' - icon_color_rgb: !input 'entity18_icon_color' - confirm: !input 'entity18_confirm' - page: buttonpage03 - component: button02 - - entity: !input 'entity19' - name: !input 'entity19_name' - icon: !input 'entity19_icon' - icon_color_rgb: !input 'entity19_icon_color' - confirm: !input 'entity19_confirm' - page: buttonpage03 - component: button03 - - entity: !input 'entity20' - name: !input 'entity20_name' - icon: !input 'entity20_icon' - icon_color_rgb: !input 'entity20_icon_color' - confirm: !input 'entity20_confirm' - page: buttonpage03 - component: button04 - - entity: !input 'entity21' - name: !input 'entity21_name' - icon: !input 'entity21_icon' - icon_color_rgb: !input 'entity21_icon_color' - confirm: !input 'entity21_confirm' - page: buttonpage03 - component: button05 - - entity: !input 'entity22' - name: !input 'entity22_name' - icon: !input 'entity22_icon' - icon_color_rgb: !input 'entity22_icon_color' - confirm: !input 'entity22_confirm' - page: buttonpage03 - component: button06 - - entity: !input 'entity23' - name: !input 'entity23_name' - icon: !input 'entity23_icon' - icon_color_rgb: !input 'entity23_icon_color' - confirm: !input 'entity23_confirm' - page: buttonpage03 - component: button07 - - entity: !input 'entity24' - name: !input 'entity24_name' - icon: !input 'entity24_icon' - icon_color_rgb: !input 'entity24_icon_color' - confirm: !input 'entity24_confirm' - page: buttonpage03 - component: button08 - - entity: !input 'entity25' - name: !input 'entity25_name' - icon: !input 'entity25_icon' - icon_color_rgb: !input 'entity25_icon_color' - confirm: !input 'entity25_confirm' - page: buttonpage04 - component: button01 - - entity: !input 'entity26' - name: !input 'entity26_name' - icon: !input 'entity26_icon' - icon_color_rgb: !input 'entity26_icon_color' - confirm: !input 'entity26_confirm' - page: buttonpage04 - component: button02 - - entity: !input 'entity27' - name: !input 'entity27_name' - icon: !input 'entity27_icon' - icon_color_rgb: !input 'entity27_icon_color' - confirm: !input 'entity27_confirm' - page: buttonpage04 - component: button03 - - entity: !input 'entity28' - name: !input 'entity28_name' - icon: !input 'entity28_icon' - icon_color_rgb: !input 'entity28_icon_color' - confirm: !input 'entity28_confirm' - page: buttonpage04 - component: button04 - - entity: !input 'entity29' - name: !input 'entity29_name' - icon: !input 'entity29_icon' - icon_color_rgb: !input 'entity29_icon_color' - confirm: !input 'entity29_confirm' - page: buttonpage04 - component: button05 - - entity: !input 'entity30' - name: !input 'entity30_name' - icon: !input 'entity30_icon' - icon_color_rgb: !input 'entity30_icon_color' - confirm: !input 'entity30_confirm' - page: buttonpage04 - component: button06 - - entity: !input 'entity31' - name: !input 'entity31_name' - icon: !input 'entity31_icon' - icon_color_rgb: !input 'entity31_icon_color' - confirm: !input 'entity31_confirm' - page: buttonpage04 - component: button07 - - entity: !input 'entity32' - name: !input 'entity32_name' - icon: !input 'entity32_icon' - icon_color_rgb: !input 'entity32_icon_color' - confirm: !input 'entity32_confirm' - page: buttonpage04 - component: button08 - - ##### Entity pages ##### - entities_pages: - labels: - entitypage01: !input 'entity_page01_label' - entitypage02: !input 'entity_page02_label' - entitypage03: !input 'entity_page03_label' - entitypage04: !input 'entity_page04_label' - entities: - - entity: !input 'entities_entity01' - name: !input 'entities_entity01_name' - icon: !input 'entities_entity01_icon' - page: entitypage01 - component: value01 - - entity: !input 'entities_entity02' - name: !input 'entities_entity02_name' - icon: !input 'entities_entity02_icon' - page: entitypage01 - component: value02 - - entity: !input 'entities_entity03' - name: !input 'entities_entity03_name' - icon: !input 'entities_entity03_icon' - page: entitypage01 - component: value03 - - entity: !input 'entities_entity04' - name: !input 'entities_entity04_name' - icon: !input 'entities_entity04_icon' - page: entitypage01 - component: value04 - - entity: !input 'entities_entity05' - name: !input 'entities_entity05_name' - icon: !input 'entities_entity05_icon' - page: entitypage01 - component: value05 - - entity: !input 'entities_entity06' - name: !input 'entities_entity06_name' - icon: !input 'entities_entity06_icon' - page: entitypage01 - component: value06 - - entity: !input 'entities_entity07' - name: !input 'entities_entity07_name' - icon: !input 'entities_entity07_icon' - page: entitypage01 - component: value07 - - entity: !input 'entities_entity08' - name: !input 'entities_entity08_name' - icon: !input 'entities_entity08_icon' - page: entitypage01 - component: value08 - - entity: !input 'entities_entity09' - name: !input 'entities_entity09_name' - icon: !input 'entities_entity09_icon' - page: entitypage02 - component: value01 - - entity: !input 'entities_entity10' - name: !input 'entities_entity10_name' - icon: !input 'entities_entity10_icon' - page: entitypage02 - component: value02 - - entity: !input 'entities_entity11' - name: !input 'entities_entity11_name' - icon: !input 'entities_entity11_icon' - page: entitypage02 - component: value03 - - entity: !input 'entities_entity12' - name: !input 'entities_entity12_name' - icon: !input 'entities_entity12_icon' - page: entitypage02 - component: value04 - - entity: !input 'entities_entity13' - name: !input 'entities_entity13_name' - icon: !input 'entities_entity13_icon' - page: entitypage02 - component: value05 - - entity: !input 'entities_entity14' - name: !input 'entities_entity14_name' - icon: !input 'entities_entity14_icon' - page: entitypage02 - component: value06 - - entity: !input 'entities_entity15' - name: !input 'entities_entity15_name' - icon: !input 'entities_entity15_icon' - page: entitypage02 - component: value07 - - entity: !input 'entities_entity16' - name: !input 'entities_entity16_name' - icon: !input 'entities_entity16_icon' - page: entitypage02 - component: value08 - - entity: !input 'entities_entity17' - name: !input 'entities_entity17_name' - icon: !input 'entities_entity17_icon' - page: entitypage03 - component: value01 - - entity: !input 'entities_entity18' - name: !input 'entities_entity18_name' - icon: !input 'entities_entity18_icon' - page: entitypage03 - component: value02 - - entity: !input 'entities_entity19' - name: !input 'entities_entity19_name' - icon: !input 'entities_entity19_icon' - page: entitypage03 - component: value03 - - entity: !input 'entities_entity20' - name: !input 'entities_entity20_name' - icon: !input 'entities_entity20_icon' - page: entitypage03 - component: value04 - - entity: !input 'entities_entity21' - name: !input 'entities_entity21_name' - icon: !input 'entities_entity21_icon' - page: entitypage03 - component: value05 - - entity: !input 'entities_entity22' - name: !input 'entities_entity22_name' - icon: !input 'entities_entity22_icon' - page: entitypage03 - component: value06 - - entity: !input 'entities_entity23' - name: !input 'entities_entity23_name' - icon: !input 'entities_entity23_icon' - page: entitypage03 - component: value07 - - entity: !input 'entities_entity24' - name: !input 'entities_entity24_name' - icon: !input 'entities_entity24_icon' - page: entitypage03 - component: value08 - - entity: !input 'entities_entity25' - name: !input 'entities_entity25_name' - icon: !input 'entities_entity25_icon' - page: entitypage04 - component: value01 - - entity: !input 'entities_entity26' - name: !input 'entities_entity26_name' - icon: !input 'entities_entity26_icon' - page: entitypage04 - component: value02 - - entity: !input 'entities_entity27' - name: !input 'entities_entity27_name' - icon: !input 'entities_entity27_icon' - page: entitypage04 - component: value03 - - entity: !input 'entities_entity28' - name: !input 'entities_entity28_name' - icon: !input 'entities_entity28_icon' - page: entitypage04 - component: value04 - - entity: !input 'entities_entity29' - name: !input 'entities_entity29_name' - icon: !input 'entities_entity29_icon' - page: entitypage04 - component: value05 - - entity: !input 'entities_entity30' - name: !input 'entities_entity30_name' - icon: !input 'entities_entity30_icon' - page: entitypage04 - component: value06 - - entity: !input 'entities_entity31' - name: !input 'entities_entity31_name' - icon: !input 'entities_entity31_icon' - page: entitypage04 - component: value07 - - entity: !input 'entities_entity32' - name: !input 'entities_entity32_name' - icon: !input 'entities_entity32_icon' - page: entitypage04 - component: value08 - - ##### WEATHER #### - weather_entity_tmp: !input 'weather_entity' # used only during the creation of weather in variables - weather_entity: > - {% if weather_entity_tmp is string and weather_entity_tmp | length > 0 %} {{ weather_entity_tmp }} - {% elif states.weather | list | count > 0 %} {{ states.weather | map(attribute="entity_id") | list | first }} - {% endif %} - temperature_units: "°" - - ##### Climate page ##### - page_climate: - buttons: - hvac_mode: - - mode: auto - icon: calendar-sync - color: green - component: button01 - - mode: heat_cool - icon: autorenew - color: amber - component: button02 - - mode: heat - icon: fire - color: deep_orange - component: button03 - - mode: cool - icon: snowflake - color: blue - component: button04 - - mode: dry - icon: water-percent - color: orange - component: button05 - - mode: fan_only - icon: fan - color: cyan - component: button06 - - mode: "off" - icon: power - color: "off" - component: button07 - - ##### Utilities page ##### - pages_utilities: - cursor: - width: !input utilities_page_cursor_width - title: - label: !input utilities_page01_label - icon: !input utilities_page01_icon - groups: - - name: home - label: !input utilities_page01_home_label - icon: !input utilities_page01_home_icon - value1: !input utilities_page01_home_value1 - value2: !input utilities_page01_home_value2 - color: !input utilities_page01_home_color - - name: grid - label: !input utilities_page01_grid_label - icon: !input utilities_page01_grid_icon - value1: !input utilities_page01_grid_value1 - value2: !input utilities_page01_grid_value2 - color: !input utilities_page01_grid_color - - name: group01 - label: !input utilities_page01_group01_label - icon: !input utilities_page01_group01_icon - value1: !input utilities_page01_group01_value1 - value2: !input utilities_page01_group01_value2 - color: !input utilities_page01_group01_color - line_ref: !input utilities_page01_group01_line_reference - line_inverted: !input utilities_page01_group01_line_inverted - - name: group02 - label: !input utilities_page01_group02_label - icon: !input utilities_page01_group02_icon - value1: !input utilities_page01_group02_value1 - value2: !input utilities_page01_group02_value2 - color: !input utilities_page01_group02_color - line_ref: !input utilities_page01_group02_line_reference - line_inverted: !input utilities_page01_group02_line_inverted - - name: group03 - label: !input utilities_page01_group03_label - icon: !input utilities_page01_group03_icon - value1: !input utilities_page01_group03_value1 - value2: !input utilities_page01_group03_value2 - color: !input utilities_page01_group03_color - line_ref: !input utilities_page01_group03_line_reference - line_inverted: !input utilities_page01_group03_line_inverted - - name: group04 - label: !input utilities_page01_group04_label - icon: !input utilities_page01_group04_icon - value1: !input utilities_page01_group04_value1 - value2: !input utilities_page01_group04_value2 - color: !input utilities_page01_group04_color - line_ref: !input utilities_page01_group04_line_reference - line_inverted: !input utilities_page01_group04_line_inverted - - name: group05 - label: !input utilities_page01_group05_label - icon: !input utilities_page01_group05_icon - value1: !input utilities_page01_group05_value1 - value2: !input utilities_page01_group05_value2 - color: !input utilities_page01_group05_color - line_ref: !input utilities_page01_group05_line_reference - line_inverted: !input utilities_page01_group05_line_inverted - - name: group06 - label: !input utilities_page01_group06_label - icon: !input utilities_page01_group06_icon - value1: !input utilities_page01_group06_value1 - value2: !input utilities_page01_group06_value2 - color: !input utilities_page01_group06_color - line_ref: !input utilities_page01_group06_line_reference - line_inverted: !input utilities_page01_group06_line_inverted - - ###### MEDIA PLAYER REFRESH ##### - media_player_update_interval: !input 'media_player_update_interval' - media_player_update_delay: !input 'media_player_update_delay' - - ##### GENERAL ENTITYS ##### - climate: !input 'climate' - embedded_climate: '{{ climate == thermostat_embedded }}' indoor_temperature_sensor_input: !input indoortemp indoor_temperature_sensor: > {{ @@ -6409,60 +3382,6 @@ variables: else nspaneltemp }} embedded_indoor_temperature: '{{ indoor_temperature_sensor == nspaneltemp }}' - domain_automation_button_action: !input domain_automation_button_action - - # yamllint disable rule:truthy rule:line-length rule:comments-indentation - enum: - ColorMode: # Possible light color modes. - https://github.com/home-assistant/core/blob/dev/homeassistant/components/light/__init__.py - UNKNOWN: "[]" - ONOFF: "[]" - BRIGHTNESS: "[]" - COLOR_TEMP: "[]" - HS: "[]" - XY: "[]" - RGB: "[]" - RGBW: "[]" - RGBWW: "[]" - WHITE: "[]" - HVACMode: # Possible HVAC modes. - https://github.com/home-assistant/core/blob/dev/homeassistant/components/climate/const.py#L13 - "OFF": "[]" # All activity disabled / Device is off/standby - HEAT: "[]" # Heating - COOL: "[]" # Cooling - HEAT_COOL: "[]" # The device supports heating/cooling to a range - AUTO: "[]" # The temperature is set based on a schedule, learned behavior, AI or some other related mechanism. User is not able to adjust the temperature - DRY: "[]" # Device is in Dry/Humidity mode - FAN_ONLY: "[]" # Only the fan is on, not fan and another mode like cool - HVACMode_bits: - "OFF": 1 - HEAT: 2 - COOL: 4 - HEAT_COOL: 8 - AUTO: 16 - DRY: 32 - FAN_ONLY: 64 - states: - "on": ["on", "open", "opening", "true", "True", true, True, "playing", "heat", "cold", "dry", "armed_home", "armed_away", "armed_vacation", "armed_custom_bypass", "triggered", "pending", "arming", "unlocked", 1] - "off": ["off", "closed", "closing", "false", "False", false, False, "standby", "paused", "idle", "disarmed", "disarming", "locked"] - unknown: ["unknown", "unavailable", None, none, ""] - climate: - "on": ["heat_cool", "heat", "heating", "cold", "cooling", "dry", "drying", "fan", "fan_only", "auto"] - "off": ["off", "idle"] - alarm_control_panel: - "on": ["armed_home", "armed_away", "armed_vacation", "armed_custom_bypass", "triggered", "pending", "arming"] - "off": ["disarmed", "disarming"] - lock: - "on": ["unlocked"] - "off": ["locked"] - # yamllint enable rule:truthy rule:line-length rule:comments-indentation - -############################################################# -##### CLOSE - Variables ##### -############################################################# - - -############################################################# -##### START - Trigger ##### -############################################################# # yamllint disable rule:indentation rule:comments-indentation trigger: @@ -6490,453 +3409,457 @@ trigger: id: wake_up_sensors ##### Trigger - Buttons - State change ################################################################################################################# - ##### Button01 Sync - Trigger 'current_state_entity01' ##### + ##### Button01 Sync ##### - platform: state entity_id: !input 'entity01' - id: current_state_entity01 + id: trigger_buttonpage_state - ##### Button02 Sync - Trigger 'current_state_entity02' ##### + ##### Button02 Sync ##### - platform: state entity_id: !input 'entity02' - id: current_state_entity02 + id: trigger_buttonpage_state - ##### Button03 Sync - Trigger 'current_state_entity03' ##### + ##### Button03 Sync ##### - platform: state entity_id: !input 'entity03' - id: current_state_entity03 + id: trigger_buttonpage_state - ##### Button04 Sync - Trigger 'current_state_entity04' ##### + ##### Button04 Sync ##### - platform: state entity_id: !input 'entity04' - id: current_state_entity04 + id: trigger_buttonpage_state - ##### Button05 Sync - Trigger 'current_state_entity05' ##### + ##### Button05 Sync ##### - platform: state entity_id: !input 'entity05' - id: current_state_entity05 + id: trigger_buttonpage_state - ##### Button06 Sync - Trigger 'current_state_entity06' ##### + ##### Button06 Sync ##### - platform: state entity_id: !input 'entity06' - id: current_state_entity06 + id: trigger_buttonpage_state - ##### Button07 Sync - Trigger 'current_state_entity07' ##### + ##### Button07 Sync ##### - platform: state entity_id: !input 'entity07' - id: current_state_entity07 + id: trigger_buttonpage_state - ##### Button08 Sync - Trigger 'current_state_entity08' ##### + ##### Button08 Sync ##### - platform: state entity_id: !input 'entity08' - id: current_state_entity08 + id: trigger_buttonpage_state - ##### Button09 Sync - Trigger 'current_state_entity09' ##### + ##### Button09 Sync ##### - platform: state entity_id: !input 'entity09' - id: current_state_entity09 + id: trigger_buttonpage_state - ##### Button10 Sync - Trigger 'current_state_entity10' ##### + ##### Button10 Sync ##### - platform: state entity_id: !input 'entity10' - id: current_state_entity10 + id: trigger_buttonpage_state - ##### Button11 Sync - Trigger 'current_state_entity11' ##### + ##### Button11 Sync ##### - platform: state entity_id: !input 'entity11' - id: current_state_entity11 + id: trigger_buttonpage_state - ##### Button12 Sync - Trigger 'current_state_entity12' ##### + ##### Button12 Sync ##### - platform: state entity_id: !input 'entity12' - id: current_state_entity12 + id: trigger_buttonpage_state - ##### Button13 Sync - Trigger 'current_state_entity13' ##### + ##### Button13 Sync ##### - platform: state entity_id: !input 'entity13' - id: current_state_entity13 + id: trigger_buttonpage_state - ##### Button14 Sync - Trigger 'current_state_entity14' ##### + ##### Button14 Sync ##### - platform: state entity_id: !input 'entity14' - id: current_state_entity14 + id: trigger_buttonpage_state - ##### Button15 Sync - Trigger 'current_state_entity15' ##### + ##### Button15 Sync ##### - platform: state entity_id: !input 'entity15' - id: current_state_entity15 + id: trigger_buttonpage_state - ##### Button16 Sync - Trigger 'current_state_entity16' ##### + ##### Button16 Sync ##### - platform: state entity_id: !input 'entity16' - id: current_state_entity16 + id: trigger_buttonpage_state - ##### Button17 Sync - Trigger 'current_state_entity17' ##### + ##### Button17 Sync ##### - platform: state entity_id: !input 'entity17' - id: current_state_entity17 + id: trigger_buttonpage_state - ##### Button18 Sync - Trigger 'current_state_entity18' ##### + ##### Button18 Sync ##### - platform: state entity_id: !input 'entity18' - id: current_state_entity18 + id: trigger_buttonpage_state - ##### Button19 Sync - Trigger 'current_state_entity19' ##### + ##### Button19 Sync ##### - platform: state entity_id: !input 'entity19' - id: current_state_entity19 + id: trigger_buttonpage_state - ##### Button20 Sync - Trigger 'current_state_entity20' ##### + ##### Button20 Sync ##### - platform: state entity_id: !input 'entity20' - id: current_state_entity20 + id: trigger_buttonpage_state - ##### Button21 Sync - Trigger 'current_state_entity21' ##### + ##### Button21 Sync ##### - platform: state entity_id: !input 'entity21' - id: current_state_entity21 + id: trigger_buttonpage_state - ##### Button22 Sync - Trigger 'current_state_entity22' ##### + ##### Button22 Sync ##### - platform: state entity_id: !input 'entity22' - id: current_state_entity22 + id: trigger_buttonpage_state - ##### Button23 Sync - Trigger 'current_state_entity23' ##### + ##### Button23 Sync ##### - platform: state entity_id: !input 'entity23' - id: current_state_entity23 + id: trigger_buttonpage_state - ##### Button24 Sync - Trigger 'current_state_entity24' ##### + ##### Button24 Sync ##### - platform: state entity_id: !input 'entity24' - id: current_state_entity24 + id: trigger_buttonpage_state - ##### Button25 Sync - Trigger 'current_state_entity25' ##### + ##### Button25 Sync ##### - platform: state entity_id: !input 'entity25' - id: current_state_entity25 + id: trigger_buttonpage_state - ##### Button26 Sync - Trigger 'current_state_entity26' ##### + ##### Button26 Sync ##### - platform: state entity_id: !input 'entity26' - id: current_state_entity26 + id: trigger_buttonpage_state - ##### Button27 Sync - Trigger 'current_state_entity27' ##### + ##### Button27 Sync ##### - platform: state entity_id: !input 'entity27' - id: current_state_entity27 + id: trigger_buttonpage_state - ##### Button28 Sync - Trigger 'current_state_entity28' ##### + ##### Button28 Sync ##### - platform: state entity_id: !input 'entity28' - id: current_state_entity28 + id: trigger_buttonpage_state - ##### Button29 Sync - Trigger 'current_state_entity29' ##### + ##### Button29 Sync ##### - platform: state entity_id: !input 'entity29' - id: current_state_entity29 + id: trigger_buttonpage_state - ##### Button30 Sync - Trigger 'current_state_entity30' ##### + ##### Button30 Sync ##### - platform: state entity_id: !input 'entity30' - id: current_state_entity30 + id: trigger_buttonpage_state - ##### Button31 Sync - Trigger 'current_state_entity31' ##### + ##### Button31 Sync ##### - platform: state entity_id: !input 'entity31' - id: current_state_entity31 + id: trigger_buttonpage_state - ##### Button32 Sync - Trigger 'current_state_entity32' ##### + ##### Button32 Sync ##### - platform: state entity_id: !input 'entity32' - id: current_state_entity32 + id: trigger_buttonpage_state ##### Trigger - Entity pages - State change ############################################################################################### - alias: entities_entity01 platform: state entity_id: !input 'entities_entity01' - id: trigger_entitypage01 + id: trigger_entitypage_state - alias: entities_entity02 platform: state entity_id: !input 'entities_entity02' - id: trigger_entitypage01 + id: trigger_entitypage_state - alias: entities_entity03 platform: state entity_id: !input 'entities_entity03' - id: trigger_entitypage01 + id: trigger_entitypage_state - alias: entities_entity04 platform: state entity_id: !input 'entities_entity04' - id: trigger_entitypage01 + id: trigger_entitypage_state - alias: entities_entity05 platform: state entity_id: !input 'entities_entity05' - id: trigger_entitypage01 + id: trigger_entitypage_state - alias: entities_entity06 platform: state entity_id: !input 'entities_entity06' - id: trigger_entitypage01 + id: trigger_entitypage_state - alias: entities_entity07 platform: state entity_id: !input 'entities_entity07' - id: trigger_entitypage01 + id: trigger_entitypage_state - alias: entities_entity08 platform: state entity_id: !input 'entities_entity08' - id: trigger_entitypage01 + id: trigger_entitypage_state - alias: entities_entity09 platform: state entity_id: !input 'entities_entity09' - id: trigger_entitypage02 + id: trigger_entitypage_state - alias: entities_entity10 platform: state entity_id: !input 'entities_entity10' - id: trigger_entitypage02 + id: trigger_entitypage_state - alias: entities_entity11 platform: state entity_id: !input 'entities_entity11' - id: trigger_entitypage02 + id: trigger_entitypage_state - alias: entities_entity12 platform: state entity_id: !input 'entities_entity12' - id: trigger_entitypage02 + id: trigger_entitypage_state - alias: entities_entity13 platform: state entity_id: !input 'entities_entity13' - id: trigger_entitypage02 + id: trigger_entitypage_state - alias: entities_entity14 platform: state entity_id: !input 'entities_entity14' - id: trigger_entitypage02 + id: trigger_entitypage_state - alias: entities_entity15 platform: state entity_id: !input 'entities_entity15' - id: trigger_entitypage02 + id: trigger_entitypage_state - alias: entities_entity16 platform: state entity_id: !input 'entities_entity16' - id: trigger_entitypage02 + id: trigger_entitypage_state - alias: entities_entity17 platform: state entity_id: !input 'entities_entity17' - id: trigger_entitypage03 + id: trigger_entitypage_state - alias: entities_entity18 platform: state entity_id: !input 'entities_entity18' - id: trigger_entitypage03 + id: trigger_entitypage_state - alias: entities_entity19 platform: state entity_id: !input 'entities_entity19' - id: trigger_entitypage03 + id: trigger_entitypage_state - alias: entities_entity20 platform: state entity_id: !input 'entities_entity20' - id: trigger_entitypage03 + id: trigger_entitypage_state - alias: entities_entity21 platform: state entity_id: !input 'entities_entity21' - id: trigger_entitypage03 + id: trigger_entitypage_state - alias: entities_entity22 platform: state entity_id: !input 'entities_entity22' - id: trigger_entitypage03 + id: trigger_entitypage_state - alias: entities_entity23 platform: state entity_id: !input 'entities_entity23' - id: trigger_entitypage03 + id: trigger_entitypage_state - alias: entities_entity24 platform: state entity_id: !input 'entities_entity24' - id: trigger_entitypage03 + id: trigger_entitypage_state - alias: entities_entity25 platform: state entity_id: !input 'entities_entity25' - id: trigger_entitypage04 + id: trigger_entitypage_state - alias: entities_entity26 platform: state entity_id: !input 'entities_entity26' - id: trigger_entitypage04 + id: trigger_entitypage_state - alias: entities_entity27 platform: state entity_id: !input 'entities_entity27' - id: trigger_entitypage04 + id: trigger_entitypage_state - alias: entities_entity28 platform: state entity_id: !input 'entities_entity28' - id: trigger_entitypage04 + id: trigger_entitypage_state - alias: entities_entity29 platform: state entity_id: !input 'entities_entity29' - id: trigger_entitypage04 + id: trigger_entitypage_state - alias: entities_entity30 platform: state entity_id: !input 'entities_entity30' - id: trigger_entitypage04 + id: trigger_entitypage_state - alias: entities_entity31 platform: state entity_id: !input 'entities_entity31' - id: trigger_entitypage04 + id: trigger_entitypage_state - alias: entities_entity32 platform: state entity_id: !input 'entities_entity32' - id: trigger_entitypage04 + id: trigger_entitypage_state ##### Trigger - Home - Chips - State change ################################################################################################################# - ##### Chip 01 - Trigger 'chip01_state' ##### + ##### Chip 01 ##### - platform: event event_type: state_changed event_data: entity_id: !input 'chip01' - id: chip01_state + id: trigger_chip_state - ##### Chip 02 - Trigger 'chip02_state' ##### + ##### Chip 02 ##### - platform: event event_type: state_changed event_data: entity_id: !input 'chip02' - id: chip02_state + id: trigger_chip_state - ##### Chip 03 - Trigger 'chip03_state' ##### + ##### Chip 03 ##### - platform: event event_type: state_changed event_data: entity_id: !input 'chip03' - id: chip03_state + id: trigger_chip_state - ##### Chip 04 - Trigger 'chip04_state' ##### + ##### Chip 04 ##### - platform: event event_type: state_changed event_data: entity_id: !input 'chip04' - id: chip04_state + id: trigger_chip_state - ##### Chip 05 - Trigger 'chip05_state' ##### + ##### Chip 05 ##### - platform: event event_type: state_changed event_data: entity_id: !input 'chip05' - id: chip05_state + id: trigger_chip_state - ##### Chip 06 - Trigger 'chip06_state' ##### + ##### Chip 06 ##### - platform: event event_type: state_changed event_data: entity_id: !input 'chip06' - id: chip06_state + id: trigger_chip_state - ##### Chip 07 - Trigger 'chip07_state' ##### + ##### Chip 07 ##### - platform: event event_type: state_changed event_data: entity_id: !input 'chip07' - id: chip07_state + id: trigger_chip_state ##### Trigger - Home - Values - State change ################################################################################################################# ##### HOME Value 01 ##### - - platform: event - event_type: state_changed - event_data: - entity_id: !input 'home_value01' + - platform: state + entity_id: !input home_value01 + not_to: + - unknown + - unavailable + for: + seconds: 1 id: home_values_state ##### HOME Value 02 ##### - - platform: event - event_type: state_changed - event_data: - entity_id: !input 'home_value02' + - platform: state + entity_id: !input home_value02 + not_to: + - unknown + - unavailable + for: + seconds: 1 id: home_values_state ##### HOME Value 03 ##### - - platform: event - event_type: state_changed - event_data: - entity_id: !input 'home_value03' + - platform: state + entity_id: !input home_value03 + not_to: + - unknown + - unavailable + for: + seconds: 1 id: home_values_state ##### HOME Value 04 ##### - - platform: event - event_type: state_changed - event_data: - entity_id: !input 'home_value04' + - platform: state + entity_id: !input home_value04 + not_to: + - unknown + - unavailable + for: + seconds: 1 id: home_values_state - ##### Trigger - Home - Notification ####################################################################################################################### - - platform: template - value_template: '{{ states(notification_text) }}' - id: notification_changed - - platform: template - value_template: '{{ states(notification_unread) }}' - id: notification_changed - ##### Trigger - Home - Custom buttons - State change ################################################################################################################# - ##### Custom button 01 - Trigger 'home_custom_buttons' ##### + ##### Custom button 01 ##### - platform: event event_type: state_changed event_data: entity_id: !input 'home_custom_button01' id: home_custom_buttons - ##### Custom button 02 - Trigger 'home_custom_buttons' ##### + ##### Custom button 02 ##### - platform: event event_type: state_changed event_data: entity_id: !input 'home_custom_button02' id: home_custom_buttons - ##### Custom button 03 - Trigger 'home_custom_buttons' ##### + ##### Custom button 03 ##### - platform: event event_type: state_changed event_data: entity_id: !input 'home_custom_button03' id: home_custom_buttons - ##### Custom button 04 - Trigger 'home_custom_buttons' ##### + ##### Custom button 04 ##### - platform: event event_type: state_changed event_data: entity_id: !input 'home_custom_button04' id: home_custom_buttons - ##### Custom button 05 - Trigger 'home_custom_buttons' ##### + ##### Custom button 05 ##### - platform: event event_type: state_changed event_data: entity_id: !input 'home_custom_button05' id: home_custom_buttons - ##### Custom button 06 - Trigger 'home_custom_buttons' ##### + ##### Custom button 06 ##### - platform: event event_type: state_changed event_data: entity_id: !input 'home_custom_button06' id: home_custom_buttons - ##### Custom button 07 - Trigger 'home_custom_buttons' ##### + ##### Custom button 07 ##### - platform: event event_type: state_changed event_data: @@ -6974,28 +3897,36 @@ trigger: not_to: - unknown - unavailable - id: climate_value01_state + for: + seconds: 1 + id: trigger_climatepage_value_state ##### Climate Value 02 ##### - platform: state entity_id: !input 'climate_value02' not_to: - unknown - unavailable - id: climate_value02_state + for: + seconds: 1 + id: trigger_climatepage_value_state ##### Climate Value 03 ##### - platform: state entity_id: !input 'climate_value03' not_to: - unknown - unavailable - id: climate_value03_state + for: + seconds: 1 + id: trigger_climatepage_value_state ##### Climate Value 04 ##### - platform: state entity_id: !input 'climate_value04' not_to: - unknown - unavailable - id: climate_value04_state + for: + seconds: 1 + id: trigger_climatepage_value_state ##### Trigger - Climate - Custom buttons - State change ################################################################################################################# ##### Climate Button page 1, Button 8 ##### @@ -7004,6 +3935,8 @@ trigger: not_to: - unknown - unavailable + for: + seconds: 1 id: climate_button08_state ##### Climate Button page 2, Button 1 ##### - platform: state @@ -7011,6 +3944,8 @@ trigger: not_to: - unknown - unavailable + for: + seconds: 1 id: climate_button09_state ##### Trigger - Hardware buttons ################################################################################################################# @@ -7019,91 +3954,164 @@ trigger: - platform: state entity_id: !input left_button_entity id: left_button_state + - platform: state + entity_id: !input left_button_state_entity + id: left_button_alt_state ##### Right Button - State ##### - platform: state entity_id: !input right_button_entity id: right_button_state + - platform: state + entity_id: !input right_button_state_entity + id: right_button_alt_state ##### Trigger - Page utilities - State change ################################################################################################################# ##### Page utilities - Main line ##### - - platform: state - entity_id: !input utilities_page01_main_line_reference + - platform: template + value_template: > + {% set line_ref_id = utilities_line_reference.page01.main %} + {% set line_ref_state = (states(line_ref_id) | float(0)) if line_ref_id is string and line_ref_id.split(".") == 2 else 0 %} + {{ ((line_ref_state > 0) - (line_ref_state < 0)) }} id: utilities_page + for: + seconds: 1 ##### Page utilities - Home ##### - platform: state entity_id: !input utilities_page01_home_value1 id: utilities_page + for: + seconds: 1 - platform: state entity_id: !input utilities_page01_home_value2 id: utilities_page + for: + seconds: 1 ##### Page utilities - Grid ##### - platform: state entity_id: !input utilities_page01_grid_value1 id: utilities_page + for: + seconds: 1 - platform: state entity_id: !input utilities_page01_grid_value2 id: utilities_page + for: + seconds: 1 ##### Page utilities - Group 01 ##### - platform: state entity_id: !input utilities_page01_group01_value1 id: utilities_page + for: + seconds: 1 - platform: state entity_id: !input utilities_page01_group01_value2 id: utilities_page - - platform: state - entity_id: !input utilities_page01_group01_line_reference + for: + seconds: 1 + - platform: template + value_template: > + {% set line_ref_id = utilities_line_reference.page01.group01 %} + {% set line_ref_state = (states(line_ref_id) | float(0)) if line_ref_id is string and line_ref_id.split(".") == 2 else 0 %} + {{ ((line_ref_state > 0) - (line_ref_state < 0)) }} id: utilities_page + for: + seconds: 1 ##### Page utilities - Group 02 ##### - platform: state entity_id: !input utilities_page01_group02_value1 id: utilities_page + for: + seconds: 1 - platform: state entity_id: !input utilities_page01_group02_value2 id: utilities_page - - platform: state - entity_id: !input utilities_page01_group02_line_reference + for: + seconds: 1 + - platform: template + value_template: > + {% set line_ref_id = utilities_line_reference.page01.group02 %} + {% set line_ref_state = (states(line_ref_id) | float(0)) if line_ref_id is string and line_ref_id.split(".") == 2 else 0 %} + {{ ((line_ref_state > 0) - (line_ref_state < 0)) }} id: utilities_page + for: + seconds: 1 ##### Page utilities - Group 03 ##### - platform: state entity_id: !input utilities_page01_group03_value1 id: utilities_page + for: + seconds: 1 - platform: state entity_id: !input utilities_page01_group03_value2 id: utilities_page - - platform: state - entity_id: !input utilities_page01_group03_line_reference + for: + seconds: 1 + - platform: template + value_template: > + {% set line_ref_id = utilities_line_reference.page01.group03 %} + {% set line_ref_state = (states(line_ref_id) | float(0)) if line_ref_id is string and line_ref_id.split(".") == 2 else 0 %} + {{ ((line_ref_state > 0) - (line_ref_state < 0)) }} id: utilities_page + for: + seconds: 1 ##### Page utilities - Group 04 ##### - platform: state entity_id: !input utilities_page01_group04_value1 id: utilities_page + for: + seconds: 1 - platform: state entity_id: !input utilities_page01_group04_value2 id: utilities_page - - platform: state - entity_id: !input utilities_page01_group04_line_reference + for: + seconds: 1 + - platform: template + value_template: > + {% set line_ref_id = utilities_line_reference.page01.group04 %} + {% set line_ref_state = (states(line_ref_id) | float(0)) if line_ref_id is string and line_ref_id.split(".") == 2 else 0 %} + {{ ((line_ref_state > 0) - (line_ref_state < 0)) }} id: utilities_page + for: + seconds: 1 ##### Page utilities - Group 05 ##### - platform: state entity_id: !input utilities_page01_group05_value1 id: utilities_page + for: + seconds: 1 - platform: state entity_id: !input utilities_page01_group05_value2 id: utilities_page - - platform: state - entity_id: !input utilities_page01_group05_line_reference + for: + seconds: 1 + - platform: template + value_template: > + {% set line_ref_id = utilities_line_reference.page01.group05 %} + {% set line_ref_state = (states(line_ref_id) | float(0)) if line_ref_id is string and line_ref_id.split(".") == 2 else 0 %} + {{ ((line_ref_state > 0) - (line_ref_state < 0)) }} id: utilities_page + for: + seconds: 1 ##### Page utilities - Group 06 ##### - platform: state entity_id: !input utilities_page01_group06_value1 id: utilities_page + for: + seconds: 1 - platform: state entity_id: !input utilities_page01_group06_value2 id: utilities_page - - platform: state - entity_id: !input utilities_page01_group06_line_reference + for: + seconds: 1 + - platform: template + value_template: > + {% set line_ref_id = utilities_line_reference.page01.group06 %} + {% set line_ref_state = (states(line_ref_id) | float(0)) if line_ref_id is string and line_ref_id.split(".") == 2 else 0 %} + {{ ((line_ref_state > 0) - (line_ref_state < 0)) }} id: utilities_page + for: + seconds: 1 ##### Trigger - Time ################################################################################################################# @@ -7134,8 +4142,11 @@ trigger: - platform: event event_type: state_changed event_data: - entity_id: !input 'weather_entity' + entity_id: !input weather_entity id: weather_state_change + - platform: state + entity_id: !input sun_entity + id: sun_state_change ##### Trigger - TFT ################################################################################################################# @@ -7148,22 +4159,38 @@ trigger: id: tft_upload # yamllint enable rule:indentation rule:comments-indentation +# yamllint disable rule:line-length condition: - - '{{ device_name_sensor is defined and device_name_sensor is string and has_value(device_name_sensor) and states(device_name_sensor) | default("") is string }}' - - condition: or # Update page Home only when visible or home_page_background_update is enabled - conditions: - - '{{ home_page_background_update or pages.current == pages.home }}' - - '{{ trigger.id != "home_values_state" }}' - - condition: or # Do not update with indoor temp changes when embedded indoor temp is used - conditions: - - '{{ trigger.id != "indoortemp_state" }}' - - '{{ (home_page_background_update or pages.current == pages.home ) and not embedded_indoor_temperature }}' + - '{{ trigger.id in ["automation_reloaded", "ha_started", "nspanel_event"] or has_value(device_name_sensor) }}' + - > # Update page Home only when visible or home_page_background_update is enabled + {{ + trigger.id not in ["home_values_state", "trigger_chip_state"] or + home_page_background_update or + pages.current == pages.home + }} + - > # Do not update values when page utilities is not visible + {{ trigger.id != "utilities_page" or pages.current == pages.utilities }} + - > # Do not update values when page entities is not visible + {{ trigger.id != "trigger_entitypage_state" or pages.current in pages.entitypages }} + - > # Do not update values when page climate is not visible + {{ + pages.current == pages.climate or + trigger.id not in ["trigger_climatepage_value_state", "climate_button08_state", "climate_button09_state"] + }} + - > # Do not update values when page button is not visible + {{ + trigger.id != "trigger_buttonpage_state" or + pages.current in pages.buttonpages or + (pages.current in [pages.light, pages.cover, pages.climate, pages.fan, pages.alarm] and trigger.entity_id is defined and trigger.entity_id == states(detailed_entity)) + }} + - > # Don't update indoor temp when embedded temp is used + {{ + trigger.id != "indoortemp_state" or + ((home_page_background_update or pages.current == pages.home ) and not embedded_indoor_temperature) + }} - condition: or # Do not update component if state haven't changed (ignore attributes changed) - event based triggers conditions: - - condition: not - conditions: - - condition: trigger - id: home_custom_buttons + - '{{ trigger.id != "home_custom_buttons" }}' - condition: and conditions: - '{{ home_page_background_update or pages.current == pages.home }}' @@ -7177,79 +4204,12 @@ condition: - '{{ trigger.event.data.new_state is defined and trigger.event.data.new_state.state is defined }}' - '{{ trigger.event.data.old_state is defined and trigger.event.data.old_state.state is defined }}' - '{{ trigger.event.data.new_state.state != trigger.event.data.old_state.state }}' - - condition: or # Do not update values when page entities is not visible - conditions: - - condition: not - conditions: - - condition: trigger - id: - - trigger_entitypage01 - - trigger_entitypage02 - - trigger_entitypage03 - - trigger_entitypage04 - - '{{ pages.current in pages.entitypages }}' - - condition: or # Do not update values when page climate is not visible - conditions: - - condition: not - conditions: - - condition: trigger - id: - - climate_value01_state - - climate_value02_state - - climate_value03_state - - climate_value04_state - - climate_button08_state - - climate_button09_state - - '{{ pages.current == pages.climate }}' - - condition: or # Do not update values when page button is not visible - conditions: - - condition: not - conditions: - - condition: trigger - id: - - current_state_entity01 - - current_state_entity02 - - current_state_entity03 - - current_state_entity04 - - current_state_entity05 - - current_state_entity06 - - current_state_entity07 - - current_state_entity08 - - current_state_entity09 - - current_state_entity10 - - current_state_entity11 - - current_state_entity12 - - current_state_entity13 - - current_state_entity14 - - current_state_entity15 - - current_state_entity16 - - current_state_entity17 - - current_state_entity18 - - current_state_entity19 - - current_state_entity20 - - current_state_entity21 - - current_state_entity22 - - current_state_entity23 - - current_state_entity24 - - current_state_entity25 - - current_state_entity26 - - current_state_entity27 - - current_state_entity28 - - current_state_entity29 - - current_state_entity30 - - current_state_entity31 - - current_state_entity32 - - '{{ pages.current in pages.buttonpages }}' - - '{{ pages.current in [pages.light, pages.cover, pages.climate, pages.fan, pages.alarm] and trigger.entity_id is defined and trigger.entity_id == states(detailed_entity) }}' - - condition: or # Do not update values when page utilities is not visible - conditions: - - '{{ trigger.id != "utilities_page" }}' - - '{{ pages.current == pages.utilities }}' -############################################################# -##### START - Action ##### -############################################################# +# yamllint enable rule:line-length + action: - variables: + ##### GENERAL ##### + blueprint_version: '4.3.2' nspanel_name: > {{ trigger.event.data.device_name @@ -7266,6 +4226,3198 @@ action: else device_name ) }} + date_format_temp: !input 'date_format' + # Avoid breaking change for existing users with legacy type format + date_format: '{{ date_format_temp if date_format_temp not in ["%d.%m", "%d/%m", "%-d/%-m", "%-m/%-d"] else "%A, " ~ date_format_temp }}' + + sun_entity_input: !input sun_entity + sun_entity: > + {{ + sun_entity_input + if + sun_entity_input is string and + sun_entity_input.split("sun.") | count == 2 + else ((states.sun | map(attribute="entity_id") | list | first) if states.sun | selectattr("entity_id", "defined") | list | count > 0 else None) + }} + sun_is_up: '{{ is_state(sun_entity, "above_horizon") if sun_entity is string and sun_entity.split("sun.") | count == 2 else true }}' + + # yamllint disable rule:line-length rule:braces + device_class_icons: + cover: { "awning-closed": "window-closed", "awning-closing": "arrow-down-box", "awning-open": "window-open", "awning-opening": "arrow-up-box", "blind-closed": "blinds-horizontal-closed", "blind-closing": "arrow-down-box", "blind-open": "blinds-horizontal", "blind-opening": "arrow-up-box", "curtain-closed": "curtains-closed", "curtains-closing": "arrow-collapse-horizontal", "curtains-open": "curtains-open", "arrow-split-vertical": "curtains-open", "damper-closed": "circle-slice-8", "damper-closing": "circle", "damper-open": "circle", "damper-opening": "circle", "door-closed": "door-closed", "door-closing": "door-open", "door-open": "door-open", "door-opening": "door-open", "garage-closed": "garage", "garage-closing": "arrow-down-box", "garage-open": "garage-open", "garage-opening": "arrow-up-box", "gate-closed": "gate", "gate-closing": "gate-arrow-right", "gate-open": "gate-open", "gate-opening": "gate-arrow-left", "shade-closed": "roller-shade-closed", "shade-closing": "arrow-down-box", "shade-open": "roller-shade", "shade-opening": "arrow-up-box", "shutter-closed": "window-shutter", "shutter-closing": "arrow-down-box", "shutter-open": "window-shutter-open", "shutter-opening": "arrow-up-box", "window-closed": "window-closed", "window-closing": "arrow-down-box", "window-open": "window-open", "window-opening": "arrow-up-box" } + binary_sensor: { "battery-on": "battery-outline", "battery-off": "battery", "battery_charging-on": "battery-charging", "battery_charging-off": "battery", "carbon_monoxide-on": "smoke-detector-alert", "carbon_monoxide-off": "smoke-detector", "cold-on": "snowflake", "cold-off": "thermometer", "connectivity-on": "check-network-outline", "connectivity-off": "close-network-outline", "door-on": "door-open", "door-off": "door-closed", "garage_door-on": "garage-open", "garage_door-off": "garage", "gas-on": "alert-circle", "gas-off": "check-circle", "heat-on": "fire", "heat-off": "thermometer", "light-on": "brightness-7", "light-off": "brightness-5", "lock-on": "lock-open", "lock-off": "lock", "moisture-on": "water", "moisture-off": "water-off", "motion-on": "motion-sensor", "motion-off": "motion-sensor-off", "moving-on": "octagon", "moving-off": "arrow-right", "occupancy-on": "home", "occupancy-off": "home-outline", "opening-on": "square-outline", "opening-off": "square", "plug-on": "power-plug", "plug-off": "power-plug-off", "power-on": "power-plug", "power-off": "power-plug-off", "presence-on": "home", "presence-off": "home-outline", "problem-on": "alert-circle", "problem-off": "check-circle", "running-on": "play", "running-off": "stop", "safety-on": "alert-circle", "safety-off": "check-circle", "smoke-on": "smoke-detector-variant-alert", "smoke-off": "smoke-detector-variant", "sound-on": "music-note", "sound-off": "music-note-off", "tamper-on": "alert-circle", "tamper-off": "check-circle", "update-on": "package-up", "update-off": "package", "vibration-on": "vibrate", "vibration-off": "crop-portrait", "window-on": "window-open", "window-off": "window-closed" } + sensor: { "apparent_power": "flash", "aqi": "air-filter", "atmospheric_pressure": "thermometer-lines", "battery": "battery", "carbon_dioxide": "molecule-co2", "carbon_monoxide": "molecule-co", "current": "current-ac", "data_rate": "transmission-tower", "data_size": "database", "date": "calendar", "distance": "arrow-left-right", "duration": "progress-clock", "energy": "lightning-bolt", "energy_storage": "car-battery", "enum": "eye", "frequency": "sine-wave", "gas": "meter-gas", "humidity": "water-percent", "illuminance": "brightness-5", "irradiance": "sun-wireless", "moisture": "water-percent", "monetary": "cash", "nitrogen_dioxide": "molecule", "nitrogen_monoxide": "molecule", "nitrous_oxide": "molecule", "ozone": "molecule", "ph": "ph", "pm1": "molecule", "pm10": "molecule", "pm25": "molecule", "power": "flash", "power_factor": "angle-acute", "precipitation": "weather-rainy", "precipitation_intensity": "weather-pouring", "pressure": "gauge", "reactive_power": "flash", "signal_strength": "wifi", "sound_pressure": "ear-hearing", "speed": "speedometer", "sulphur_dioxide": "molecule", "temperature": "thermometer", "timestamp": "clock", "volatile_organic_compounds": "molecule", "volatile_organic_compounds_parts": "molecule", "voltage": "sine-wave", "volume": "car-coolant-level", "water": "water", "weight": "weight", "wind_speed": "weather-windy" } + switch: { "outlet-on": "power-plug", "outlet-off": "power-plug-off", "switch-on": "toggle-switch-variant", "switch-off": toggle-switch-variant-off" } + all_icons: { blank: "\uFFFF", unknown: "\uE027", unavailable: "\uE027", ab-testing: "\uE1C8", abacus: "\uF6DF", abjad-arabic: "\uF327", abjad-hebrew: "\uF328", abugida-devanagari: "\uF329", abugida-thai: "\uF32A", access-point: "\uE002", access-point-check: "\uF537", access-point-minus: "\uF538", access-point-network: "\uE001", access-point-network-off: "\uEBE0", access-point-off: "\uF510", access-point-plus: "\uF539", access-point-remove: "\uF53A", account: "\uE003", account-alert: "\uE004", account-alert-outline: "\uEB4F", account-arrow-down: "\uF867", account-arrow-down-outline: "\uF868", account-arrow-left: "\uEB50", account-arrow-left-outline: "\uEB51", account-arrow-right: "\uEB52", account-arrow-right-outline: "\uEB53", account-arrow-up: "\uF866", account-arrow-up-outline: "\uF869", account-box: "\uE005", account-box-multiple: "\uE933", account-box-multiple-outline: "\uF009", account-box-outline: "\uE006", account-cancel: "\uF2DE", account-cancel-outline: "\uF2DF", account-cash: "\uF096", account-cash-outline: "\uF097", account-check: "\uE007", account-check-outline: "\uEBE1", account-child: "\uEA88", account-child-circle: "\uEA89", account-child-outline: "\uF0C7", account-circle: "\uE008", account-circle-outline: "\uEB54", account-clock: "\uEB55", account-clock-outline: "\uEB56", account-cog: "\uF36F", account-cog-outline: "\uF370", account-convert: "\uE009", account-convert-outline: "\uF300", account-cowboy-hat: "\uEE9A", account-cowboy-hat-outline: "\uF7F2", account-details: "\uE630", account-details-outline: "\uF371", account-edit: "\uE6BB", account-edit-outline: "\uEFFA", account-eye: "\uE41F", account-eye-outline: "\uF27A", account-filter: "\uE935", account-filter-outline: "\uEF9C", account-group: "\uE848", account-group-outline: "\uEB57", account-hard-hat: "\uE5B4", account-hard-hat-outline: "\uFA1E", account-heart: "\uE898", account-heart-outline: "\uEBE2", account-injury: "\uF814", account-injury-outline: "\uF815", account-key: "\uE00A", account-key-outline: "\uEBE3", account-lock: "\uF15D", account-lock-open: "\uF95F", account-lock-open-outline: "\uF960", account-lock-outline: "\uF15E", account-minus: "\uE00C", account-minus-outline: "\uEAEB", account-multiple: "\uE00D", account-multiple-check: "\uE8C4", account-multiple-check-outline: "\uF1FD", account-multiple-minus: "\uE5D2", account-multiple-minus-outline: "\uEBE4", account-multiple-outline: "\uE00E", account-multiple-plus: "\uE00F", account-multiple-plus-outline: "\uE7FF", account-multiple-remove: "\uF209", account-multiple-remove-outline: "\uF20A", account-music: "\uE802", account-music-outline: "\uECE8", account-network: "\uE010", account-network-outline: "\uEBE5", account-off: "\uE011", account-off-outline: "\uEBE6", account-outline: "\uE012", account-plus: "\uE013", account-plus-outline: "\uE800", account-question: "\uEB58", account-question-outline: "\uEB59", account-reactivate: "\uF52A", account-reactivate-outline: "\uF52B", account-remove: "\uE014", account-remove-outline: "\uEAEC", account-school: "\uFA1F", account-school-outline: "\uFA20", account-search: "\uE015", account-search-outline: "\uE934", account-settings: "\uE62F", account-settings-outline: "\uF0C8", account-star: "\uE016", account-star-outline: "\uEBE7", account-supervisor: "\uEA8A", account-supervisor-circle: "\uEA8B", account-supervisor-circle-outline: "\uF4EB", account-supervisor-outline: "\uF12C", account-switch: "\uE018", account-switch-outline: "\uE4CA", account-sync: "\uF91A", account-sync-outline: "\uF91B", account-tie: "\uECE2", account-tie-hat: "\uF897", account-tie-hat-outline: "\uF898", account-tie-outline: "\uF0C9", account-tie-voice: "\uF307", account-tie-voice-off: "\uF309", account-tie-voice-off-outline: "\uF30A", account-tie-voice-outline: "\uF308", account-tie-woman: "\uFA8B", account-voice: "\uE5CA", account-voice-off: "\uEED3", account-wrench: "\uF899", account-wrench-outline: "\uF89A", adjust: "\uE019", advertisements: "\uF929", advertisements-off: "\uF92A", air-conditioner: "\uE01A", air-filter: "\uED42", air-horn: "\uEDAB", air-humidifier: "\uF098", air-humidifier-off: "\uF465", air-purifier: "\uED43", airbag: "\uEBE8", airballoon: "\uE01B", airballoon-outline: "\uF00A", airplane: "\uE01C", airplane-alert: "\uF879", airplane-check: "\uF87A", airplane-clock: "\uF87B", airplane-cog: "\uF87C", airplane-edit: "\uF87D", airplane-landing: "\uE5D3", airplane-marker: "\uF87E", airplane-minus: "\uF87F", airplane-off: "\uE01D", airplane-plus: "\uF880", airplane-remove: "\uF881", airplane-search: "\uF882", airplane-settings: "\uF883", airplane-takeoff: "\uE5D4", airport: "\uE84A", alarm: "\uE01F", alarm-bell: "\uE78D", alarm-check: "\uE020", alarm-light: "\uE78E", alarm-light-off: "\uF71D", alarm-light-off-outline: "\uF71E", alarm-light-outline: "\uEBE9", alarm-multiple: "\uE021", alarm-note: "\uEE70", alarm-note-off: "\uEE71", alarm-off: "\uE022", alarm-panel: "\uF5C3", alarm-panel-outline: "\uF5C4", alarm-plus: "\uE023", alarm-snooze: "\uE68D", album: "\uE024", alert: "\uE025", alert-box: "\uE026", alert-box-outline: "\uECE3", alert-circle: "\uE027", alert-circle-check: "\uF1EC", alert-circle-check-outline: "\uF1ED", alert-circle-outline: "\uE5D5", alert-decagram: "\uE6BC", alert-decagram-outline: "\uECE4", alert-minus: "\uF4BA", alert-minus-outline: "\uF4BD", alert-octagon: "\uE028", alert-octagon-outline: "\uECE5", alert-octagram: "\uE766", alert-octagram-outline: "\uECE6", alert-outline: "\uE029", alert-plus: "\uF4B9", alert-plus-outline: "\uF4BC", alert-remove: "\uF4BB", alert-remove-outline: "\uF4BE", alert-rhombus: "\uF1CD", alert-rhombus-outline: "\uF1CE", alien: "\uE899", alien-outline: "\uF0CA", align-horizontal-center: "\uF1C2", align-horizontal-distribute: "\uF961", align-horizontal-left: "\uF1C1", align-horizontal-right: "\uF1C3", align-vertical-bottom: "\uF1C4", align-vertical-center: "\uF1C5", align-vertical-distribute: "\uF962", align-vertical-top: "\uF1C6", all-inclusive: "\uE6BD", all-inclusive-box: "\uF88C", all-inclusive-box-outline: "\uF88D", allergy: "\uF257", alpha: "\uE02A", alpha-a: "\uEAED", alpha-a-box: "\uEB07", alpha-a-box-outline: "\uEBEA", alpha-a-circle: "\uEBEB", alpha-a-circle-outline: "\uEBEC", alpha-b: "\uEAEE", alpha-b-box: "\uEB08", alpha-b-box-outline: "\uEBED", alpha-b-circle: "\uEBEE", alpha-b-circle-outline: "\uEBEF", alpha-c: "\uEAEF", alpha-c-box: "\uEB09", alpha-c-box-outline: "\uEBF0", alpha-c-circle: "\uEBF1", alpha-c-circle-outline: "\uEBF2", alpha-d: "\uEAF0", alpha-d-box: "\uEB0A", alpha-d-box-outline: "\uEBF3", alpha-d-circle: "\uEBF4", alpha-d-circle-outline: "\uEBF5", alpha-e: "\uEAF1", alpha-e-box: "\uEB0B", alpha-e-box-outline: "\uEBF6", alpha-e-circle: "\uEBF7", alpha-e-circle-outline: "\uEBF8", alpha-f: "\uEAF2", alpha-f-box: "\uEB0C", alpha-f-box-outline: "\uEBF9", alpha-f-circle: "\uEBFA", alpha-f-circle-outline: "\uEBFB", alpha-g: "\uEAF3", alpha-g-box: "\uEB0D", alpha-g-box-outline: "\uEBFC", alpha-g-circle: "\uEBFD", alpha-g-circle-outline: "\uEBFE", alpha-h: "\uEAF4", alpha-h-box: "\uEB0E", alpha-h-box-outline: "\uEBFF", alpha-h-circle: "\uEC00", alpha-h-circle-outline: "\uEC01", alpha-i: "\uEAF5", alpha-i-box: "\uEB0F", alpha-i-box-outline: "\uEC02", alpha-i-circle: "\uEC03", alpha-i-circle-outline: "\uEC04", alpha-j: "\uEAF6", alpha-j-box: "\uEB10", alpha-j-box-outline: "\uEC05", alpha-j-circle: "\uEC06", alpha-j-circle-outline: "\uEC07", alpha-k: "\uEAF7", alpha-k-box: "\uEB11", alpha-k-box-outline: "\uEC08", alpha-k-circle: "\uEC09", alpha-k-circle-outline: "\uEC0A", alpha-l: "\uEAF8", alpha-l-box: "\uEB12", alpha-l-box-outline: "\uEC0B", alpha-l-circle: "\uEC0C", alpha-l-circle-outline: "\uEC0D", alpha-m: "\uEAF9", alpha-m-box: "\uEB13", alpha-m-box-outline: "\uEC0E", alpha-m-circle: "\uEC0F", alpha-m-circle-outline: "\uEC10", alpha-n: "\uEAFA", alpha-n-box: "\uEB14", alpha-n-box-outline: "\uEC11", alpha-n-circle: "\uEC12", alpha-n-circle-outline: "\uEC13", alpha-o: "\uEAFB", alpha-o-box: "\uEB15", alpha-o-box-outline: "\uEC14", alpha-o-circle: "\uEC15", alpha-o-circle-outline: "\uEC16", alpha-p: "\uEAFC", alpha-p-box: "\uEB16", alpha-p-box-outline: "\uEC17", alpha-p-circle: "\uEC18", alpha-p-circle-outline: "\uEC19", alpha-q: "\uEAFD", alpha-q-box: "\uEB17", alpha-q-box-outline: "\uEC1A", alpha-q-circle: "\uEC1B", alpha-q-circle-outline: "\uEC1C", alpha-r: "\uEAFE", alpha-r-box: "\uEB18", alpha-r-box-outline: "\uEC1D", alpha-r-circle: "\uEC1E", alpha-r-circle-outline: "\uEC1F", alpha-s: "\uEAFF", alpha-s-box: "\uEB19", alpha-s-box-outline: "\uEC20", alpha-s-circle: "\uEC21", alpha-s-circle-outline: "\uEC22", alpha-t: "\uEB00", alpha-t-box: "\uEB1A", alpha-t-box-outline: "\uEC23", alpha-t-circle: "\uEC24", alpha-t-circle-outline: "\uEC25", alpha-u: "\uEB01", alpha-u-box: "\uEB1B", alpha-u-box-outline: "\uEC26", alpha-u-circle: "\uEC27", alpha-u-circle-outline: "\uEC28", alpha-v: "\uEB02", alpha-v-box: "\uEB1C", alpha-v-box-outline: "\uEC29", alpha-v-circle: "\uEC2A", alpha-v-circle-outline: "\uEC2B", alpha-w: "\uEB03", alpha-w-box: "\uEB1D", alpha-w-box-outline: "\uEC2C", alpha-w-circle: "\uEC2D", alpha-w-circle-outline: "\uEC2E", alpha-x: "\uEB04", alpha-x-box: "\uEB1E", alpha-x-box-outline: "\uEC2F", alpha-x-circle: "\uEC30", alpha-x-circle-outline: "\uEC31", alpha-y: "\uEB05", alpha-y-box: "\uEB1F", alpha-y-box-outline: "\uEC32", alpha-y-circle: "\uEC33", alpha-y-circle-outline: "\uEC34", alpha-z: "\uEB06", alpha-z-box: "\uEB20", alpha-z-box-outline: "\uEC35", alpha-z-circle: "\uEC36", alpha-z-circle-outline: "\uEC37", alphabet-aurebesh: "\uF32B", alphabet-cyrillic: "\uF32C", alphabet-greek: "\uF32D", alphabet-latin: "\uF32E", alphabet-piqad: "\uF32F", alphabet-tengwar: "\uF336", alphabetical: "\uE02B", alphabetical-off: "\uF00B", alphabetical-variant: "\uF00C", alphabetical-variant-off: "\uF00D", altimeter: "\uE5D6", ambulance: "\uE02E", ammunition: "\uECE7", ampersand: "\uEA8C", amplifier: "\uE02F", amplifier-off: "\uF1B4", anchor: "\uE030", android: "\uE031", android-messages: "\uED44", android-studio: "\uE033", angle-acute: "\uE936", angle-obtuse: "\uE937", angle-right: "\uE938", angular: "\uE6B1", angularjs: "\uE6BE", animation: "\uE5D7", animation-outline: "\uEA8E", animation-play: "\uE939", animation-play-outline: "\uEA8F", ansible: "\uF099", antenna: "\uF118", anvil: "\uE89A", apache-kafka: "\uF00E", api: "\uF09A", api-off: "\uF256", apple: "\uE034", apple-finder: "\uE035", apple-icloud: "\uE037", apple-ios: "\uE036", apple-keyboard-caps: "\uE631", apple-keyboard-command: "\uE632", apple-keyboard-control: "\uE633", apple-keyboard-option: "\uE634", apple-keyboard-shift: "\uE635", apple-safari: "\uE038", application: "\uE8C5", application-array: "\uF0F4", application-array-outline: "\uF0F5", application-braces: "\uF0F6", application-braces-outline: "\uF0F7", application-brackets: "\uEC8A", application-brackets-outline: "\uEC8B", application-cog: "\uE674", application-cog-outline: "\uF576", application-edit: "\uE0AD", application-edit-outline: "\uE618", application-export: "\uEDAC", application-import: "\uEDAD", application-outline: "\uE613", application-parentheses: "\uF0F8", application-parentheses-outline: "\uF0F9", application-settings: "\uEB5F", application-settings-outline: "\uF554", application-variable: "\uF0FA", application-variable-outline: "\uF0FB", approximately-equal: "\uEF9D", approximately-equal-box: "\uEF9E", apps: "\uE03A", apps-box: "\uED45", arch: "\uE8C6", archive: "\uE03B", archive-alert: "\uF4FC", archive-alert-outline: "\uF4FD", archive-arrow-down: "\uF258", archive-arrow-down-outline: "\uF259", archive-arrow-up: "\uF25A", archive-arrow-up-outline: "\uF25B", archive-cancel: "\uF74A", archive-cancel-outline: "\uF74B", archive-check: "\uF74C", archive-check-outline: "\uF74D", archive-clock: "\uF74E", archive-clock-outline: "\uF74F", archive-cog: "\uF750", archive-cog-outline: "\uF751", archive-edit: "\uF752", archive-edit-outline: "\uF753", archive-eye: "\uF754", archive-eye-outline: "\uF755", archive-lock: "\uF756", archive-lock-open: "\uF757", archive-lock-open-outline: "\uF758", archive-lock-outline: "\uF759", archive-marker: "\uF75A", archive-marker-outline: "\uF75B", archive-minus: "\uF75C", archive-minus-outline: "\uF75D", archive-music: "\uF75E", archive-music-outline: "\uF75F", archive-off: "\uF760", archive-off-outline: "\uF761", archive-outline: "\uF20D", archive-plus: "\uF762", archive-plus-outline: "\uF763", archive-refresh: "\uF764", archive-refresh-outline: "\uF765", archive-remove: "\uF766", archive-remove-outline: "\uF767", archive-search: "\uF768", archive-search-outline: "\uF769", archive-settings: "\uF76A", archive-settings-outline: "\uF76B", archive-star: "\uF76C", archive-star-outline: "\uF76D", archive-sync: "\uF76E", archive-sync-outline: "\uF76F", arm-flex: "\uEFD6", arm-flex-outline: "\uEFD5", arrange-bring-forward: "\uE03C", arrange-bring-to-front: "\uE03D", arrange-send-backward: "\uE03E", arrange-send-to-back: "\uE03F", arrow-all: "\uE040", arrow-bottom-left: "\uE041", arrow-bottom-left-bold-box: "\uF963", arrow-bottom-left-bold-box-outline: "\uF964", arrow-bottom-left-bold-outline: "\uE9B6", arrow-bottom-left-thick: "\uE9B7", arrow-bottom-left-thin: "\uF9B5", arrow-bottom-left-thin-circle-outline: "\uF595", arrow-bottom-right: "\uE042", arrow-bottom-right-bold-box: "\uF965", arrow-bottom-right-bold-box-outline: "\uF966", arrow-bottom-right-bold-outline: "\uE9B8", arrow-bottom-right-thick: "\uE9B9", arrow-bottom-right-thin: "\uF9B6", arrow-bottom-right-thin-circle-outline: "\uF594", arrow-collapse: "\uE614", arrow-collapse-all: "\uE043", arrow-collapse-down: "\uE791", arrow-collapse-horizontal: "\uE84B", arrow-collapse-left: "\uE792", arrow-collapse-right: "\uE793", arrow-collapse-up: "\uE794", arrow-collapse-vertical: "\uE84C", arrow-decision: "\uE9BA", arrow-decision-auto: "\uE9BB", arrow-decision-auto-outline: "\uE9BC", arrow-decision-outline: "\uE9BD", arrow-down: "\uE044", arrow-down-bold: "\uE72D", arrow-down-bold-box: "\uE72E", arrow-down-bold-box-outline: "\uE72F", arrow-down-bold-circle: "\uE046", arrow-down-bold-circle-outline: "\uE047", arrow-down-bold-hexagon-outline: "\uE048", arrow-down-bold-outline: "\uE9BE", arrow-down-box: "\uE6BF", arrow-down-circle: "\uECDA", arrow-down-circle-outline: "\uECDB", arrow-down-drop-circle: "\uE049", arrow-down-drop-circle-outline: "\uE04A", arrow-down-left: "\uF7A0", arrow-down-left-bold: "\uF7A1", arrow-down-right: "\uF7A2", arrow-down-right-bold: "\uF7A3", arrow-down-thick: "\uE045", arrow-down-thin: "\uF9B2", arrow-down-thin-circle-outline: "\uF598", arrow-expand: "\uE615", arrow-expand-all: "\uE04B", arrow-expand-down: "\uE795", arrow-expand-horizontal: "\uE84D", arrow-expand-left: "\uE796", arrow-expand-right: "\uE797", arrow-expand-up: "\uE798", arrow-expand-vertical: "\uE84E", arrow-horizontal-lock: "\uF15A", arrow-left: "\uE04C", arrow-left-bold: "\uE730", arrow-left-bold-box: "\uE731", arrow-left-bold-box-outline: "\uE732", arrow-left-bold-circle: "\uE04E", arrow-left-bold-circle-outline: "\uE04F", arrow-left-bold-hexagon-outline: "\uE050", arrow-left-bold-outline: "\uE9BF", arrow-left-bottom: "\uF7A4", arrow-left-bottom-bold: "\uF7A5", arrow-left-box: "\uE6C0", arrow-left-circle: "\uECDC", arrow-left-circle-outline: "\uECDD", arrow-left-drop-circle: "\uE051", arrow-left-drop-circle-outline: "\uE052", arrow-left-right: "\uEE72", arrow-left-right-bold: "\uEE73", arrow-left-right-bold-outline: "\uE9C0", arrow-left-thick: "\uE04D", arrow-left-thin: "\uF9B0", arrow-left-thin-circle-outline: "\uF599", arrow-left-top: "\uF7A6", arrow-left-top-bold: "\uF7A7", arrow-projectile: "\uF83F", arrow-projectile-multiple: "\uF83E", arrow-right: "\uE053", arrow-right-bold: "\uE733", arrow-right-bold-box: "\uE734", arrow-right-bold-box-outline: "\uE735", arrow-right-bold-circle: "\uE055", arrow-right-bold-circle-outline: "\uE056", arrow-right-bold-hexagon-outline: "\uE057", arrow-right-bold-outline: "\uE9C1", arrow-right-bottom: "\uF7A8", arrow-right-bottom-bold: "\uF7A9", arrow-right-box: "\uE6C1", arrow-right-circle: "\uECDE", arrow-right-circle-outline: "\uECDF", arrow-right-drop-circle: "\uE058", arrow-right-drop-circle-outline: "\uE059", arrow-right-thick: "\uE054", arrow-right-thin: "\uF9AF", arrow-right-thin-circle-outline: "\uF597", arrow-right-top: "\uF7AA", arrow-right-top-bold: "\uF7AB", arrow-split-horizontal: "\uE93A", arrow-split-vertical: "\uE93B", arrow-top-left: "\uE05A", arrow-top-left-bold-box: "\uF967", arrow-top-left-bold-box-outline: "\uF968", arrow-top-left-bold-outline: "\uE9C2", arrow-top-left-bottom-right: "\uEE74", arrow-top-left-bottom-right-bold: "\uEE75", arrow-top-left-thick: "\uE9C3", arrow-top-left-thin: "\uF9B4", arrow-top-left-thin-circle-outline: "\uF592", arrow-top-right: "\uE05B", arrow-top-right-bold-box: "\uF969", arrow-top-right-bold-box-outline: "\uF96A", arrow-top-right-bold-outline: "\uE9C4", arrow-top-right-bottom-left: "\uEE76", arrow-top-right-bottom-left-bold: "\uEE77", arrow-top-right-thick: "\uE9C5", arrow-top-right-thin: "\uF9B3", arrow-top-right-thin-circle-outline: "\uF593", arrow-u-down-left: "\uF7AC", arrow-u-down-left-bold: "\uF7AD", arrow-u-down-right: "\uF7AE", arrow-u-down-right-bold: "\uF7AF", arrow-u-left-bottom: "\uF7B0", arrow-u-left-bottom-bold: "\uF7B1", arrow-u-left-top: "\uF7B2", arrow-u-left-top-bold: "\uF7B3", arrow-u-right-bottom: "\uF7B4", arrow-u-right-bottom-bold: "\uF7B5", arrow-u-right-top: "\uF7B6", arrow-u-right-top-bold: "\uF7B7", arrow-u-up-left: "\uF7B8", arrow-u-up-left-bold: "\uF7B9", arrow-u-up-right: "\uF7BA", arrow-u-up-right-bold: "\uF7BB", arrow-up: "\uE05C", arrow-up-bold: "\uE736", arrow-up-bold-box: "\uE737", arrow-up-bold-box-outline: "\uE738", arrow-up-bold-circle: "\uE05E", arrow-up-bold-circle-outline: "\uE05F", arrow-up-bold-hexagon-outline: "\uE060", arrow-up-bold-outline: "\uE9C6", arrow-up-box: "\uE6C2", arrow-up-circle: "\uECE0", arrow-up-circle-outline: "\uECE1", arrow-up-down: "\uEE78", arrow-up-down-bold: "\uEE79", arrow-up-down-bold-outline: "\uE9C7", arrow-up-drop-circle: "\uE061", arrow-up-drop-circle-outline: "\uE062", arrow-up-left: "\uF7BC", arrow-up-left-bold: "\uF7BD", arrow-up-right: "\uF7BE", arrow-up-right-bold: "\uF7BF", arrow-up-thick: "\uE05D", arrow-up-thin: "\uF9B1", arrow-up-thin-circle-outline: "\uF596", arrow-vertical-lock: "\uF15B", artstation: "\uEB5A", aspect-ratio: "\uEA23", assistant: "\uE063", asterisk: "\uE6C3", asterisk-circle-outline: "\uFA26", at: "\uE064", atlassian: "\uE803", atm: "\uED46", atom: "\uE767", atom-variant: "\uEE7A", attachment: "\uE065", attachment-check: "\uFAC0", attachment-lock: "\uF9C3", attachment-minus: "\uFAC1", attachment-off: "\uFAC2", attachment-plus: "\uFAC3", attachment-remove: "\uFAC4", audio-input-rca: "\uF86A", audio-input-stereo-minijack: "\uF86B", audio-input-xlr: "\uF86C", audio-video: "\uE93C", audio-video-off: "\uF1B5", augmented-reality: "\uE84F", auto-download: "\uF37D", auto-fix: "\uE067", auto-upload: "\uE068", autorenew: "\uE069", autorenew-off: "\uF9E6", av-timer: "\uE06A", aws: "\uEE0E", axe: "\uE8C7", axe-battle: "\uF841", axis: "\uED47", axis-arrow: "\uED48", axis-arrow-info: "\uF40D", axis-arrow-lock: "\uED49", axis-lock: "\uED4A", axis-x-arrow: "\uED4B", axis-x-arrow-lock: "\uED4C", axis-x-rotate-clockwise: "\uED4D", axis-x-rotate-counterclockwise: "\uED4E", axis-x-y-arrow-lock: "\uED4F", axis-y-arrow: "\uED50", axis-y-arrow-lock: "\uED51", axis-y-rotate-clockwise: "\uED52", axis-y-rotate-counterclockwise: "\uED53", axis-z-arrow: "\uED54", axis-z-arrow-lock: "\uED55", axis-z-rotate-clockwise: "\uED56", axis-z-rotate-counterclockwise: "\uED57", babel: "\uEA24", baby: "\uE06B", baby-bottle: "\uEF38", baby-bottle-outline: "\uEF39", baby-buggy: "\uF3DF", baby-carriage: "\uE68E", baby-carriage-off: "\uEF9F", baby-face: "\uEE7B", baby-face-outline: "\uEE7C", backburger: "\uE06C", backspace: "\uE06D", backspace-outline: "\uEB5B", backspace-reverse: "\uEE7D", backspace-reverse-outline: "\uEE7E", backup-restore: "\uE06E", bacteria: "\uEED4", bacteria-outline: "\uEED5", badge-account: "\uEDA6", badge-account-alert: "\uEDA7", badge-account-alert-outline: "\uEDA8", badge-account-horizontal: "\uEE0C", badge-account-horizontal-outline: "\uEE0D", badge-account-outline: "\uEDA9", badminton: "\uE850", bag-carry-on: "\uEF3A", bag-carry-on-check: "\uED64", bag-carry-on-off: "\uEF3B", bag-checked: "\uEF3C", bag-personal: "\uEE0F", bag-personal-off: "\uEE10", bag-personal-off-outline: "\uEE11", bag-personal-outline: "\uEE12", bag-suitcase: "\uF58A", bag-suitcase-off: "\uF58C", bag-suitcase-off-outline: "\uF58D", bag-suitcase-outline: "\uF58B", baguette: "\uEF3D", balcony: "\uF816", balloon: "\uEA25", ballot: "\uE9C8", ballot-outline: "\uE9C9", ballot-recount: "\uEC38", ballot-recount-outline: "\uEC39", bandage: "\uEDAE", bank: "\uE06F", bank-check: "\uF654", bank-minus: "\uEDAF", bank-off: "\uF655", bank-off-outline: "\uF656", bank-outline: "\uEE7F", bank-plus: "\uEDB0", bank-remove: "\uEDB1", bank-transfer: "\uEA26", bank-transfer-in: "\uEA27", bank-transfer-out: "\uEA28", barcode: "\uE070", barcode-off: "\uF235", barcode-scan: "\uE071", barley: "\uE072", barley-off: "\uEB5C", barn: "\uEB5D", barrel: "\uE073", barrel-outline: "\uFA27", baseball: "\uE851", baseball-bat: "\uE852", baseball-diamond: "\uF5EB", baseball-diamond-outline: "\uF5EC", bash: "\uF182", basket: "\uE075", basket-check: "\uF8E4", basket-check-outline: "\uF8E5", basket-fill: "\uE076", basket-minus: "\uF522", basket-minus-outline: "\uF523", basket-off: "\uF524", basket-off-outline: "\uF525", basket-outline: "\uF180", basket-plus: "\uF526", basket-plus-outline: "\uF527", basket-remove: "\uF528", basket-remove-outline: "\uF529", basket-unfill: "\uE077", basketball: "\uE805", basketball-hoop: "\uEC3A", basketball-hoop-outline: "\uEC3B", bat: "\uEB5E", bathtub: "\uF817", bathtub-outline: "\uF818", battery: "\uE078", battery-10: "\uE079", battery-10-bluetooth: "\uE93D", battery-20: "\uE07A", battery-20-bluetooth: "\uE93E", battery-30: "\uE07B", battery-30-bluetooth: "\uE93F", battery-40: "\uE07C", battery-40-bluetooth: "\uE940", battery-50: "\uE07D", battery-50-bluetooth: "\uE941", battery-60: "\uE07E", battery-60-bluetooth: "\uE942", battery-70: "\uE07F", battery-70-bluetooth: "\uE943", battery-80: "\uE080", battery-80-bluetooth: "\uE944", battery-90: "\uE081", battery-90-bluetooth: "\uE945", battery-alert: "\uE082", battery-alert-bluetooth: "\uE946", battery-alert-variant: "\uF0CB", battery-alert-variant-outline: "\uF0CC", battery-arrow-down: "\uF7DD", battery-arrow-down-outline: "\uF7DE", battery-arrow-up: "\uF7DF", battery-arrow-up-outline: "\uF7E0", battery-bluetooth: "\uE947", battery-bluetooth-variant: "\uE948", battery-charging: "\uE083", battery-charging-10: "\uE89B", battery-charging-100: "\uE084", battery-charging-20: "\uE085", battery-charging-30: "\uE086", battery-charging-40: "\uE087", battery-charging-50: "\uE89C", battery-charging-60: "\uE088", battery-charging-70: "\uE89D", battery-charging-80: "\uE089", battery-charging-90: "\uE08A", battery-charging-high: "\uF2A5", battery-charging-low: "\uF2A3", battery-charging-medium: "\uF2A4", battery-charging-outline: "\uE89E", battery-charging-wireless: "\uE806", battery-charging-wireless-10: "\uE807", battery-charging-wireless-20: "\uE808", battery-charging-wireless-30: "\uE809", battery-charging-wireless-40: "\uE80A", battery-charging-wireless-50: "\uE80B", battery-charging-wireless-60: "\uE80C", battery-charging-wireless-70: "\uE80D", battery-charging-wireless-80: "\uE80E", battery-charging-wireless-90: "\uE80F", battery-charging-wireless-alert: "\uE810", battery-charging-wireless-outline: "\uE811", battery-check: "\uF7E1", battery-check-outline: "\uF7E2", battery-clock: "\uF9E4", battery-clock-outline: "\uF9E5", battery-heart: "\uF20E", battery-heart-outline: "\uF20F", battery-heart-variant: "\uF210", battery-high: "\uF2A2", battery-lock: "\uF79B", battery-lock-open: "\uF79C", battery-low: "\uF2A0", battery-medium: "\uF2A1", battery-minus: "\uF7E3", battery-minus-outline: "\uF7E4", battery-minus-variant: "\uE08B", battery-negative: "\uE08C", battery-off: "\uF25C", battery-off-outline: "\uF25D", battery-outline: "\uE08D", battery-plus: "\uF7E5", battery-plus-outline: "\uF7E6", battery-plus-variant: "\uE08E", battery-positive: "\uE08F", battery-remove: "\uF7E7", battery-remove-outline: "\uF7E8", battery-sync: "\uF833", battery-sync-outline: "\uF834", battery-unknown: "\uE090", battery-unknown-bluetooth: "\uE949", beach: "\uE091", beaker: "\uECE9", beaker-alert: "\uF228", beaker-alert-outline: "\uF229", beaker-check: "\uF22A", beaker-check-outline: "\uF22B", beaker-minus: "\uF22C", beaker-minus-outline: "\uF22D", beaker-outline: "\uE68F", beaker-plus: "\uF22E", beaker-plus-outline: "\uF22F", beaker-question: "\uF230", beaker-question-outline: "\uF231", beaker-remove: "\uF232", beaker-remove-outline: "\uF233", bed: "\uE2E2", bed-double: "\uEFD3", bed-double-outline: "\uEFD2", bed-empty: "\uE89F", bed-king: "\uEFD1", bed-king-outline: "\uEFD0", bed-outline: "\uE098", bed-queen: "\uEFCF", bed-queen-outline: "\uEFDA", bed-single: "\uF06C", bed-single-outline: "\uF06D", bee: "\uEFA0", bee-flower: "\uEFA1", beehive-off-outline: "\uF3EC", beehive-outline: "\uF0CD", beekeeper: "\uF4E1", beer: "\uE097", beer-outline: "\uF30B", bell: "\uE099", bell-alert: "\uED58", bell-alert-outline: "\uEE80", bell-badge: "\uF16A", bell-badge-outline: "\uE177", bell-cancel: "\uF3E6", bell-cancel-outline: "\uF3E7", bell-check: "\uF1E4", bell-check-outline: "\uF1E5", bell-circle: "\uED59", bell-circle-outline: "\uED5A", bell-cog: "\uFA28", bell-cog-outline: "\uFA29", bell-minus: "\uF3E8", bell-minus-outline: "\uF3E9", bell-off: "\uE09A", bell-off-outline: "\uEA90", bell-outline: "\uE09B", bell-plus: "\uE09C", bell-plus-outline: "\uEA91", bell-remove: "\uF3EA", bell-remove-outline: "\uF3EB", bell-ring: "\uE09D", bell-ring-outline: "\uE09E", bell-sleep: "\uE09F", bell-sleep-outline: "\uEA92", beta: "\uE0A0", betamax: "\uE9CA", biathlon: "\uEE13", bicycle: "\uF09B", bicycle-basket: "\uF234", bicycle-cargo: "\uF89B", bicycle-electric: "\uF5B3", bicycle-penny-farthing: "\uF5E8", bike: "\uE0A2", bike-fast: "\uF11E", billboard: "\uF00F", billiards: "\uEB60", billiards-rack: "\uEB61", binoculars: "\uE0A4", bio: "\uE0A5", biohazard: "\uE0A6", bird: "\uF5C5", bitbucket: "\uE0A7", bitcoin: "\uE812", black-mesa: "\uE0A8", blender: "\uECEA", blender-outline: "\uF819", blender-software: "\uE0AA", blinds: "\uE0AB", blinds-horizontal: "\uFA2A", blinds-horizontal-closed: "\uFA2B", blinds-open: "\uF010", blinds-vertical: "\uFA2C", blinds-vertical-closed: "\uFA2D", block-helper: "\uE0AC", blood-bag: "\uECEB", bluetooth: "\uE0AE", bluetooth-audio: "\uE0AF", bluetooth-connect: "\uE0B0", bluetooth-off: "\uE0B1", bluetooth-settings: "\uE0B2", bluetooth-transfer: "\uE0B3", blur: "\uE0B4", blur-linear: "\uE0B5", blur-off: "\uE0B6", blur-radial: "\uE0B7", bolt: "\uEDB2", bomb: "\uE690", bomb-off: "\uE6C4", bone: "\uE0B8", bone-off: "\uF9DF", book: "\uE0B9", book-account: "\uF3AC", book-account-outline: "\uF3AD", book-alert: "\uF67B", book-alert-outline: "\uF67C", book-alphabet: "\uE61C", book-arrow-down: "\uF67D", book-arrow-down-outline: "\uF67E", book-arrow-left: "\uF67F", book-arrow-left-outline: "\uF680", book-arrow-right: "\uF681", book-arrow-right-outline: "\uF682", book-arrow-up: "\uF683", book-arrow-up-outline: "\uF684", book-cancel: "\uF685", book-cancel-outline: "\uF686", book-check: "\uF4F2", book-check-outline: "\uF4F3", book-clock: "\uF687", book-clock-outline: "\uF688", book-cog: "\uF689", book-cog-outline: "\uF68A", book-cross: "\uE0A1", book-edit: "\uF68B", book-edit-outline: "\uF68C", book-education: "\uF6C8", book-education-outline: "\uF6C9", book-heart: "\uFA1C", book-heart-outline: "\uFA1D", book-information-variant: "\uF06E", book-lock: "\uE799", book-lock-open: "\uE79A", book-lock-open-outline: "\uF68D", book-lock-outline: "\uF68E", book-marker: "\uF68F", book-marker-outline: "\uF690", book-minus: "\uE5D8", book-minus-multiple: "\uEA93", book-minus-multiple-outline: "\uE90A", book-minus-outline: "\uF691", book-multiple: "\uE0BA", book-multiple-outline: "\uE435", book-music: "\uE066", book-music-outline: "\uF692", book-off: "\uF693", book-off-outline: "\uF694", book-open: "\uE0BC", book-open-blank-variant: "\uE0BD", book-open-outline: "\uEB62", book-open-page-variant: "\uE5D9", book-open-page-variant-outline: "\uF5D5", book-open-variant: "\uF4F6", book-outline: "\uEB63", book-play: "\uEE81", book-play-outline: "\uEE82", book-plus: "\uE5DA", book-plus-multiple: "\uEA94", book-plus-multiple-outline: "\uEADD", book-plus-outline: "\uF695", book-refresh: "\uF696", book-refresh-outline: "\uF697", book-remove: "\uEA96", book-remove-multiple: "\uEA95", book-remove-multiple-outline: "\uE4C9", book-remove-outline: "\uF698", book-search: "\uEE83", book-search-outline: "\uEE84", book-settings: "\uF699", book-settings-outline: "\uF69A", book-sync: "\uF69B", book-sync-outline: "\uF6C7", book-variant: "\uE0BE", book-variant-multiple: "\uE0BB", bookmark: "\uE0BF", bookmark-box-multiple: "\uF96B", bookmark-box-multiple-outline: "\uF96C", bookmark-check: "\uE0C0", bookmark-check-outline: "\uF37A", bookmark-minus: "\uE9CB", bookmark-minus-outline: "\uE9CC", bookmark-multiple: "\uEE14", bookmark-multiple-outline: "\uEE15", bookmark-music: "\uE0C1", bookmark-music-outline: "\uF378", bookmark-off: "\uE9CD", bookmark-off-outline: "\uE9CE", bookmark-outline: "\uE0C2", bookmark-plus: "\uE0C4", bookmark-plus-outline: "\uE0C3", bookmark-remove: "\uE0C5", bookmark-remove-outline: "\uF379", bookshelf: "\uF25E", boom-gate: "\uEE85", boom-gate-alert: "\uEE86", boom-gate-alert-outline: "\uEE87", boom-gate-arrow-down: "\uEE88", boom-gate-arrow-down-outline: "\uEE89", boom-gate-arrow-up: "\uEE8B", boom-gate-arrow-up-outline: "\uEE8C", boom-gate-outline: "\uEE8A", boom-gate-up: "\uF7F8", boom-gate-up-outline: "\uF7F9", boombox: "\uE5DB", boomerang: "\uF0CE", bootstrap: "\uE6C5", border-all: "\uE0C6", border-all-variant: "\uE8A0", border-bottom: "\uE0C7", border-bottom-variant: "\uE8A1", border-color: "\uE0C8", border-horizontal: "\uE0C9", border-inside: "\uE0CA", border-left: "\uE0CB", border-left-variant: "\uE8A2", border-none: "\uE0CC", border-none-variant: "\uE8A3", border-outside: "\uE0CD", border-right: "\uE0CE", border-right-variant: "\uE8A4", border-style: "\uE0CF", border-top: "\uE0D0", border-top-variant: "\uE8A5", border-vertical: "\uE0D1", bottle-soda: "\uF06F", bottle-soda-classic: "\uF070", bottle-soda-classic-outline: "\uF362", bottle-soda-outline: "\uF071", bottle-tonic: "\uF12D", bottle-tonic-outline: "\uF12E", bottle-tonic-plus: "\uF12F", bottle-tonic-plus-outline: "\uF130", bottle-tonic-skull: "\uF131", bottle-tonic-skull-outline: "\uF132", bottle-wine: "\uE853", bottle-wine-outline: "\uF30F", bow-arrow: "\uF840", bow-tie: "\uE677", bowl: "\uE28D", bowl-mix: "\uE616", bowl-mix-outline: "\uE2E3", bowl-outline: "\uE2A8", bowling: "\uE0D2", box: "\uE0D3", box-cutter: "\uE0D4", box-cutter-off: "\uEB49", box-shadow: "\uE636", boxing-glove: "\uEB64", braille: "\uE9CF", brain: "\uE9D0", bread-slice: "\uECED", bread-slice-outline: "\uECEE", bridge: "\uE617", briefcase: "\uE0D5", briefcase-account: "\uECEF", briefcase-account-outline: "\uECF0", briefcase-arrow-left-right: "\uFA8C", briefcase-arrow-left-right-outline: "\uFA8D", briefcase-arrow-up-down: "\uFA8E", briefcase-arrow-up-down-outline: "\uFA8F", briefcase-check: "\uE0D6", briefcase-check-outline: "\uF31D", briefcase-clock: "\uF0CF", briefcase-clock-outline: "\uF0D0", briefcase-download: "\uE0D7", briefcase-download-outline: "\uEC3C", briefcase-edit: "\uEA97", briefcase-edit-outline: "\uEC3D", briefcase-eye: "\uF7D8", briefcase-eye-outline: "\uF7D9", briefcase-minus: "\uEA29", briefcase-minus-outline: "\uEC3E", briefcase-off: "\uF657", briefcase-off-outline: "\uF658", briefcase-outline: "\uE813", briefcase-plus: "\uEA2A", briefcase-plus-outline: "\uEC3F", briefcase-remove: "\uEA2B", briefcase-remove-outline: "\uEC40", briefcase-search: "\uEA2C", briefcase-search-outline: "\uEC41", briefcase-upload: "\uE0D8", briefcase-upload-outline: "\uEC42", briefcase-variant: "\uF493", briefcase-variant-off: "\uF659", briefcase-variant-off-outline: "\uF65A", briefcase-variant-outline: "\uF494", brightness-1: "\uE0D9", brightness-2: "\uE0DA", brightness-3: "\uE0DB", brightness-4: "\uE0DC", brightness-5: "\uE0DD", brightness-6: "\uE0DE", brightness-7: "\uE0DF", brightness-auto: "\uE0E0", brightness-percent: "\uECF1", broadcast: "\uF71F", broadcast-off: "\uF720", broom: "\uE0E1", brush: "\uE0E2", brush-off: "\uF770", brush-outline: "\uFA0C", brush-variant: "\uF812", bucket: "\uF414", bucket-outline: "\uF415", buffet: "\uE577", bug: "\uE0E3", bug-check: "\uEA2D", bug-check-outline: "\uEA2E", bug-outline: "\uEA2F", bugle: "\uEDB3", bulkhead-light: "\uFA2E", bulldozer: "\uEB21", bullet: "\uECF2", bulletin-board: "\uE0E4", bullhorn: "\uE0E5", bullhorn-outline: "\uEB22", bullhorn-variant: "\uF96D", bullhorn-variant-outline: "\uF96E", bullseye: "\uE5DC", bullseye-arrow: "\uE8C8", bulma: "\uF2E6", bunk-bed: "\uF301", bunk-bed-outline: "\uE096", bus: "\uE0E6", bus-alert: "\uEA98", bus-articulated-end: "\uE79B", bus-articulated-front: "\uE79C", bus-clock: "\uE8C9", bus-double-decker: "\uE79D", bus-electric: "\uF91C", bus-marker: "\uF211", bus-multiple: "\uEF3E", bus-school: "\uE79E", bus-side: "\uE79F", bus-stop: "\uF011", bus-stop-covered: "\uF012", bus-stop-uncovered: "\uF013", butterfly: "\uF588", butterfly-outline: "\uF589", cabin-a-frame: "\uF88B", cable-data: "\uF393", cached: "\uE0E7", cactus: "\uEDB4", cake: "\uE0E8", cake-layered: "\uE0E9", cake-variant: "\uE0EA", cake-variant-outline: "\uF7EF", calculator: "\uE0EB", calculator-variant: "\uEA99", calculator-variant-outline: "\uF5A5", calendar: "\uE0EC", calendar-account: "\uEED6", calendar-account-outline: "\uEED7", calendar-alert: "\uEA30", calendar-arrow-left: "\uF133", calendar-arrow-right: "\uF134", calendar-blank: "\uE0ED", calendar-blank-multiple: "\uF072", calendar-blank-outline: "\uEB65", calendar-check: "\uE0EE", calendar-check-outline: "\uEC43", calendar-clock: "\uE0EF", calendar-clock-outline: "\uF6E0", calendar-collapse-horizontal: "\uF89C", calendar-cursor: "\uF57A", calendar-edit: "\uE8A6", calendar-end: "\uF66B", calendar-expand-horizontal: "\uF89D", calendar-export: "\uEB23", calendar-heart: "\uE9D1", calendar-import: "\uEB24", calendar-lock: "\uF640", calendar-lock-outline: "\uF641", calendar-minus: "\uED5B", calendar-month: "\uEE16", calendar-month-outline: "\uEE17", calendar-multiple: "\uE0F0", calendar-multiple-check: "\uE0F1", calendar-multiselect: "\uEA31", calendar-outline: "\uEB66", calendar-plus: "\uE0F2", calendar-question: "\uE691", calendar-range: "\uE678", calendar-range-outline: "\uEB67", calendar-refresh: "\uE1E0", calendar-refresh-outline: "\uE202", calendar-remove: "\uE0F3", calendar-remove-outline: "\uEC44", calendar-search: "\uE94B", calendar-star: "\uE9D2", calendar-start: "\uF66C", calendar-sync: "\uEE8D", calendar-sync-outline: "\uEE8E", calendar-text: "\uE0F4", calendar-text-outline: "\uEC45", calendar-today: "\uE0F5", calendar-today-outline: "\uFA2F", calendar-week: "\uEA32", calendar-week-begin: "\uEA33", calendar-week-begin-outline: "\uFA30", calendar-week-end: "\uFA31", calendar-week-end-outline: "\uFA32", calendar-week-outline: "\uFA33", calendar-weekend: "\uEED8", calendar-weekend-outline: "\uEED9", call-made: "\uE0F6", call-merge: "\uE0F7", call-missed: "\uE0F8", call-received: "\uE0F9", call-split: "\uE0FA", camcorder: "\uE0FB", camcorder-off: "\uE0FE", camera: "\uE0FF", camera-account: "\uE8CA", camera-burst: "\uE692", camera-control: "\uEB68", camera-document: "\uF870", camera-document-off: "\uF871", camera-enhance: "\uE100", camera-enhance-outline: "\uEB69", camera-flip: "\uF5D8", camera-flip-outline: "\uF5D9", camera-front: "\uE101", camera-front-variant: "\uE102", camera-gopro: "\uE7A0", camera-image: "\uE8CB", camera-iris: "\uE103", camera-lock: "\uFA13", camera-lock-outline: "\uFA14", camera-marker: "\uF9A6", camera-marker-outline: "\uF9A7", camera-metering-center: "\uE7A1", camera-metering-matrix: "\uE7A2", camera-metering-partial: "\uE7A3", camera-metering-spot: "\uE7A4", camera-off: "\uE5DE", camera-off-outline: "\uF9BE", camera-outline: "\uED5C", camera-party-mode: "\uE104", camera-plus: "\uEEDA", camera-plus-outline: "\uEEDB", camera-rear: "\uE105", camera-rear-variant: "\uE106", camera-retake: "\uEE18", camera-retake-outline: "\uEE19", camera-switch: "\uE107", camera-switch-outline: "\uE849", camera-timer: "\uE108", camera-wireless: "\uEDB5", camera-wireless-outline: "\uEDB6", campfire: "\uEEDC", cancel: "\uE739", candelabra: "\uF7D1", candelabra-fire: "\uF7D2", candle: "\uE5E1", candy: "\uF96F", candy-off: "\uF970", candy-off-outline: "\uF971", candy-outline: "\uF972", candycane: "\uE109", cannabis: "\uE7A5", cannabis-off: "\uF66D", caps-lock: "\uEA9A", car: "\uE10A", car-2-plus: "\uF014", car-3-plus: "\uF015", car-arrow-left: "\uF3B1", car-arrow-right: "\uF3B2", car-back: "\uEE1A", car-battery: "\uE10B", car-brake-abs: "\uEC46", car-brake-alert: "\uEC47", car-brake-fluid-level: "\uF908", car-brake-hold: "\uED5D", car-brake-low-pressure: "\uF909", car-brake-parking: "\uED5E", car-brake-retarder: "\uF016", car-brake-temperature: "\uF90A", car-brake-worn-linings: "\uF90B", car-child-seat: "\uEFA2", car-clock: "\uF973", car-clutch: "\uF017", car-cog: "\uF3CB", car-connected: "\uE10C", car-convertible: "\uE7A6", car-coolant-level: "\uF018", car-cruise-control: "\uED5F", car-defrost-front: "\uED60", car-defrost-rear: "\uED61", car-door: "\uEB6A", car-door-lock: "\uF09C", car-electric: "\uEB6B", car-electric-outline: "\uF5B4", car-emergency: "\uF60E", car-esp: "\uEC48", car-estate: "\uE7A7", car-hatchback: "\uE7A8", car-info: "\uF1BD", car-key: "\uEB6C", car-lifted-pickup: "\uF52C", car-light-alert: "\uF90C", car-light-dimmed: "\uEC49", car-light-fog: "\uEC4A", car-light-high: "\uEC4B", car-limousine: "\uE8CC", car-multiple: "\uEB6D", car-off: "\uEE1B", car-outline: "\uF4EC", car-parking-lights: "\uED62", car-pickup: "\uE7A9", car-seat: "\uEFA3", car-seat-cooler: "\uEFA4", car-seat-heater: "\uEFA5", car-select: "\uF878", car-settings: "\uF3CC", car-shift-pattern: "\uEF3F", car-side: "\uE7AA", car-speed-limiter: "\uF90D", car-sports: "\uE7AB", car-tire-alert: "\uEC4C", car-traction-control: "\uED63", car-turbocharger: "\uF019", car-wash: "\uE10D", car-windshield: "\uF01A", car-windshield-outline: "\uF01B", car-wireless: "\uF877", car-wrench: "\uF813", carabiner: "\uF4BF", caravan: "\uE7AC", card: "\uEB6E", card-account-details: "\uE5D1", card-account-details-outline: "\uEDAA", card-account-details-star: "\uE2A2", card-account-details-star-outline: "\uE6DA", card-account-mail: "\uE18D", card-account-mail-outline: "\uEE97", card-account-phone: "\uEE98", card-account-phone-outline: "\uEE99", card-bulleted: "\uEB6F", card-bulleted-off: "\uEB70", card-bulleted-off-outline: "\uEB71", card-bulleted-outline: "\uEB72", card-bulleted-settings: "\uEB73", card-bulleted-settings-outline: "\uEB74", card-minus: "\uF5FF", card-minus-outline: "\uF600", card-multiple: "\uF7F0", card-multiple-outline: "\uF7F1", card-off: "\uF601", card-off-outline: "\uF602", card-outline: "\uEB75", card-plus: "\uF1FE", card-plus-outline: "\uF1FF", card-remove: "\uF603", card-remove-outline: "\uF604", card-search: "\uF073", card-search-outline: "\uF074", card-text: "\uEB76", card-text-outline: "\uEB77", cards: "\uE637", cards-club: "\uE8CD", cards-club-outline: "\uF89E", cards-diamond: "\uE8CE", cards-diamond-outline: "\uF01C", cards-heart: "\uE8CF", cards-heart-outline: "\uF89F", cards-outline: "\uE638", cards-playing: "\uF8A0", cards-playing-club: "\uF8A1", cards-playing-club-multiple: "\uF8A2", cards-playing-club-multiple-outline: "\uF8A3", cards-playing-club-outline: "\uF8A4", cards-playing-diamond: "\uF8A5", cards-playing-diamond-multiple: "\uF8A6", cards-playing-diamond-multiple-outline: "\uF8A7", cards-playing-diamond-outline: "\uF8A8", cards-playing-heart: "\uF8A9", cards-playing-heart-multiple: "\uF8AA", cards-playing-heart-multiple-outline: "\uF8AB", cards-playing-heart-outline: "\uF8AC", cards-playing-outline: "\uE639", cards-playing-spade: "\uF8AD", cards-playing-spade-multiple: "\uF8AE", cards-playing-spade-multiple-outline: "\uF8AF", cards-playing-spade-outline: "\uF8B0", cards-spade: "\uE8D0", cards-spade-outline: "\uF8B1", cards-variant: "\uE6C6", carrot: "\uE10E", cart: "\uE10F", cart-arrow-down: "\uED65", cart-arrow-right: "\uEC4D", cart-arrow-up: "\uED66", cart-check: "\uF5E9", cart-heart: "\uF8DF", cart-minus: "\uED67", cart-off: "\uE66A", cart-outline: "\uE110", cart-plus: "\uE111", cart-remove: "\uED68", cart-variant: "\uF5EA", case-sensitive-alt: "\uE112", cash: "\uE113", cash-100: "\uE114", cash-check: "\uF4ED", cash-clock: "\uFA90", cash-fast: "\uF85B", cash-lock: "\uF4E9", cash-lock-open: "\uF4EA", cash-marker: "\uEDB7", cash-minus: "\uF25F", cash-multiple: "\uE115", cash-plus: "\uF260", cash-refund: "\uEA9B", cash-register: "\uECF3", cash-remove: "\uF261", cash-sync: "\uFA91", cassette: "\uE9D3", cast: "\uE117", cast-audio: "\uF01D", cast-audio-variant: "\uF748", cast-connected: "\uE118", cast-education: "\uEE1C", cast-off: "\uE789", cast-variant: "\uE01E", castle: "\uE119", cat: "\uE11A", cctv: "\uE7AD", cctv-off: "\uF85E", ceiling-fan: "\uF796", ceiling-fan-light: "\uF797", ceiling-light: "\uE768", ceiling-light-multiple: "\uF8DC", ceiling-light-multiple-outline: "\uF8DD", ceiling-light-outline: "\uF7C6", cellphone: "\uE11B", cellphone-arrow-down: "\uE9D4", cellphone-arrow-down-variant: "\uF9C4", cellphone-basic: "\uE11D", cellphone-charging: "\uF396", cellphone-check: "\uF7FC", cellphone-cog: "\uE950", cellphone-dock: "\uE11E", cellphone-information: "\uEF40", cellphone-key: "\uE94D", cellphone-link: "\uE120", cellphone-link-off: "\uE121", cellphone-lock: "\uE94E", cellphone-marker: "\uF839", cellphone-message: "\uE8D2", cellphone-message-off: "\uF0D1", cellphone-nfc: "\uEE8F", cellphone-nfc-off: "\uF2D7", cellphone-off: "\uE94F", cellphone-play: "\uF01E", cellphone-remove: "\uE94C", cellphone-screenshot: "\uEA34", cellphone-settings: "\uE122", cellphone-sound: "\uE951", cellphone-text: "\uE8D1", cellphone-wireless: "\uE814", centos: "\uF119", certificate: "\uE123", certificate-outline: "\uF187", chair-rolling: "\uEF47", chair-school: "\uE124", chandelier: "\uF792", charity: "\uEC4E", chart-arc: "\uE125", chart-areaspline: "\uE126", chart-areaspline-variant: "\uEE90", chart-bar: "\uE127", chart-bar-stacked: "\uE769", chart-bell-curve: "\uEC4F", chart-bell-curve-cumulative: "\uEFA6", chart-box: "\uF54C", chart-box-outline: "\uF54D", chart-box-plus-outline: "\uF54E", chart-bubble: "\uE5E2", chart-donut: "\uE7AE", chart-donut-variant: "\uE7AF", chart-gantt: "\uE66B", chart-histogram: "\uE128", chart-line: "\uE129", chart-line-stacked: "\uE76A", chart-line-variant: "\uE7B0", chart-multiline: "\uE8D3", chart-multiple: "\uF212", chart-pie: "\uE12A", chart-ppf: "\uF37F", chart-sankey: "\uF1DE", chart-sankey-variant: "\uF1DF", chart-scatter-plot: "\uEE91", chart-scatter-plot-hexbin: "\uE66C", chart-timeline: "\uE66D", chart-timeline-variant: "\uEE92", chart-timeline-variant-shimmer: "\uF5B5", chart-tree: "\uEE93", chart-waterfall: "\uF917", chat: "\uEB78", chat-alert: "\uEB79", chat-alert-outline: "\uF2C8", chat-minus: "\uF40F", chat-minus-outline: "\uF412", chat-outline: "\uEEDD", chat-plus: "\uF40E", chat-plus-outline: "\uF411", chat-processing: "\uEB7A", chat-processing-outline: "\uF2C9", chat-question: "\uF737", chat-question-outline: "\uF738", chat-remove: "\uF410", chat-remove-outline: "\uF413", chat-sleep: "\uF2D0", chat-sleep-outline: "\uF2D1", check: "\uE12B", check-all: "\uE12C", check-bold: "\uEE1D", check-circle: "\uE5DF", check-circle-outline: "\uE5E0", check-decagram: "\uE790", check-decagram-outline: "\uF73F", check-network: "\uEC52", check-network-outline: "\uEC53", check-outline: "\uE854", check-underline: "\uEE1E", check-underline-circle: "\uEE1F", check-underline-circle-outline: "\uEE20", checkbook: "\uEA9C", checkbox-blank: "\uE12D", checkbox-blank-badge: "\uF175", checkbox-blank-badge-outline: "\uE116", checkbox-blank-circle: "\uE12E", checkbox-blank-circle-outline: "\uE12F", checkbox-blank-off: "\uF2EB", checkbox-blank-off-outline: "\uF2EC", checkbox-blank-outline: "\uE130", checkbox-intermediate: "\uE855", checkbox-marked: "\uE131", checkbox-marked-circle: "\uE132", checkbox-marked-circle-outline: "\uE133", checkbox-marked-circle-plus-outline: "\uF926", checkbox-marked-outline: "\uE134", checkbox-multiple-blank: "\uE135", checkbox-multiple-blank-circle: "\uE63A", checkbox-multiple-blank-circle-outline: "\uE63B", checkbox-multiple-blank-outline: "\uE136", checkbox-multiple-marked: "\uE137", checkbox-multiple-marked-circle: "\uE63C", checkbox-multiple-marked-circle-outline: "\uE63D", checkbox-multiple-marked-outline: "\uE138", checkbox-multiple-outline: "\uEC50", checkbox-outline: "\uEC51", checkerboard: "\uE139", checkerboard-minus: "\uF201", checkerboard-plus: "\uF200", checkerboard-remove: "\uF202", cheese: "\uF2B8", cheese-off: "\uF3ED", chef-hat: "\uEB7B", chemical-weapon: "\uE13A", chess-bishop: "\uE85B", chess-king: "\uE856", chess-knight: "\uE857", chess-pawn: "\uE858", chess-queen: "\uE859", chess-rook: "\uE85A", chevron-double-down: "\uE13B", chevron-double-left: "\uE13C", chevron-double-right: "\uE13D", chevron-double-up: "\uE13E", chevron-down: "\uE13F", chevron-down-box: "\uE9D5", chevron-down-box-outline: "\uE9D6", chevron-down-circle: "\uEB25", chevron-down-circle-outline: "\uEB26", chevron-left: "\uE140", chevron-left-box: "\uE9D7", chevron-left-box-outline: "\uE9D8", chevron-left-circle: "\uEB27", chevron-left-circle-outline: "\uEB28", chevron-right: "\uE141", chevron-right-box: "\uE9D9", chevron-right-box-outline: "\uE9DA", chevron-right-circle: "\uEB29", chevron-right-circle-outline: "\uEB2A", chevron-triple-down: "\uEDB8", chevron-triple-left: "\uEDB9", chevron-triple-right: "\uEDBA", chevron-triple-up: "\uEDBB", chevron-up: "\uE142", chevron-up-box: "\uE9DB", chevron-up-box-outline: "\uE9DC", chevron-up-circle: "\uEB2B", chevron-up-circle-outline: "\uEB2C", chili-alert: "\uF7E9", chili-alert-outline: "\uF7EA", chili-hot: "\uE7B1", chili-hot-outline: "\uF7EB", chili-medium: "\uE7B2", chili-medium-outline: "\uF7EC", chili-mild: "\uE7B3", chili-mild-outline: "\uF7ED", chili-off: "\uF466", chili-off-outline: "\uF7EE", chip: "\uE619", church: "\uE143", cigar: "\uF188", cigar-off: "\uF41A", circle: "\uE764", circle-box: "\uF5DB", circle-box-outline: "\uF5DC", circle-double: "\uEE94", circle-edit-outline: "\uE8D4", circle-expand: "\uEE95", circle-half: "\uF394", circle-half-full: "\uF395", circle-medium: "\uE9DD", circle-multiple: "\uEB37", circle-multiple-outline: "\uE694", circle-off-outline: "\uF0D2", circle-opacity: "\uF852", circle-outline: "\uE765", circle-slice-1: "\uEA9D", circle-slice-2: "\uEA9E", circle-slice-3: "\uEA9F", circle-slice-4: "\uEAA0", circle-slice-5: "\uEAA1", circle-slice-6: "\uEAA2", circle-slice-7: "\uEAA3", circle-slice-8: "\uEAA4", circle-small: "\uE9DE", circular-saw: "\uEE21", city: "\uE145", city-variant: "\uEA35", city-variant-outline: "\uEA36", clipboard: "\uE146", clipboard-account: "\uE147", clipboard-account-outline: "\uEC54", clipboard-alert: "\uE148", clipboard-alert-outline: "\uECF6", clipboard-arrow-down: "\uE149", clipboard-arrow-down-outline: "\uEC55", clipboard-arrow-left: "\uE14A", clipboard-arrow-left-outline: "\uECF7", clipboard-arrow-right: "\uECF8", clipboard-arrow-right-outline: "\uECF9", clipboard-arrow-up: "\uEC56", clipboard-arrow-up-outline: "\uEC57", clipboard-check: "\uE14D", clipboard-check-multiple: "\uF262", clipboard-check-multiple-outline: "\uF263", clipboard-check-outline: "\uE8A7", clipboard-clock: "\uF6E1", clipboard-clock-outline: "\uF6E2", clipboard-edit: "\uF4E4", clipboard-edit-outline: "\uF4E5", clipboard-file: "\uF264", clipboard-file-outline: "\uF265", clipboard-flow: "\uE6C7", clipboard-flow-outline: "\uF116", clipboard-list: "\uF0D3", clipboard-list-outline: "\uF0D4", clipboard-minus: "\uF617", clipboard-minus-outline: "\uF618", clipboard-multiple: "\uF266", clipboard-multiple-outline: "\uF267", clipboard-off: "\uF619", clipboard-off-outline: "\uF61A", clipboard-outline: "\uE14B", clipboard-play: "\uEC58", clipboard-play-multiple: "\uF268", clipboard-play-multiple-outline: "\uF269", clipboard-play-outline: "\uEC59", clipboard-plus: "\uE750", clipboard-plus-outline: "\uF31E", clipboard-pulse: "\uE85C", clipboard-pulse-outline: "\uE85D", clipboard-remove: "\uF61B", clipboard-remove-outline: "\uF61C", clipboard-search: "\uF61D", clipboard-search-outline: "\uF61E", clipboard-text: "\uE14C", clipboard-text-clock: "\uF8F8", clipboard-text-clock-outline: "\uF8F9", clipboard-text-multiple: "\uF26A", clipboard-text-multiple-outline: "\uF26B", clipboard-text-off: "\uF61F", clipboard-text-off-outline: "\uF620", clipboard-text-outline: "\uEA37", clipboard-text-play: "\uEC5A", clipboard-text-play-outline: "\uEC5B", clipboard-text-search: "\uF621", clipboard-text-search-outline: "\uF622", clippy: "\uE14E", clock: "\uE953", clock-alert: "\uE954", clock-alert-outline: "\uE5CD", clock-check: "\uEFA7", clock-check-outline: "\uEFA8", clock-digital: "\uEE96", clock-edit: "\uF9B9", clock-edit-outline: "\uF9BA", clock-end: "\uE150", clock-fast: "\uE151", clock-in: "\uE152", clock-minus: "\uF862", clock-minus-outline: "\uF863", clock-out: "\uE153", clock-outline: "\uE14F", clock-plus: "\uF860", clock-plus-outline: "\uF861", clock-remove: "\uF864", clock-remove-outline: "\uF865", clock-start: "\uE154", clock-time-eight: "\uF445", clock-time-eight-outline: "\uF451", clock-time-eleven: "\uF448", clock-time-eleven-outline: "\uF454", clock-time-five: "\uF442", clock-time-five-outline: "\uF44E", clock-time-four: "\uF441", clock-time-four-outline: "\uF44D", clock-time-nine: "\uF446", clock-time-nine-outline: "\uF452", clock-time-one: "\uF43E", clock-time-one-outline: "\uF44A", clock-time-seven: "\uF444", clock-time-seven-outline: "\uF450", clock-time-six: "\uF443", clock-time-six-outline: "\uF44F", clock-time-ten: "\uF447", clock-time-ten-outline: "\uF453", clock-time-three: "\uF440", clock-time-three-outline: "\uF44C", clock-time-twelve: "\uF449", clock-time-twelve-outline: "\uF455", clock-time-two: "\uF43F", clock-time-two-outline: "\uF44B", close: "\uE155", close-box: "\uE156", close-box-multiple: "\uEC5C", close-box-multiple-outline: "\uEC5D", close-box-outline: "\uE157", close-circle: "\uE158", close-circle-multiple: "\uE629", close-circle-multiple-outline: "\uE882", close-circle-outline: "\uE159", close-network: "\uE15A", close-network-outline: "\uEC5E", close-octagon: "\uE15B", close-octagon-outline: "\uE15C", close-outline: "\uE6C8", close-thick: "\uF397", closed-caption: "\uE15D", closed-caption-outline: "\uEDBC", cloud: "\uE15E", cloud-alert: "\uE9DF", cloud-braces: "\uE7B4", cloud-check: "\uE15F", cloud-check-outline: "\uF2CB", cloud-circle: "\uE160", cloud-download: "\uE161", cloud-download-outline: "\uEB7C", cloud-lock: "\uF1F0", cloud-lock-outline: "\uF1F1", cloud-off-outline: "\uE163", cloud-outline: "\uE162", cloud-percent: "\uFA34", cloud-percent-outline: "\uFA35", cloud-print: "\uE164", cloud-print-outline: "\uE165", cloud-question: "\uEA38", cloud-refresh: "\uE529", cloud-search: "\uE955", cloud-search-outline: "\uE956", cloud-sync: "\uE63E", cloud-sync-outline: "\uF2D5", cloud-tags: "\uE7B5", cloud-upload: "\uE166", cloud-upload-outline: "\uEB7D", clover: "\uE815", coach-lamp: "\uF01F", coach-lamp-variant: "\uFA36", coat-rack: "\uF09D", code-array: "\uE167", code-braces: "\uE168", code-braces-box: "\uF0D5", code-brackets: "\uE169", code-equal: "\uE16A", code-greater-than: "\uE16B", code-greater-than-or-equal: "\uE16C", code-json: "\uE625", code-less-than: "\uE16D", code-less-than-or-equal: "\uE16E", code-not-equal: "\uE16F", code-not-equal-variant: "\uE170", code-parentheses: "\uE171", code-parentheses-box: "\uF0D6", code-string: "\uE172", code-tags: "\uE173", code-tags-check: "\uE693", codepen: "\uE174", coffee: "\uE175", coffee-maker: "\uF09E", coffee-maker-check: "\uF930", coffee-maker-check-outline: "\uF931", coffee-maker-outline: "\uF81A", coffee-off: "\uEFA9", coffee-off-outline: "\uEFAA", coffee-outline: "\uE6C9", coffee-to-go: "\uE176", coffee-to-go-outline: "\uF30D", coffin: "\uEB7E", cog: "\uE492", cog-box: "\uE493", cog-clockwise: "\uF1DC", cog-counterclockwise: "\uF1DD", cog-off: "\uF3CD", cog-off-outline: "\uF3CE", cog-outline: "\uE8BA", cog-pause: "\uF932", cog-pause-outline: "\uF933", cog-play: "\uF934", cog-play-outline: "\uF935", cog-refresh: "\uF45D", cog-refresh-outline: "\uF45E", cog-stop: "\uF936", cog-stop-outline: "\uF937", cog-sync: "\uF45F", cog-sync-outline: "\uF460", cog-transfer: "\uF05A", cog-transfer-outline: "\uF05B", cogs: "\uE8D5", collage: "\uE63F", collapse-all: "\uEAA5", collapse-all-outline: "\uEAA6", color-helper: "\uE178", comma: "\uEE22", comma-box: "\uEE2A", comma-box-outline: "\uEE23", comma-circle: "\uEE24", comma-circle-outline: "\uEE25", comment: "\uE179", comment-account: "\uE17A", comment-account-outline: "\uE17B", comment-alert: "\uE17C", comment-alert-outline: "\uE17D", comment-arrow-left: "\uE9E0", comment-arrow-left-outline: "\uE9E1", comment-arrow-right: "\uE9E2", comment-arrow-right-outline: "\uE9E3", comment-bookmark: "\uF5AD", comment-bookmark-outline: "\uF5AE", comment-check: "\uE17E", comment-check-outline: "\uE17F", comment-edit: "\uF1BE", comment-edit-outline: "\uF2C3", comment-eye: "\uEA39", comment-eye-outline: "\uEA3A", comment-flash: "\uF5AF", comment-flash-outline: "\uF5B0", comment-minus: "\uF5DE", comment-minus-outline: "\uF5DF", comment-multiple: "\uE85E", comment-multiple-outline: "\uE180", comment-off: "\uF5E0", comment-off-outline: "\uF5E1", comment-outline: "\uE181", comment-plus: "\uE9E4", comment-plus-outline: "\uE182", comment-processing: "\uE183", comment-processing-outline: "\uE184", comment-question: "\uE816", comment-question-outline: "\uE185", comment-quote: "\uF020", comment-quote-outline: "\uF021", comment-remove: "\uE5DD", comment-remove-outline: "\uE186", comment-search: "\uEA3B", comment-search-outline: "\uEA3C", comment-text: "\uE187", comment-text-multiple: "\uE85F", comment-text-multiple-outline: "\uE860", comment-text-outline: "\uE188", compare: "\uE189", compare-horizontal: "\uF491", compare-remove: "\uF8B2", compare-vertical: "\uF492", compass: "\uE18A", compass-off: "\uEB7F", compass-off-outline: "\uEB80", compass-outline: "\uE18B", compass-rose: "\uF381", compost: "\uFA37", cone: "\uF94B", cone-off: "\uF94C", connection: "\uF615", console: "\uE18C", console-line: "\uE7B6", console-network: "\uE8A8", console-network-outline: "\uEC5F", consolidate: "\uF0D7", contactless-payment: "\uED69", contactless-payment-circle: "\uE320", contactless-payment-circle-outline: "\uE407", contacts: "\uE6CA", contacts-outline: "\uE5B7", contain: "\uEA3D", contain-end: "\uEA3E", contain-start: "\uEA3F", content-copy: "\uE18E", content-cut: "\uE18F", content-duplicate: "\uE190", content-paste: "\uE191", content-save: "\uE192", content-save-alert: "\uEF41", content-save-alert-outline: "\uEF42", content-save-all: "\uE193", content-save-all-outline: "\uEF43", content-save-check: "\uF8E9", content-save-check-outline: "\uF8EA", content-save-cog: "\uF45A", content-save-cog-outline: "\uF45B", content-save-edit: "\uECFA", content-save-edit-outline: "\uECFB", content-save-move: "\uEE26", content-save-move-outline: "\uEE27", content-save-off: "\uF642", content-save-off-outline: "\uF643", content-save-outline: "\uE817", content-save-settings: "\uE61A", content-save-settings-outline: "\uEB2D", contrast: "\uE194", contrast-box: "\uE195", contrast-circle: "\uE196", controller-classic: "\uEB81", controller-classic-outline: "\uEB82", cookie: "\uE197", cookie-alert: "\uF6CF", cookie-alert-outline: "\uF6D0", cookie-check: "\uF6D1", cookie-check-outline: "\uF6D2", cookie-clock: "\uF6E3", cookie-clock-outline: "\uF6E4", cookie-cog: "\uF6D3", cookie-cog-outline: "\uF6D4", cookie-edit: "\uF6E5", cookie-edit-outline: "\uF6E6", cookie-lock: "\uF6E7", cookie-lock-outline: "\uF6E8", cookie-minus: "\uF6D9", cookie-minus-outline: "\uF6DA", cookie-off: "\uF6E9", cookie-off-outline: "\uF6EA", cookie-outline: "\uF6DD", cookie-plus: "\uF6D5", cookie-plus-outline: "\uF6D6", cookie-refresh: "\uF6EB", cookie-refresh-outline: "\uF6EC", cookie-remove: "\uF6D7", cookie-remove-outline: "\uF6D8", cookie-settings: "\uF6DB", cookie-settings-outline: "\uF6DC", coolant-temperature: "\uE3C7", copyleft: "\uF938", copyright: "\uE5E5", cordova: "\uE957", corn: "\uE7B7", corn-off: "\uF3EE", cosine-wave: "\uF478", counter: "\uE198", countertop: "\uF81B", countertop-outline: "\uF81C", cow: "\uE199", cow-off: "\uF8FB", cpu-32-bit: "\uEEDE", cpu-64-bit: "\uEEDF", cradle: "\uF98A", cradle-outline: "\uF990", crane: "\uE861", creation: "\uE673", creative-commons: "\uED6A", credit-card: "\uEFEE", credit-card-check: "\uF3CF", credit-card-check-outline: "\uF3D0", credit-card-chip: "\uF90E", credit-card-chip-outline: "\uF90F", credit-card-clock: "\uEEE0", credit-card-clock-outline: "\uEEE1", credit-card-edit: "\uF7D6", credit-card-edit-outline: "\uF7D7", credit-card-fast: "\uF910", credit-card-fast-outline: "\uF911", credit-card-lock: "\uF8E6", credit-card-lock-outline: "\uF8E7", credit-card-marker: "\uE6A7", credit-card-marker-outline: "\uEDBD", credit-card-minus: "\uEFAB", credit-card-minus-outline: "\uEFAC", credit-card-multiple: "\uEFEF", credit-card-multiple-outline: "\uE19B", credit-card-off: "\uEFF0", credit-card-off-outline: "\uE5E3", credit-card-outline: "\uE19A", credit-card-plus: "\uEFF1", credit-card-plus-outline: "\uE675", credit-card-refresh: "\uF644", credit-card-refresh-outline: "\uF645", credit-card-refund: "\uEFF2", credit-card-refund-outline: "\uEAA7", credit-card-remove: "\uEFAD", credit-card-remove-outline: "\uEFAE", credit-card-scan: "\uEFF3", credit-card-scan-outline: "\uE19C", credit-card-search: "\uF646", credit-card-search-outline: "\uF647", credit-card-settings: "\uEFF4", credit-card-settings-outline: "\uE8D6", credit-card-sync: "\uF648", credit-card-sync-outline: "\uF649", credit-card-wireless: "\uE801", credit-card-wireless-off: "\uE579", credit-card-wireless-off-outline: "\uE57A", credit-card-wireless-outline: "\uED6B", cricket: "\uED6C", crop: "\uE19D", crop-free: "\uE19E", crop-landscape: "\uE19F", crop-portrait: "\uE1A0", crop-rotate: "\uE695", crop-square: "\uE1A1", cross: "\uE952", cross-bolnisi: "\uECEC", cross-celtic: "\uECF4", cross-outline: "\uECF5", crosshairs: "\uE1A2", crosshairs-gps: "\uE1A3", crosshairs-off: "\uEF44", crosshairs-question: "\uF135", crowd: "\uF974", crown: "\uE1A4", crown-circle: "\uF7DB", crown-circle-outline: "\uF7DC", crown-outline: "\uF1CF", cryengine: "\uE958", crystal-ball: "\uEB2E", cube: "\uE1A5", cube-off: "\uF41B", cube-off-outline: "\uF41C", cube-outline: "\uE1A6", cube-scan: "\uEB83", cube-send: "\uE1A7", cube-unfolded: "\uE1A8", cup: "\uE1A9", cup-off: "\uE5E4", cup-off-outline: "\uF37C", cup-outline: "\uF30E", cup-water: "\uE1AA", cupboard: "\uEF45", cupboard-outline: "\uEF46", cupcake: "\uE959", curling: "\uE862", currency-bdt: "\uE863", currency-brl: "\uEB84", currency-btc: "\uE1AB", currency-cny: "\uE7B9", currency-eth: "\uE7BA", currency-eur: "\uE1AC", currency-eur-off: "\uF314", currency-fra: "\uFA38", currency-gbp: "\uE1AD", currency-ils: "\uEC60", currency-inr: "\uE1AE", currency-jpy: "\uE7BB", currency-krw: "\uE7BC", currency-kzt: "\uE864", currency-mnt: "\uF511", currency-ngn: "\uE1AF", currency-php: "\uE9E5", currency-rial: "\uEE9B", currency-rub: "\uE1B0", currency-rupee: "\uF975", currency-sign: "\uE7BD", currency-try: "\uE1B1", currency-twd: "\uE7BE", currency-usd: "\uE1C0", currency-usd-off: "\uE679", current-ac: "\uF47F", current-dc: "\uE95B", cursor-default: "\uE1BF", cursor-default-click: "\uECFC", cursor-default-click-outline: "\uECFD", cursor-default-gesture: "\uF126", cursor-default-gesture-outline: "\uF127", cursor-default-outline: "\uE1BE", cursor-move: "\uE1BD", cursor-pointer: "\uE1BC", cursor-text: "\uE5E6", curtains: "\uF845", curtains-closed: "\uF846", cylinder: "\uF94D", cylinder-off: "\uF94E", dance-ballroom: "\uF5FA", dance-pole: "\uF577", data-matrix: "\uF53B", data-matrix-edit: "\uF53C", data-matrix-minus: "\uF53D", data-matrix-plus: "\uF53E", data-matrix-remove: "\uF53F", data-matrix-scan: "\uF540", database: "\uE1BB", database-alert: "\uF639", database-alert-outline: "\uF623", database-arrow-down: "\uF63A", database-arrow-down-outline: "\uF624", database-arrow-left: "\uF63B", database-arrow-left-outline: "\uF625", database-arrow-right: "\uF63C", database-arrow-right-outline: "\uF626", database-arrow-up: "\uF63D", database-arrow-up-outline: "\uF627", database-check: "\uEAA8", database-check-outline: "\uF628", database-clock: "\uF63E", database-clock-outline: "\uF629", database-cog: "\uF64A", database-cog-outline: "\uF64B", database-edit: "\uEB85", database-edit-outline: "\uF62A", database-export: "\uE95D", database-export-outline: "\uF62B", database-eye: "\uF91E", database-eye-off: "\uF91F", database-eye-off-outline: "\uF920", database-eye-outline: "\uF921", database-import: "\uE95C", database-import-outline: "\uF62C", database-lock: "\uEAA9", database-lock-outline: "\uF62D", database-marker: "\uF2F5", database-marker-outline: "\uF62E", database-minus: "\uE1BA", database-minus-outline: "\uF62F", database-off: "\uF63F", database-off-outline: "\uF630", database-outline: "\uF631", database-plus: "\uE1B9", database-plus-outline: "\uF632", database-refresh: "\uE5C1", database-refresh-outline: "\uF633", database-remove: "\uECFF", database-remove-outline: "\uF634", database-search: "\uE865", database-search-outline: "\uF635", database-settings: "\uED00", database-settings-outline: "\uF636", database-sync: "\uECFE", database-sync-outline: "\uF637", death-star: "\uE8D7", death-star-variant: "\uE8D8", deathly-hallows: "\uEB86", debian: "\uE8D9", debug-step-into: "\uE1B8", debug-step-out: "\uE1B7", debug-step-over: "\uE1B6", decagram: "\uE76B", decagram-outline: "\uE76C", decimal: "\uF0A0", decimal-comma: "\uF0A1", decimal-comma-decrease: "\uF0A2", decimal-comma-increase: "\uF0A3", decimal-decrease: "\uE1B5", decimal-increase: "\uE1B4", delete: "\uE1B3", delete-alert: "\uF0A4", delete-alert-outline: "\uF0A5", delete-circle: "\uE682", delete-circle-outline: "\uEB87", delete-clock: "\uF555", delete-clock-outline: "\uF556", delete-empty: "\uE6CB", delete-empty-outline: "\uEE9C", delete-forever: "\uE5E7", delete-forever-outline: "\uEB88", delete-off: "\uF0A6", delete-off-outline: "\uF0A7", delete-outline: "\uE9E6", delete-restore: "\uE818", delete-sweep: "\uE5E8", delete-sweep-outline: "\uEC61", delete-variant: "\uE1B2", delta: "\uE1C1", desk: "\uF238", desk-lamp: "\uE95E", deskphone: "\uE1C2", desktop-classic: "\uE7BF", desktop-mac: "\uE1C3", desktop-mac-dashboard: "\uE9E7", desktop-tower: "\uE1C4", desktop-tower-monitor: "\uEAAA", details: "\uE1C5", dev-to: "\uED6D", developer-board: "\uE696", deviantart: "\uE1C6", devices: "\uEFAF", dharmachakra: "\uE94A", diabetes: "\uF125", dialpad: "\uE61B", diameter: "\uEC62", diameter-outline: "\uEC63", diameter-variant: "\uEC64", diamond: "\uEB89", diamond-outline: "\uEB8A", diamond-stone: "\uE1C7", dice-1: "\uE1C9", dice-1-outline: "\uF149", dice-2: "\uE1CA", dice-2-outline: "\uF14A", dice-3: "\uE1CB", dice-3-outline: "\uF14B", dice-4: "\uE1CC", dice-4-outline: "\uF14C", dice-5: "\uE1CD", dice-5-outline: "\uF14D", dice-6: "\uE1CE", dice-6-outline: "\uF14E", dice-d10: "\uF152", dice-d10-outline: "\uE76E", dice-d12: "\uF153", dice-d12-outline: "\uE866", dice-d20: "\uF154", dice-d20-outline: "\uE5E9", dice-d4: "\uF14F", dice-d4-outline: "\uE5EA", dice-d6: "\uF150", dice-d6-outline: "\uE5EC", dice-d8: "\uF151", dice-d8-outline: "\uE5EB", dice-multiple: "\uE76D", dice-multiple-outline: "\uF155", digital-ocean: "\uF236", dip-switch: "\uE7C0", directions: "\uE1CF", directions-fork: "\uE640", disc: "\uE5ED", disc-alert: "\uE1D0", disc-player: "\uE95F", discord: "\uE66E", dishwasher: "\uEAAB", dishwasher-alert: "\uF1B7", dishwasher-off: "\uF1B8", disqus: "\uE1D1", distribute-horizontal-center: "\uF1C8", distribute-horizontal-left: "\uF1C7", distribute-horizontal-right: "\uF1C9", distribute-vertical-bottom: "\uF1CA", distribute-vertical-center: "\uF1CB", distribute-vertical-top: "\uF1CC", diversify: "\uF876", diving: "\uF976", diving-flippers: "\uEDBE", diving-helmet: "\uEDBF", diving-scuba: "\uEDC0", diving-scuba-flag: "\uEDC1", diving-scuba-tank: "\uEDC2", diving-scuba-tank-multiple: "\uEDC3", diving-snorkel: "\uEDC4", division: "\uE1D3", division-box: "\uE1D4", dlna: "\uEA40", dna: "\uE683", dns: "\uE1D5", dns-outline: "\uEB8B", dock-bottom: "\uF0A8", dock-left: "\uF0A9", dock-right: "\uF0AA", dock-top: "\uF512", dock-window: "\uF0AB", docker: "\uE867", doctor: "\uEA41", dog: "\uEA42", dog-service: "\uEAAC", dog-side: "\uEA43", dog-side-off: "\uF6ED", dolby: "\uE6B2", dolly: "\uEE9D", dolphin: "\uF8B3", domain: "\uE1D6", domain-off: "\uED6E", domain-plus: "\uF0AC", domain-remove: "\uF0AD", dome-light: "\uF41D", domino-mask: "\uF022", donkey: "\uE7C1", door: "\uE819", door-closed: "\uE81A", door-closed-lock: "\uF0AE", door-open: "\uE81B", door-sliding: "\uF81D", door-sliding-lock: "\uF81E", door-sliding-open: "\uF81F", doorbell: "\uF2E5", doorbell-video: "\uE868", dot-net: "\uEAAD", dots-circle: "\uF977", dots-grid: "\uF5FB", dots-hexagon: "\uF5FE", dots-horizontal: "\uE1D7", dots-horizontal-circle: "\uE7C2", dots-horizontal-circle-outline: "\uEB8C", dots-square: "\uF5FC", dots-triangle: "\uF5FD", dots-vertical: "\uE1D8", dots-vertical-circle: "\uE7C3", dots-vertical-circle-outline: "\uEB8D", download: "\uE1D9", download-box: "\uF461", download-box-outline: "\uF462", download-circle: "\uF463", download-circle-outline: "\uF464", download-lock: "\uF31F", download-lock-outline: "\uF320", download-multiple: "\uE9E8", download-network: "\uE6F3", download-network-outline: "\uEC65", download-off: "\uF0AF", download-off-outline: "\uF0B0", download-outline: "\uEB8E", drag: "\uE1DA", drag-horizontal: "\uE1DB", drag-horizontal-variant: "\uF2EF", drag-variant: "\uEB8F", drag-vertical: "\uE1DC", drag-vertical-variant: "\uF2F0", drama-masks: "\uED01", draw: "\uEF48", draw-pen: "\uF9B8", drawing: "\uE1DD", drawing-box: "\uE1DE", dresser: "\uEF49", dresser-outline: "\uEF4A", drone: "\uE1E1", dropbox: "\uE1E2", drupal: "\uE1E3", duck: "\uE1E4", dumbbell: "\uE1E5", dump-truck: "\uEC66", ear-hearing: "\uE7C4", ear-hearing-loop: "\uFAED", ear-hearing-off: "\uEA44", earbuds: "\uF84E", earbuds-off: "\uF84F", earbuds-off-outline: "\uF850", earbuds-outline: "\uF851", earth: "\uE1E6", earth-arrow-right: "\uF310", earth-box: "\uE6CC", earth-box-minus: "\uF406", earth-box-off: "\uE6CD", earth-box-plus: "\uF405", earth-box-remove: "\uF407", earth-minus: "\uF403", earth-off: "\uE1E7", earth-plus: "\uF402", earth-remove: "\uF404", egg: "\uEAAE", egg-easter: "\uEAAF", egg-fried: "\uF849", egg-off: "\uF3EF", egg-off-outline: "\uF3F0", egg-outline: "\uF3F1", eiffel-tower: "\uF56A", eight-track: "\uE9E9", eject: "\uE1E9", eject-outline: "\uEB90", electric-switch: "\uEE9E", electric-switch-closed: "\uF0D8", electron-framework: "\uF023", elephant: "\uE7C5", elevation-decline: "\uE1EA", elevation-rise: "\uE1EB", elevator: "\uE1EC", elevator-down: "\uF2C1", elevator-passenger: "\uF380", elevator-passenger-off: "\uF978", elevator-passenger-off-outline: "\uF979", elevator-passenger-outline: "\uF97A", elevator-up: "\uF2C0", ellipse: "\uEE9F", ellipse-outline: "\uEEA0", email: "\uE1ED", email-alert: "\uE6CE", email-alert-outline: "\uED41", email-box: "\uED02", email-check: "\uEAB0", email-check-outline: "\uEAB1", email-edit: "\uEEE2", email-edit-outline: "\uEEE3", email-fast: "\uF86E", email-fast-outline: "\uF86F", email-lock: "\uE1F0", email-mark-as-unread: "\uEB91", email-minus: "\uEEE4", email-minus-outline: "\uEEE5", email-multiple: "\uEEE6", email-multiple-outline: "\uEEE7", email-newsletter: "\uEFB0", email-off: "\uF3E2", email-off-outline: "\uF3E3", email-open: "\uE1EE", email-open-multiple: "\uEEE8", email-open-multiple-outline: "\uEEE9", email-open-outline: "\uE5EE", email-outline: "\uE1EF", email-plus: "\uE9EA", email-plus-outline: "\uE9EB", email-receive: "\uF0D9", email-receive-outline: "\uF0DA", email-remove: "\uF660", email-remove-outline: "\uF661", email-seal: "\uF95A", email-seal-outline: "\uF95B", email-search: "\uE960", email-search-outline: "\uE961", email-send: "\uF0DB", email-send-outline: "\uF0DC", email-sync: "\uF2C6", email-sync-outline: "\uF2C7", email-variant: "\uE5EF", ember: "\uEB2F", emby: "\uE6B3", emoticon: "\uEC67", emoticon-angry: "\uEC68", emoticon-angry-outline: "\uEC69", emoticon-confused: "\uF0DD", emoticon-confused-outline: "\uF0DE", emoticon-cool: "\uEC6A", emoticon-cool-outline: "\uE1F2", emoticon-cry: "\uEC6B", emoticon-cry-outline: "\uEC6C", emoticon-dead: "\uEC6D", emoticon-dead-outline: "\uE69A", emoticon-devil: "\uEC6E", emoticon-devil-outline: "\uE1F3", emoticon-excited: "\uEC6F", emoticon-excited-outline: "\uE69B", emoticon-frown: "\uEF4B", emoticon-frown-outline: "\uEF4C", emoticon-happy: "\uEC70", emoticon-happy-outline: "\uE1F4", emoticon-kiss: "\uEC71", emoticon-kiss-outline: "\uEC72", emoticon-lol: "\uF213", emoticon-lol-outline: "\uF214", emoticon-neutral: "\uEC73", emoticon-neutral-outline: "\uE1F5", emoticon-outline: "\uE1F1", emoticon-poop: "\uE1F6", emoticon-poop-outline: "\uEC74", emoticon-sad: "\uEC75", emoticon-sad-outline: "\uE1F7", emoticon-sick: "\uF57B", emoticon-sick-outline: "\uF57C", emoticon-tongue: "\uE1F8", emoticon-tongue-outline: "\uEC76", emoticon-wink: "\uEC77", emoticon-wink-outline: "\uEC78", engine: "\uE1F9", engine-off: "\uEA45", engine-off-outline: "\uEA46", engine-outline: "\uE1FA", epsilon: "\uF0DF", equal: "\uE1FB", equal-box: "\uE1FC", equalizer: "\uEEA1", equalizer-outline: "\uEEA2", eraser: "\uE1FD", eraser-variant: "\uE641", escalator: "\uE1FE", escalator-box: "\uF398", escalator-down: "\uF2BF", escalator-up: "\uF2BE", eslint: "\uEC79", et: "\uEAB2", ethereum: "\uE869", ethernet: "\uE1FF", ethernet-cable: "\uE200", ethernet-cable-off: "\uE201", ev-plug-ccs1: "\uF518", ev-plug-ccs2: "\uF519", ev-plug-chademo: "\uF51A", ev-plug-tesla: "\uF51B", ev-plug-type1: "\uF51C", ev-plug-type2: "\uF51D", ev-station: "\uE5F0", evernote: "\uE203", excavator: "\uF024", exclamation: "\uE204", exclamation-thick: "\uF237", exit-run: "\uEA47", exit-to-app: "\uE205", expand-all: "\uEAB3", expand-all-outline: "\uEAB4", expansion-card: "\uE8AD", expansion-card-variant: "\uEFB1", exponent: "\uE962", exponent-box: "\uE963", export: "\uE206", export-variant: "\uEB92", eye: "\uE207", eye-arrow-left: "\uF8FC", eye-arrow-left-outline: "\uF8FD", eye-arrow-right: "\uF8FE", eye-arrow-right-outline: "\uF8FF", eye-check: "\uED03", eye-check-outline: "\uED04", eye-circle: "\uEB93", eye-circle-outline: "\uEB94", eye-minus: "\uF025", eye-minus-outline: "\uF026", eye-off: "\uE208", eye-off-outline: "\uE6D0", eye-outline: "\uE6CF", eye-plus: "\uE86A", eye-plus-outline: "\uE86B", eye-refresh: "\uF97B", eye-refresh-outline: "\uF97C", eye-remove: "\uF5E2", eye-remove-outline: "\uF5E3", eye-settings: "\uE86C", eye-settings-outline: "\uE86D", eyedropper: "\uE209", eyedropper-minus: "\uF3DC", eyedropper-off: "\uF3DE", eyedropper-plus: "\uF3DB", eyedropper-remove: "\uF3DD", eyedropper-variant: "\uE20A", face-agent: "\uED6F", face-man: "\uE642", face-man-outline: "\uEB95", face-man-profile: "\uE643", face-man-shimmer: "\uF5CB", face-man-shimmer-outline: "\uF5CC", face-mask: "\uF585", face-mask-outline: "\uF586", face-recognition: "\uEC7A", face-woman: "\uF076", face-woman-outline: "\uF077", face-woman-profile: "\uF075", face-woman-shimmer: "\uF5CD", face-woman-shimmer-outline: "\uF5CE", facebook: "\uE20B", facebook-gaming: "\uE7DC", facebook-messenger: "\uE20D", facebook-workplace: "\uEB30", factory: "\uE20E", family-tree: "\uF60D", fan: "\uE20F", fan-alert: "\uF46B", fan-auto: "\uF71C", fan-chevron-down: "\uF46C", fan-chevron-up: "\uF46D", fan-clock: "\uFA39", fan-minus: "\uF46F", fan-off: "\uE81C", fan-plus: "\uF46E", fan-remove: "\uF470", fan-speed-1: "\uF471", fan-speed-2: "\uF472", fan-speed-3: "\uF473", fast-forward: "\uE210", fast-forward-10: "\uED70", fast-forward-15: "\uF939", fast-forward-30: "\uED05", fast-forward-5: "\uF1F7", fast-forward-60: "\uF60A", fast-forward-outline: "\uE6D1", fax: "\uE211", feather: "\uE6D2", feature-search: "\uEA48", feature-search-outline: "\uEA49", fedora: "\uE8DA", fence: "\uF799", fence-electric: "\uF7F5", fencing: "\uF4C0", ferris-wheel: "\uEEA3", ferry: "\uE212", file: "\uE213", file-account: "\uE73A", file-account-outline: "\uF027", file-alert: "\uEA4A", file-alert-outline: "\uEA4B", file-arrow-left-right: "\uFA92", file-arrow-left-right-outline: "\uFA93", file-arrow-up-down: "\uFA94", file-arrow-up-down-outline: "\uFA95", file-cabinet: "\uEAB5", file-cad: "\uEEEA", file-cad-box: "\uEEEB", file-cancel: "\uEDC5", file-cancel-outline: "\uEDC6", file-certificate: "\uF185", file-certificate-outline: "\uF186", file-chart: "\uE214", file-chart-check: "\uF9C5", file-chart-check-outline: "\uF9C6", file-chart-outline: "\uF028", file-check: "\uE215", file-check-outline: "\uEE28", file-clock: "\uF2E0", file-clock-outline: "\uF2E1", file-cloud: "\uE216", file-cloud-outline: "\uF029", file-code: "\uE22D", file-code-outline: "\uF02A", file-cog: "\uF07A", file-cog-outline: "\uF07B", file-compare: "\uE8A9", file-delimited: "\uE217", file-delimited-outline: "\uEEA4", file-document: "\uE218", file-document-alert: "\uFA96", file-document-alert-outline: "\uFA97", file-document-check: "\uFA98", file-document-check-outline: "\uFA99", file-document-edit: "\uEDC7", file-document-edit-outline: "\uEDC8", file-document-minus: "\uFA9A", file-document-minus-outline: "\uFA9B", file-document-multiple: "\uF516", file-document-multiple-outline: "\uF517", file-document-outline: "\uE9ED", file-document-plus: "\uFA9C", file-document-plus-outline: "\uFA9D", file-document-remove: "\uFA9E", file-document-remove-outline: "\uFA9F", file-download: "\uE964", file-download-outline: "\uE965", file-edit: "\uF1E6", file-edit-outline: "\uF1E7", file-excel: "\uE21A", file-excel-box: "\uE21B", file-excel-box-outline: "\uF02B", file-excel-outline: "\uF02C", file-export: "\uE21C", file-export-outline: "\uF02D", file-eye: "\uEDC9", file-eye-outline: "\uEDCA", file-find: "\uE21D", file-find-outline: "\uEB96", file-gif-box: "\uED77", file-hidden: "\uE612", file-image: "\uE21E", file-image-marker: "\uF771", file-image-marker-outline: "\uF772", file-image-minus: "\uF93A", file-image-minus-outline: "\uF93B", file-image-outline: "\uEEAF", file-image-plus: "\uF93C", file-image-plus-outline: "\uF93D", file-image-remove: "\uF93E", file-image-remove-outline: "\uF93F", file-import: "\uE21F", file-import-outline: "\uF02E", file-jpg-box: "\uE224", file-key: "\uF183", file-key-outline: "\uF184", file-link: "\uF176", file-link-outline: "\uF177", file-lock: "\uE220", file-lock-open: "\uF9C7", file-lock-open-outline: "\uF9C8", file-lock-outline: "\uF02F", file-marker: "\uF773", file-marker-outline: "\uF774", file-minus: "\uFAA0", file-minus-outline: "\uFAA1", file-move: "\uEAB8", file-move-outline: "\uF030", file-multiple: "\uE221", file-multiple-outline: "\uF031", file-music: "\uE222", file-music-outline: "\uEE29", file-outline: "\uE223", file-pdf-box: "\uE225", file-percent: "\uE81D", file-percent-outline: "\uF032", file-phone: "\uF178", file-phone-outline: "\uF179", file-plus: "\uE751", file-plus-outline: "\uEEEC", file-png-box: "\uEE2C", file-powerpoint: "\uE226", file-powerpoint-box: "\uE227", file-powerpoint-box-outline: "\uF033", file-powerpoint-outline: "\uF034", file-presentation-box: "\uE228", file-question: "\uE86E", file-question-outline: "\uF035", file-refresh: "\uE917", file-refresh-outline: "\uE540", file-remove: "\uEB97", file-remove-outline: "\uF036", file-replace: "\uEB31", file-replace-outline: "\uEB32", file-restore: "\uE66F", file-restore-outline: "\uF037", file-rotate-left: "\uFA3A", file-rotate-left-outline: "\uFA3B", file-rotate-right: "\uFA3C", file-rotate-right-outline: "\uFA3D", file-search: "\uEC7B", file-search-outline: "\uEC7C", file-send: "\uE229", file-send-outline: "\uF038", file-settings: "\uF078", file-settings-outline: "\uF079", file-sign: "\uF9C2", file-star: "\uF039", file-star-outline: "\uF03A", file-swap: "\uEFB3", file-swap-outline: "\uEFB4", file-sync: "\uF215", file-sync-outline: "\uF216", file-table: "\uEC7D", file-table-box: "\uF0E0", file-table-box-multiple: "\uF0E1", file-table-box-multiple-outline: "\uF0E2", file-table-box-outline: "\uF0E3", file-table-outline: "\uEC7E", file-tree: "\uE644", file-tree-outline: "\uF3D1", file-undo: "\uE8DB", file-undo-outline: "\uF03B", file-upload: "\uEA4C", file-upload-outline: "\uEA4D", file-video: "\uE22A", file-video-outline: "\uEE2B", file-word: "\uE22B", file-word-box: "\uE22C", file-word-box-outline: "\uF03C", file-word-outline: "\uF03D", film: "\uE22E", filmstrip: "\uE22F", filmstrip-box: "\uE331", filmstrip-box-multiple: "\uED17", filmstrip-off: "\uE230", filter: "\uE231", filter-check: "\uF8EB", filter-check-outline: "\uF8EC", filter-cog: "\uFAA2", filter-cog-outline: "\uFAA3", filter-menu: "\uF0E4", filter-menu-outline: "\uF0E5", filter-minus: "\uEEED", filter-minus-outline: "\uEEEE", filter-multiple: "\uFA3E", filter-multiple-outline: "\uFA3F", filter-off: "\uF4EE", filter-off-outline: "\uF4EF", filter-outline: "\uE232", filter-plus: "\uEEEF", filter-plus-outline: "\uEEF0", filter-remove: "\uE233", filter-remove-outline: "\uE234", filter-settings: "\uFAA4", filter-settings-outline: "\uFAA5", filter-variant: "\uE235", filter-variant-minus: "\uF111", filter-variant-plus: "\uF112", filter-variant-remove: "\uF03E", finance: "\uE81E", find-replace: "\uE6D3", fingerprint: "\uE236", fingerprint-off: "\uEEB0", fire: "\uE237", fire-alert: "\uF5D6", fire-circle: "\uF806", fire-extinguisher: "\uEEF1", fire-hydrant: "\uF136", fire-hydrant-alert: "\uF137", fire-hydrant-off: "\uF138", fire-off: "\uF721", fire-truck: "\uE8AA", firebase: "\uE966", firefox: "\uE238", fireplace: "\uEE2D", fireplace-off: "\uEE2E", firewire: "\uE5BD", firework: "\uEE2F", firework-off: "\uF722", fish: "\uE239", fish-off: "\uF3F2", fishbowl: "\uEEF2", fishbowl-outline: "\uEEF3", fit-to-page: "\uEEF4", fit-to-page-outline: "\uEEF5", fit-to-screen: "\uF8F3", fit-to-screen-outline: "\uF8F4", flag: "\uE23A", flag-checkered: "\uE23B", flag-minus: "\uEB98", flag-minus-outline: "\uF0B1", flag-off: "\uF8ED", flag-off-outline: "\uF8EE", flag-outline: "\uE23C", flag-plus: "\uEB99", flag-plus-outline: "\uF0B2", flag-remove: "\uEB9A", flag-remove-outline: "\uF0B3", flag-triangle: "\uE23E", flag-variant: "\uE23F", flag-variant-outline: "\uE23D", flare: "\uED71", flash: "\uE240", flash-alert: "\uEEF6", flash-alert-outline: "\uEEF7", flash-auto: "\uE241", flash-off: "\uE242", flash-outline: "\uE6D4", flash-red-eye: "\uE67A", flashlight: "\uE243", flashlight-off: "\uE244", flask: "\uE092", flask-empty: "\uE093", flask-empty-minus: "\uF239", flask-empty-minus-outline: "\uF23A", flask-empty-off: "\uF3F3", flask-empty-off-outline: "\uF3F4", flask-empty-outline: "\uE094", flask-empty-plus: "\uF23B", flask-empty-plus-outline: "\uF23C", flask-empty-remove: "\uF23D", flask-empty-remove-outline: "\uF23E", flask-minus: "\uF23F", flask-minus-outline: "\uF240", flask-off: "\uF3F5", flask-off-outline: "\uF3F6", flask-outline: "\uE095", flask-plus: "\uF241", flask-plus-outline: "\uF242", flask-remove: "\uF243", flask-remove-outline: "\uF244", flask-round-bottom: "\uF24A", flask-round-bottom-empty: "\uF24B", flask-round-bottom-empty-outline: "\uF24C", flask-round-bottom-outline: "\uF24D", fleur-de-lis: "\uF302", flip-horizontal: "\uF0E6", flip-to-back: "\uE246", flip-to-front: "\uE247", flip-vertical: "\uF0E7", floor-lamp: "\uE8DC", floor-lamp-dual: "\uF03F", floor-lamp-dual-outline: "\uF7CD", floor-lamp-outline: "\uF7C7", floor-lamp-torchiere: "\uF746", floor-lamp-torchiere-outline: "\uF7D5", floor-lamp-torchiere-variant: "\uF040", floor-lamp-torchiere-variant-outline: "\uF7CE", floor-plan: "\uE820", floppy: "\uE248", floppy-variant: "\uE9EE", flower: "\uE249", flower-outline: "\uE9EF", flower-pollen: "\uF884", flower-pollen-outline: "\uF885", flower-poppy: "\uED07", flower-tulip: "\uE9F0", flower-tulip-outline: "\uE9F1", focus-auto: "\uEF4D", focus-field: "\uEF4E", focus-field-horizontal: "\uEF4F", focus-field-vertical: "\uEF50", folder: "\uE24A", folder-account: "\uE24B", folder-account-outline: "\uEB9B", folder-alert: "\uEDCB", folder-alert-outline: "\uEDCC", folder-arrow-down: "\uF9E7", folder-arrow-down-outline: "\uF9E8", folder-arrow-left: "\uF9E9", folder-arrow-left-outline: "\uF9EA", folder-arrow-left-right: "\uF9EB", folder-arrow-left-right-outline: "\uF9EC", folder-arrow-right: "\uF9ED", folder-arrow-right-outline: "\uF9EE", folder-arrow-up: "\uF9EF", folder-arrow-up-down: "\uF9F0", folder-arrow-up-down-outline: "\uF9F1", folder-arrow-up-outline: "\uF9F2", folder-cancel: "\uF9F3", folder-cancel-outline: "\uF9F4", folder-check: "\uF97D", folder-check-outline: "\uF97E", folder-clock: "\uEAB9", folder-clock-outline: "\uEABA", folder-cog: "\uF07E", folder-cog-outline: "\uF07F", folder-download: "\uE24C", folder-download-outline: "\uF0E8", folder-edit: "\uE8DD", folder-edit-outline: "\uEDCD", folder-eye: "\uF789", folder-eye-outline: "\uF78A", folder-file: "\uF9F5", folder-file-outline: "\uF9F6", folder-google-drive: "\uE24D", folder-heart: "\uF0E9", folder-heart-outline: "\uF0EA", folder-hidden: "\uF79D", folder-home: "\uF0B4", folder-home-outline: "\uF0B5", folder-image: "\uE24E", folder-information: "\uF0B6", folder-information-outline: "\uF0B7", folder-key: "\uE8AB", folder-key-network: "\uE8AC", folder-key-network-outline: "\uEC7F", folder-key-outline: "\uF0EB", folder-lock: "\uE24F", folder-lock-open: "\uE250", folder-lock-open-outline: "\uFAA6", folder-lock-outline: "\uFAA7", folder-marker: "\uF26C", folder-marker-outline: "\uF26D", folder-move: "\uE251", folder-move-outline: "\uF245", folder-multiple: "\uE252", folder-multiple-image: "\uE253", folder-multiple-outline: "\uE254", folder-multiple-plus: "\uF47D", folder-multiple-plus-outline: "\uF47E", folder-music: "\uF358", folder-music-outline: "\uF359", folder-network: "\uE86F", folder-network-outline: "\uEC80", folder-off: "\uF9F7", folder-off-outline: "\uF9F8", folder-open: "\uE76F", folder-open-outline: "\uEDCE", folder-outline: "\uE255", folder-play: "\uF9F9", folder-play-outline: "\uF9FA", folder-plus: "\uE256", folder-plus-outline: "\uEB9C", folder-pound: "\uED08", folder-pound-outline: "\uED09", folder-question: "\uF9C9", folder-question-outline: "\uF9CA", folder-refresh: "\uE748", folder-refresh-outline: "\uE541", folder-remove: "\uE257", folder-remove-outline: "\uEB9D", folder-search: "\uE967", folder-search-outline: "\uE968", folder-settings: "\uF07C", folder-settings-outline: "\uF07D", folder-star: "\uE69C", folder-star-multiple: "\uF3D2", folder-star-multiple-outline: "\uF3D3", folder-star-outline: "\uEB9E", folder-swap: "\uEFB5", folder-swap-outline: "\uEFB6", folder-sync: "\uED0A", folder-sync-outline: "\uED0B", folder-table: "\uF2E2", folder-table-outline: "\uF2E3", folder-text: "\uEC81", folder-text-outline: "\uEC82", folder-upload: "\uE258", folder-upload-outline: "\uF0EC", folder-wrench: "\uF9FB", folder-wrench-outline: "\uF9FC", folder-zip: "\uE6EA", folder-zip-outline: "\uE7B8", font-awesome: "\uE039", food: "\uE259", food-apple: "\uE25A", food-apple-outline: "\uEC83", food-croissant: "\uE7C7", food-drumstick: "\uF41E", food-drumstick-off: "\uF467", food-drumstick-off-outline: "\uF468", food-drumstick-outline: "\uF41F", food-fork-drink: "\uE5F1", food-halal: "\uF571", food-hot-dog: "\uF84A", food-kosher: "\uF572", food-off: "\uE5F2", food-off-outline: "\uF914", food-outline: "\uF915", food-steak: "\uF469", food-steak-off: "\uF46A", food-takeout-box: "\uF835", food-takeout-box-outline: "\uF836", food-turkey: "\uF71B", food-variant: "\uE25B", food-variant-off: "\uF3E4", foot-print: "\uEF51", football: "\uE25C", football-australian: "\uE25D", football-helmet: "\uE25E", forest: "\uF896", forklift: "\uE7C8", form-dropdown: "\uF3FF", form-select: "\uF400", form-textarea: "\uF094", form-textbox: "\uE60D", form-textbox-lock: "\uF35C", form-textbox-password: "\uE7F4", format-align-bottom: "\uE752", format-align-center: "\uE25F", format-align-justify: "\uE260", format-align-left: "\uE261", format-align-middle: "\uE753", format-align-right: "\uE262", format-align-top: "\uE754", format-annotation-minus: "\uEABB", format-annotation-plus: "\uE645", format-bold: "\uE263", format-clear: "\uE264", format-color-fill: "\uE265", format-color-highlight: "\uEE30", format-color-marker-cancel: "\uF312", format-color-text: "\uE69D", format-columns: "\uE8DE", format-float-center: "\uE266", format-float-left: "\uE267", format-float-none: "\uE268", format-float-right: "\uE269", format-font: "\uE6D5", format-font-size-decrease: "\uE9F2", format-font-size-increase: "\uE9F3", format-header-1: "\uE26A", format-header-2: "\uE26B", format-header-3: "\uE26C", format-header-4: "\uE26D", format-header-5: "\uE26E", format-header-6: "\uE26F", format-header-decrease: "\uE270", format-header-equal: "\uE271", format-header-increase: "\uE272", format-header-pound: "\uE273", format-horizontal-align-center: "\uE61D", format-horizontal-align-left: "\uE61E", format-horizontal-align-right: "\uE61F", format-indent-decrease: "\uE274", format-indent-increase: "\uE275", format-italic: "\uE276", format-letter-case: "\uEB33", format-letter-case-lower: "\uEB34", format-letter-case-upper: "\uEB35", format-letter-ends-with: "\uEFB7", format-letter-matches: "\uEFB8", format-letter-spacing: "\uF955", format-letter-starts-with: "\uEFB9", format-line-spacing: "\uE277", format-line-style: "\uE5C7", format-line-weight: "\uE5C8", format-list-bulleted: "\uE278", format-list-bulleted-square: "\uEDCF", format-list-bulleted-triangle: "\uEEB1", format-list-bulleted-type: "\uE279", format-list-checkbox: "\uE969", format-list-checks: "\uE755", format-list-group: "\uF85F", format-list-numbered: "\uE27A", format-list-numbered-rtl: "\uED0C", format-list-text: "\uF26E", format-overline: "\uEEB2", format-page-break: "\uE6D6", format-page-split: "\uF916", format-paint: "\uE27B", format-paragraph: "\uE27C", format-pilcrow: "\uE6D7", format-quote-close: "\uE27D", format-quote-close-outline: "\uF1A7", format-quote-open: "\uE756", format-quote-open-outline: "\uF1A6", format-rotate-90: "\uE6A9", format-section: "\uE69E", format-size: "\uE27E", format-strikethrough: "\uE27F", format-strikethrough-variant: "\uE280", format-subscript: "\uE281", format-superscript: "\uE282", format-text: "\uE283", format-text-rotation-angle-down: "\uEFBA", format-text-rotation-angle-up: "\uEFBB", format-text-rotation-down: "\uED72", format-text-rotation-down-vertical: "\uEFBC", format-text-rotation-none: "\uED73", format-text-rotation-up: "\uEFBD", format-text-rotation-vertical: "\uEFBE", format-text-variant: "\uEE31", format-text-variant-outline: "\uF50E", format-text-wrapping-clip: "\uED0D", format-text-wrapping-overflow: "\uED0E", format-text-wrapping-wrap: "\uED0F", format-textbox: "\uED10", format-textdirection-l-to-r: "\uE284", format-textdirection-r-to-l: "\uE285", format-title: "\uE5F3", format-underline: "\uE286", format-underline-wavy: "\uF8E8", format-vertical-align-bottom: "\uE620", format-vertical-align-center: "\uE621", format-vertical-align-top: "\uE622", format-wrap-inline: "\uE287", format-wrap-square: "\uE288", format-wrap-tight: "\uE289", format-wrap-top-bottom: "\uE28A", forum: "\uE28B", forum-minus: "\uFAA8", forum-minus-outline: "\uFAA9", forum-outline: "\uE821", forum-plus: "\uFAAA", forum-plus-outline: "\uFAAB", forum-remove: "\uFAAC", forum-remove-outline: "\uFAAD", forward: "\uE28C", forwardburger: "\uED74", fountain: "\uE96A", fountain-pen: "\uED11", fountain-pen-tip: "\uED12", fraction-one-half: "\uF991", freebsd: "\uE8DF", french-fries: "\uF956", frequently-asked-questions: "\uEEB3", fridge: "\uE28F", fridge-alert: "\uF1B0", fridge-alert-outline: "\uF1B1", fridge-bottom: "\uE291", fridge-industrial: "\uF5ED", fridge-industrial-alert: "\uF5EE", fridge-industrial-alert-outline: "\uF5EF", fridge-industrial-off: "\uF5F0", fridge-industrial-off-outline: "\uF5F1", fridge-industrial-outline: "\uF5F2", fridge-off: "\uF1AE", fridge-off-outline: "\uF1AF", fridge-outline: "\uE28E", fridge-top: "\uE290", fridge-variant: "\uF5F3", fridge-variant-alert: "\uF5F4", fridge-variant-alert-outline: "\uF5F5", fridge-variant-off: "\uF5F6", fridge-variant-off-outline: "\uF5F7", fridge-variant-outline: "\uF5F8", fruit-cherries: "\uF041", fruit-cherries-off: "\uF3F7", fruit-citrus: "\uF042", fruit-citrus-off: "\uF3F8", fruit-grapes: "\uF043", fruit-grapes-outline: "\uF044", fruit-pear: "\uFA0D", fruit-pineapple: "\uF045", fruit-watermelon: "\uF046", fuel: "\uE7C9", fuel-cell: "\uF8B4", fullscreen: "\uE292", fullscreen-exit: "\uE293", function: "\uE294", function-variant: "\uE870", furigana-horizontal: "\uF080", furigana-vertical: "\uF081", fuse: "\uEC84", fuse-alert: "\uF42C", fuse-blade: "\uEC85", fuse-off: "\uF42B", gamepad: "\uE295", gamepad-circle: "\uEE32", gamepad-circle-down: "\uEE33", gamepad-circle-left: "\uEE34", gamepad-circle-outline: "\uEE35", gamepad-circle-right: "\uEE36", gamepad-circle-up: "\uEE37", gamepad-down: "\uEE38", gamepad-left: "\uEE39", gamepad-outline: "\uF918", gamepad-right: "\uEE3A", gamepad-round: "\uEE3B", gamepad-round-down: "\uEE3C", gamepad-round-left: "\uEE3D", gamepad-round-outline: "\uEE3E", gamepad-round-right: "\uEE3F", gamepad-round-up: "\uEE40", gamepad-square: "\uEEB4", gamepad-square-outline: "\uEEB5", gamepad-up: "\uEE41", gamepad-variant: "\uE296", gamepad-variant-outline: "\uEEB6", gamma: "\uF0ED", gantry-crane: "\uEDD0", garage: "\uE6D8", garage-alert: "\uE871", garage-alert-variant: "\uF2D4", garage-lock: "\uF7FA", garage-open: "\uE6D9", garage-open-variant: "\uF2D3", garage-variant: "\uF2D2", garage-variant-lock: "\uF7FB", gas-burner: "\uFA1A", gas-cylinder: "\uE646", gas-station: "\uE297", gas-station-off: "\uF408", gas-station-off-outline: "\uF409", gas-station-outline: "\uEEB7", gate: "\uE298", gate-alert: "\uF7F7", gate-and: "\uE8E0", gate-arrow-left: "\uF7F6", gate-arrow-right: "\uF168", gate-nand: "\uE8E1", gate-nor: "\uE8E2", gate-not: "\uE8E3", gate-open: "\uF169", gate-or: "\uE8E4", gate-xnor: "\uE8E5", gate-xor: "\uE8E6", gatsby: "\uEE42", gauge: "\uE299", gauge-empty: "\uE872", gauge-full: "\uE873", gauge-low: "\uE874", gavel: "\uE29A", gender-female: "\uE29B", gender-male: "\uE29C", gender-male-female: "\uE29D", gender-male-female-variant: "\uF13E", gender-non-binary: "\uF13F", gender-transgender: "\uE29E", gentoo: "\uE8E7", gesture: "\uE7CA", gesture-double-tap: "\uE73B", gesture-pinch: "\uEABC", gesture-spread: "\uEABD", gesture-swipe: "\uED75", gesture-swipe-down: "\uE73C", gesture-swipe-horizontal: "\uEABE", gesture-swipe-left: "\uE73D", gesture-swipe-right: "\uE73E", gesture-swipe-up: "\uE73F", gesture-swipe-vertical: "\uEABF", gesture-tap: "\uE740", gesture-tap-box: "\uF2A8", gesture-tap-button: "\uF2A7", gesture-tap-hold: "\uED76", gesture-two-double-tap: "\uE741", gesture-two-tap: "\uE742", ghost: "\uE29F", ghost-off: "\uE9F4", ghost-off-outline: "\uF65B", ghost-outline: "\uF65C", gift: "\uEE43", gift-off: "\uF6EE", gift-off-outline: "\uF6EF", gift-open: "\uF6F0", gift-open-outline: "\uF6F1", gift-outline: "\uE2A0", git: "\uE2A1", github: "\uE2A3", gitlab: "\uEB9F", glass-cocktail: "\uE355", glass-cocktail-off: "\uF5E5", glass-flute: "\uE2A4", glass-fragile: "\uF872", glass-mug: "\uE2A5", glass-mug-off: "\uF5E6", glass-mug-variant: "\uF115", glass-mug-variant-off: "\uF5E7", glass-pint-outline: "\uF30C", glass-stange: "\uE2A6", glass-tulip: "\uE2A7", glass-wine: "\uE875", glasses: "\uE2A9", globe-light: "\uF2D6", globe-model: "\uE8E8", gmail: "\uE2AA", gnome: "\uE2AB", go-kart: "\uED78", go-kart-track: "\uED79", gog: "\uEBA0", gold: "\uF24E", golf: "\uE822", golf-cart: "\uF1A3", golf-tee: "\uF082", gondola: "\uE685", goodreads: "\uED7A", google: "\uE2AC", google-ads: "\uEC86", google-analytics: "\uE7CB", google-assistant: "\uE7CC", google-cardboard: "\uE2AD", google-chrome: "\uE2AE", google-circles: "\uE2AF", google-circles-communities: "\uE2B0", google-circles-extended: "\uE2B1", google-circles-group: "\uE2B2", google-classroom: "\uE2BF", google-cloud: "\uF1F5", google-controller: "\uE2B3", google-controller-off: "\uE2B4", google-downasaur: "\uF361", google-drive: "\uE2B5", google-earth: "\uE2B6", google-fit: "\uE96B", google-glass: "\uE2B7", google-hangouts: "\uE2C8", google-home: "\uE823", google-keep: "\uE6DB", google-lens: "\uE9F5", google-maps: "\uE5F4", google-my-business: "\uF047", google-nearby: "\uE2B8", google-play: "\uE2BB", google-plus: "\uE2BC", google-podcast: "\uEEB8", google-spreadsheet: "\uE9F6", google-street-view: "\uEC87", google-translate: "\uE2BE", gradient-horizontal: "\uF749", gradient-vertical: "\uE69F", grain: "\uED7B", graph: "\uF048", graph-outline: "\uF049", graphql: "\uE876", grass: "\uF50F", grave-stone: "\uEBA1", grease-pencil: "\uE647", greater-than: "\uE96C", greater-than-or-equal: "\uE96D", greenhouse: "\uE02C", grid: "\uE2C0", grid-large: "\uE757", grid-off: "\uE2C1", grill: "\uEE44", grill-outline: "\uF189", group: "\uE2C2", guitar-acoustic: "\uE770", guitar-electric: "\uE2C3", guitar-pick: "\uE2C4", guitar-pick-outline: "\uE2C5", guy-fawkes-mask: "\uE824", gymnastics: "\uFA40", hail: "\uEAC0", hair-dryer: "\uF0EE", hair-dryer-outline: "\uF0EF", halloween: "\uEBA2", hamburger: "\uE684", hamburger-check: "\uF775", hamburger-minus: "\uF776", hamburger-off: "\uF777", hamburger-plus: "\uF778", hamburger-remove: "\uF779", hammer: "\uE8E9", hammer-screwdriver: "\uF321", hammer-sickle: "\uF886", hammer-wrench: "\uF322", hand-back-left: "\uEE45", hand-back-left-off: "\uF82F", hand-back-left-off-outline: "\uF831", hand-back-left-outline: "\uF82B", hand-back-right: "\uEE46", hand-back-right-off: "\uF830", hand-back-right-off-outline: "\uF832", hand-back-right-outline: "\uF82C", hand-clap: "\uF94A", hand-clap-off: "\uFA41", hand-coin: "\uF88E", hand-coin-outline: "\uF88F", hand-extended: "\uF8B5", hand-extended-outline: "\uF8B6", hand-front-left: "\uF82A", hand-front-left-outline: "\uF82D", hand-front-right: "\uEA4E", hand-front-right-outline: "\uF82E", hand-heart: "\uF0F0", hand-heart-outline: "\uF57D", hand-okay: "\uEA4F", hand-peace: "\uEA50", hand-peace-variant: "\uEA51", hand-pointing-down: "\uEA52", hand-pointing-left: "\uEA53", hand-pointing-right: "\uE2C6", hand-pointing-up: "\uEA54", hand-saw: "\uEE47", hand-wash: "\uF57E", hand-wash-outline: "\uF57F", hand-water: "\uF39E", hand-wave: "\uF820", hand-wave-outline: "\uF821", handball: "\uEF52", handcuffs: "\uF13D", hands-pray: "\uE578", handshake: "\uF217", handshake-outline: "\uF5A0", hanger: "\uE2C7", hard-hat: "\uE96E", harddisk: "\uE2C9", harddisk-plus: "\uF04A", harddisk-remove: "\uF04B", hat-fedora: "\uEBA3", hazard-lights: "\uEC88", hdr: "\uED7C", hdr-off: "\uED7D", head: "\uF35D", head-alert: "\uF337", head-alert-outline: "\uF338", head-check: "\uF339", head-check-outline: "\uF33A", head-cog: "\uF33B", head-cog-outline: "\uF33C", head-dots-horizontal: "\uF33D", head-dots-horizontal-outline: "\uF33E", head-flash: "\uF33F", head-flash-outline: "\uF340", head-heart: "\uF341", head-heart-outline: "\uF342", head-lightbulb: "\uF343", head-lightbulb-outline: "\uF344", head-minus: "\uF345", head-minus-outline: "\uF346", head-outline: "\uF35E", head-plus: "\uF347", head-plus-outline: "\uF348", head-question: "\uF349", head-question-outline: "\uF34A", head-remove: "\uF34B", head-remove-outline: "\uF34C", head-snowflake: "\uF34D", head-snowflake-outline: "\uF34E", head-sync: "\uF34F", head-sync-outline: "\uF350", headphones: "\uE2CA", headphones-bluetooth: "\uE96F", headphones-box: "\uE2CB", headphones-off: "\uE7CD", headphones-settings: "\uE2CC", headset: "\uE2CD", headset-dock: "\uE2CE", headset-off: "\uE2CF", heart: "\uE2D0", heart-box: "\uE2D1", heart-box-outline: "\uE2D2", heart-broken: "\uE2D3", heart-broken-outline: "\uED13", heart-circle: "\uE970", heart-circle-outline: "\uE971", heart-cog: "\uF662", heart-cog-outline: "\uF663", heart-flash: "\uEEF8", heart-half: "\uE6DE", heart-half-full: "\uE6DD", heart-half-outline: "\uE6DF", heart-minus: "\uF42E", heart-minus-outline: "\uF431", heart-multiple: "\uEA55", heart-multiple-outline: "\uEA56", heart-off: "\uE758", heart-off-outline: "\uF433", heart-outline: "\uE2D4", heart-plus: "\uF42D", heart-plus-outline: "\uF430", heart-pulse: "\uE5F5", heart-remove: "\uF42F", heart-remove-outline: "\uF432", heart-settings: "\uF664", heart-settings-outline: "\uF665", heat-pump: "\uFA42", heat-pump-outline: "\uFA43", heat-wave: "\uFA44", heating-coil: "\uFAAE", helicopter: "\uEAC1", help: "\uE2D5", help-box: "\uE78A", help-circle: "\uE2D6", help-circle-outline: "\uE624", help-network: "\uE6F4", help-network-outline: "\uEC89", help-rhombus: "\uEBA4", help-rhombus-outline: "\uEBA5", hexadecimal: "\uF2A6", hexagon: "\uE2D7", hexagon-multiple: "\uE6E0", hexagon-multiple-outline: "\uF0F1", hexagon-outline: "\uE2D8", hexagon-slice-1: "\uEAC2", hexagon-slice-2: "\uEAC3", hexagon-slice-3: "\uEAC4", hexagon-slice-4: "\uEAC5", hexagon-slice-5: "\uEAC6", hexagon-slice-6: "\uEAC7", hexagram: "\uEAC8", hexagram-outline: "\uEAC9", high-definition: "\uE7CE", high-definition-box: "\uE877", highway: "\uE5F6", hiking: "\uED7E", history: "\uE2D9", hockey-puck: "\uE878", hockey-sticks: "\uE879", hololens: "\uE2DA", home: "\uE2DB", home-account: "\uE825", home-alert: "\uE87A", home-alert-outline: "\uF5CF", home-analytics: "\uEEB9", home-assistant: "\uE7CF", home-automation: "\uE7D0", home-battery: "\uF900", home-battery-outline: "\uF901", home-circle: "\uE7D1", home-circle-outline: "\uF04C", home-city: "\uED14", home-city-outline: "\uED15", home-clock: "\uFA11", home-clock-outline: "\uFA12", home-edit: "\uF158", home-edit-outline: "\uF159", home-export-outline: "\uEF9A", home-flood: "\uEEF9", home-floor-0: "\uEDD1", home-floor-1: "\uED7F", home-floor-2: "\uED80", home-floor-3: "\uED81", home-floor-a: "\uED82", home-floor-b: "\uED83", home-floor-g: "\uED84", home-floor-l: "\uED85", home-floor-negative-1: "\uEDD2", home-group: "\uEDD3", home-group-minus: "\uF9C0", home-group-plus: "\uF9BF", home-group-remove: "\uF9C1", home-heart: "\uE826", home-import-outline: "\uEF9B", home-lightbulb: "\uF250", home-lightbulb-outline: "\uF251", home-lightning-bolt: "\uF902", home-lightning-bolt-outline: "\uF903", home-lock: "\uE8EA", home-lock-open: "\uE8EB", home-map-marker: "\uE5F7", home-minus: "\uE973", home-minus-outline: "\uF3D4", home-modern: "\uE2DC", home-off: "\uFA45", home-off-outline: "\uFA46", home-outline: "\uE6A0", home-plus: "\uE974", home-plus-outline: "\uF3D5", home-remove: "\uF246", home-remove-outline: "\uF3D6", home-roof: "\uF12A", home-search: "\uF3AF", home-search-outline: "\uF3B0", home-switch: "\uF793", home-switch-outline: "\uF794", home-thermometer: "\uEF53", home-thermometer-outline: "\uEF54", home-variant: "\uE2DD", home-variant-outline: "\uEBA6", hook: "\uE6E1", hook-off: "\uE6E2", hoop-house: "\uEE55", hops: "\uE2DE", horizontal-rotate-clockwise: "\uF0F2", horizontal-rotate-counterclockwise: "\uF0F3", horse: "\uF5BE", horse-human: "\uF5BF", horse-variant: "\uF5C0", horse-variant-fast: "\uF86D", horseshoe: "\uEA57", hospital: "\uEFF5", hospital-box: "\uE2DF", hospital-box-outline: "\uEFF6", hospital-building: "\uE2E0", hospital-marker: "\uE2E1", hot-tub: "\uE827", hours-24: "\uF477", hubspot: "\uED16", hulu: "\uE828", human: "\uE2E5", human-baby-changing-table: "\uF38A", human-cane: "\uF580", human-capacity-decrease: "\uF59A", human-capacity-increase: "\uF59B", human-child: "\uE2E6", human-dolly: "\uF97F", human-edit: "\uF4E7", human-female: "\uE648", human-female-boy: "\uEA58", human-female-dance: "\uF5C8", human-female-female: "\uEA59", human-female-girl: "\uEA5A", human-greeting: "\uF7C3", human-greeting-proximity: "\uF59C", human-greeting-variant: "\uE649", human-handsdown: "\uE64A", human-handsup: "\uE64B", human-male: "\uE64C", human-male-board: "\uE88F", human-male-board-poll: "\uE845", human-male-boy: "\uEA5B", human-male-child: "\uF38B", human-male-female: "\uE2E7", human-male-female-child: "\uF822", human-male-girl: "\uEA5C", human-male-height: "\uEEFA", human-male-height-variant: "\uEEFB", human-male-male: "\uEA5D", human-non-binary: "\uF847", human-pregnant: "\uE5CE", human-queue: "\uF570", human-scooter: "\uF1E8", human-wheelchair: "\uF38C", human-white-cane: "\uF980", humble-bundle: "\uE743", hvac: "\uF351", hvac-off: "\uF59D", hydraulic-oil-level: "\uF323", hydraulic-oil-temperature: "\uF324", hydro-power: "\uF2E4", hydrogen-station: "\uF893", ice-cream: "\uE829", ice-cream-off: "\uEE51", ice-pop: "\uEEFC", id-card: "\uEFBF", identifier: "\uEEFD", ideogram-cjk: "\uF330", ideogram-cjk-variant: "\uF331", image: "\uE2E8", image-album: "\uE2E9", image-area: "\uE2EA", image-area-close: "\uE2EB", image-auto-adjust: "\uEFC0", image-broken: "\uE2EC", image-broken-variant: "\uE2ED", image-edit: "\uF1E2", image-edit-outline: "\uF1E3", image-filter-black-white: "\uE2EF", image-filter-center-focus: "\uE2F0", image-filter-center-focus-strong: "\uEEFE", image-filter-center-focus-strong-outline: "\uEEFF", image-filter-center-focus-weak: "\uE2F1", image-filter-drama: "\uE2F2", image-filter-frames: "\uE2F3", image-filter-hdr: "\uE2F4", image-filter-none: "\uE2F5", image-filter-tilt-shift: "\uE2F6", image-filter-vintage: "\uE2F7", image-frame: "\uEE48", image-lock: "\uFAAF", image-lock-outline: "\uFAB0", image-marker: "\uF77A", image-marker-outline: "\uF77B", image-minus: "\uF418", image-move: "\uE9F7", image-multiple: "\uE2F8", image-multiple-outline: "\uE2EE", image-off: "\uE82A", image-off-outline: "\uF1D0", image-outline: "\uE975", image-plus: "\uE87B", image-refresh: "\uF9FD", image-refresh-outline: "\uF9FE", image-remove: "\uF417", image-search: "\uE976", image-search-outline: "\uE977", image-size-select-actual: "\uEC8C", image-size-select-large: "\uEC8D", image-size-select-small: "\uEC8E", image-sync: "\uF9FF", image-sync-outline: "\uFA00", image-text: "\uF60C", import: "\uE2F9", inbox: "\uE686", inbox-arrow-down: "\uE2FA", inbox-arrow-down-outline: "\uF26F", inbox-arrow-up: "\uE3D0", inbox-arrow-up-outline: "\uF270", inbox-full: "\uF271", inbox-full-outline: "\uF272", inbox-multiple: "\uE8AF", inbox-multiple-outline: "\uEBA7", inbox-outline: "\uF273", inbox-remove: "\uF59E", inbox-remove-outline: "\uF59F", incognito: "\uE5F8", incognito-circle: "\uF420", incognito-circle-off: "\uF421", incognito-off: "\uE074", induction: "\uF84B", infinity: "\uE6E3", information: "\uE2FB", information-off: "\uF78B", information-off-outline: "\uF78C", information-outline: "\uE2FC", information-variant: "\uE64D", instagram: "\uE2FD", instrument-triangle: "\uF04D", integrated-circuit-chip: "\uF912", invert-colors: "\uE300", invert-colors-off: "\uEE49", iobroker: "\uF2E7", ip: "\uEA5E", ip-network: "\uEA5F", ip-network-outline: "\uEC8F", ip-outline: "\uF981", ipod: "\uEC90", iron: "\uF823", iron-board: "\uF837", iron-outline: "\uF824", island: "\uF04E", iv-bag: "\uF0B8", jabber: "\uEDD4", jeepney: "\uE301", jellyfish: "\uEF00", jellyfish-outline: "\uEF01", jira: "\uE302", jquery: "\uE87C", jsfiddle: "\uE303", jump-rope: "\uF2FE", kabaddi: "\uED86", kangaroo: "\uF557", karate: "\uE82B", kayaking: "\uE8AE", keg: "\uE304", kettle: "\uE5F9", kettle-alert: "\uF316", kettle-alert-outline: "\uF317", kettle-off: "\uF31A", kettle-off-outline: "\uF31B", kettle-outline: "\uEF55", kettle-pour-over: "\uF73B", kettle-steam: "\uF318", kettle-steam-outline: "\uF319", kettlebell: "\uF2FF", key: "\uE305", key-alert: "\uF982", key-alert-outline: "\uF983", key-arrow-right: "\uF311", key-chain: "\uF573", key-chain-variant: "\uF574", key-change: "\uE306", key-link: "\uF19E", key-minus: "\uE307", key-outline: "\uEDD5", key-plus: "\uE308", key-remove: "\uE309", key-star: "\uF19D", key-variant: "\uE30A", key-wireless: "\uEFC1", keyboard: "\uE30B", keyboard-backspace: "\uE30C", keyboard-caps: "\uE30D", keyboard-close: "\uE30E", keyboard-esc: "\uF2B6", keyboard-f1: "\uF2AA", keyboard-f10: "\uF2B3", keyboard-f11: "\uF2B4", keyboard-f12: "\uF2B5", keyboard-f2: "\uF2AB", keyboard-f3: "\uF2AC", keyboard-f4: "\uF2AD", keyboard-f5: "\uF2AE", keyboard-f6: "\uF2AF", keyboard-f7: "\uF2B0", keyboard-f8: "\uF2B1", keyboard-f9: "\uF2B2", keyboard-off: "\uE30F", keyboard-off-outline: "\uEE4A", keyboard-outline: "\uE97A", keyboard-return: "\uE310", keyboard-settings: "\uE9F8", keyboard-settings-outline: "\uE9F9", keyboard-space: "\uF04F", keyboard-tab: "\uE311", keyboard-tab-reverse: "\uE324", keyboard-variant: "\uE312", khanda: "\uF0FC", kickstarter: "\uE744", kite: "\uF984", kite-outline: "\uF985", kitesurfing: "\uF743", klingon: "\uF35A", knife: "\uE9FA", knife-military: "\uE9FB", koala: "\uF73E", kodi: "\uE313", kubernetes: "\uF0FD", label: "\uE314", label-multiple: "\uF374", label-multiple-outline: "\uF375", label-off: "\uEACA", label-off-outline: "\uEACB", label-outline: "\uE315", label-percent: "\uF2E9", label-percent-outline: "\uF2EA", label-variant: "\uEACC", label-variant-outline: "\uEACD", ladder: "\uF5A1", ladybug: "\uE82C", lambda: "\uE626", lamp: "\uE6B4", lamp-outline: "\uF7CF", lamps: "\uF575", lamps-outline: "\uF7D0", lan: "\uE316", lan-check: "\uF2A9", lan-connect: "\uE317", lan-disconnect: "\uE318", lan-pending: "\uE319", land-fields: "\uFAB1", land-plots: "\uFAB2", land-plots-circle: "\uFAB3", land-plots-circle-variant: "\uFAB4", land-rows-horizontal: "\uFAB5", land-rows-vertical: "\uFAB6", landslide: "\uFA47", landslide-outline: "\uFA48", language-c: "\uE670", language-cpp: "\uE671", language-csharp: "\uE31A", language-css3: "\uE31B", language-fortran: "\uF219", language-go: "\uE7D2", language-haskell: "\uEC91", language-html5: "\uE31C", language-java: "\uEB36", language-javascript: "\uE31D", language-kotlin: "\uF218", language-lua: "\uE8B0", language-markdown: "\uE353", language-markdown-outline: "\uEF5A", language-php: "\uE31E", language-python: "\uE31F", language-r: "\uE7D3", language-ruby: "\uED2C", language-ruby-on-rails: "\uEACE", language-rust: "\uF616", language-swift: "\uE6E4", language-typescript: "\uE6E5", language-xaml: "\uE672", laptop: "\uE321", laptop-account: "\uFA49", laptop-off: "\uE6E6", laravel: "\uEACF", laser-pointer: "\uF483", lasso: "\uEF02", lastpass: "\uE445", latitude: "\uEF56", launch: "\uE326", lava-lamp: "\uE7D4", layers: "\uE327", layers-edit: "\uF891", layers-minus: "\uEE4B", layers-off: "\uE328", layers-off-outline: "\uE9FC", layers-outline: "\uE9FD", layers-plus: "\uEE4C", layers-remove: "\uEE4D", layers-search: "\uF205", layers-search-outline: "\uF206", layers-triple: "\uEF57", layers-triple-outline: "\uEF58", lead-pencil: "\uE64E", leaf: "\uE329", leaf-circle: "\uF904", leaf-circle-outline: "\uF905", leaf-maple: "\uEC92", leaf-maple-off: "\uF2D9", leaf-off: "\uF2D8", leak: "\uEDD6", leak-off: "\uEDD7", lecturn: "\uFAEF", led-off: "\uE32A", led-on: "\uE32B", led-outline: "\uE32C", led-strip: "\uE7D5", led-strip-variant: "\uF050", led-strip-variant-off: "\uFA4A", led-variant-off: "\uE32D", led-variant-on: "\uE32E", led-variant-outline: "\uE32F", leek: "\uF17C", less-than: "\uE97B", less-than-or-equal: "\uE97C", library: "\uE330", library-outline: "\uFA21", library-shelves: "\uEBA8", license: "\uEFC2", lifebuoy: "\uE87D", light-flood-down: "\uF986", light-flood-up: "\uF987", light-recessed: "\uF79A", light-switch: "\uE97D", light-switch-off: "\uFA23", lightbulb: "\uE334", lightbulb-alert: "\uF9E0", lightbulb-alert-outline: "\uF9E1", lightbulb-auto: "\uF7FF", lightbulb-auto-outline: "\uF800", lightbulb-cfl: "\uF207", lightbulb-cfl-off: "\uF208", lightbulb-cfl-spiral: "\uF274", lightbulb-cfl-spiral-off: "\uF2C2", lightbulb-fluorescent-tube: "\uF803", lightbulb-fluorescent-tube-outline: "\uF804", lightbulb-group: "\uF252", lightbulb-group-off: "\uF2CC", lightbulb-group-off-outline: "\uF2CD", lightbulb-group-outline: "\uF253", lightbulb-multiple: "\uF254", lightbulb-multiple-off: "\uF2CE", lightbulb-multiple-off-outline: "\uF2CF", lightbulb-multiple-outline: "\uF255", lightbulb-night: "\uFA4B", lightbulb-night-outline: "\uFA4C", lightbulb-off: "\uEE4E", lightbulb-off-outline: "\uEE4F", lightbulb-on: "\uE6E7", lightbulb-on-10: "\uFA4D", lightbulb-on-20: "\uFA4E", lightbulb-on-30: "\uFA4F", lightbulb-on-40: "\uFA50", lightbulb-on-50: "\uFA51", lightbulb-on-60: "\uFA52", lightbulb-on-70: "\uFA53", lightbulb-on-80: "\uFA54", lightbulb-on-90: "\uFA55", lightbulb-on-outline: "\uE6E8", lightbulb-outline: "\uE335", lightbulb-question: "\uF9E2", lightbulb-question-outline: "\uF9E3", lightbulb-spot: "\uF7F3", lightbulb-spot-off: "\uF7F4", lightbulb-variant: "\uF801", lightbulb-variant-outline: "\uF802", lighthouse: "\uE9FE", lighthouse-on: "\uE9FF", lightning-bolt: "\uF40A", lightning-bolt-circle: "\uE81F", lightning-bolt-outline: "\uF40B", line-scan: "\uE623", lingerie: "\uF475", link: "\uE336", link-box: "\uED19", link-box-outline: "\uED1A", link-box-variant: "\uED1B", link-box-variant-outline: "\uED1C", link-lock: "\uF0B9", link-off: "\uE337", link-plus: "\uEC93", link-variant: "\uE338", link-variant-minus: "\uF0FE", link-variant-off: "\uE339", link-variant-plus: "\uF0FF", link-variant-remove: "\uF100", linkedin: "\uE33A", linux: "\uE33C", linux-mint: "\uE8EC", lipstick: "\uF3B4", liquid-spot: "\uF825", liquor: "\uF91D", list-status: "\uF5AA", litecoin: "\uEA60", loading: "\uE771", location-enter: "\uEFC3", location-exit: "\uEFC4", lock: "\uE33D", lock-alert: "\uE8ED", lock-alert-outline: "\uF5D0", lock-check: "\uF399", lock-check-outline: "\uF6A7", lock-clock: "\uE97E", lock-minus: "\uF6A8", lock-minus-outline: "\uF6A9", lock-off: "\uF670", lock-off-outline: "\uF671", lock-open: "\uE33E", lock-open-alert: "\uF39A", lock-open-alert-outline: "\uF5D1", lock-open-check: "\uF39B", lock-open-check-outline: "\uF6AA", lock-open-minus: "\uF6AB", lock-open-minus-outline: "\uF6AC", lock-open-outline: "\uE33F", lock-open-plus: "\uF6AD", lock-open-plus-outline: "\uF6AE", lock-open-remove: "\uF6AF", lock-open-remove-outline: "\uF6B0", lock-open-variant: "\uEFC5", lock-open-variant-outline: "\uEFC6", lock-outline: "\uE340", lock-pattern: "\uE6E9", lock-plus: "\uE5FA", lock-plus-outline: "\uF6B1", lock-question: "\uE8EE", lock-remove: "\uF6B2", lock-remove-outline: "\uF6B3", lock-reset: "\uE772", lock-smart: "\uE8B1", locker: "\uE7D6", locker-multiple: "\uE7D7", login: "\uE341", login-variant: "\uE5FB", logout: "\uE342", logout-variant: "\uE5FC", longitude: "\uEF59", looks: "\uE343", lotion: "\uF581", lotion-outline: "\uF582", lotion-plus: "\uF583", lotion-plus-outline: "\uF584", loupe: "\uE344", lumx: "\uE345", lungs: "\uF083", mace: "\uF842", magazine-pistol: "\uE323", magazine-rifle: "\uE322", magic-staff: "\uF843", magnet: "\uE346", magnet-on: "\uE347", magnify: "\uE348", magnify-close: "\uE97F", magnify-expand: "\uF873", magnify-minus: "\uE349", magnify-minus-cursor: "\uEA61", magnify-minus-outline: "\uE6EB", magnify-plus: "\uE34A", magnify-plus-cursor: "\uEA62", magnify-plus-outline: "\uE6EC", magnify-remove-cursor: "\uF20B", magnify-remove-outline: "\uF20C", magnify-scan: "\uF275", mail: "\uEEBA", mailbox: "\uE6ED", mailbox-open: "\uED87", mailbox-open-outline: "\uED88", mailbox-open-up: "\uED89", mailbox-open-up-outline: "\uED8A", mailbox-outline: "\uED8B", mailbox-up: "\uED8C", mailbox-up-outline: "\uED8D", manjaro: "\uF609", map: "\uE34C", map-check: "\uEEBB", map-check-outline: "\uEEBC", map-clock: "\uED1D", map-clock-outline: "\uED1E", map-legend: "\uEA00", map-marker: "\uE34D", map-marker-account: "\uF8E2", map-marker-account-outline: "\uF8E3", map-marker-alert: "\uEF04", map-marker-alert-outline: "\uEF05", map-marker-check: "\uEC94", map-marker-check-outline: "\uF2FA", map-marker-circle: "\uE34E", map-marker-distance: "\uE8EF", map-marker-down: "\uF101", map-marker-left: "\uF2DA", map-marker-left-outline: "\uF2DC", map-marker-minus: "\uE64F", map-marker-minus-outline: "\uF2F8", map-marker-multiple: "\uE34F", map-marker-multiple-outline: "\uF276", map-marker-off: "\uE350", map-marker-off-outline: "\uF2FC", map-marker-outline: "\uE7D8", map-marker-path: "\uED1F", map-marker-plus: "\uE650", map-marker-plus-outline: "\uF2F7", map-marker-question: "\uEF06", map-marker-question-outline: "\uEF07", map-marker-radius: "\uE351", map-marker-radius-outline: "\uF2FB", map-marker-remove: "\uEF08", map-marker-remove-outline: "\uF2F9", map-marker-remove-variant: "\uEF09", map-marker-right: "\uF2DB", map-marker-right-outline: "\uF2DD", map-marker-star: "\uF607", map-marker-star-outline: "\uF608", map-marker-up: "\uF102", map-minus: "\uE980", map-outline: "\uE981", map-plus: "\uE982", map-search: "\uE983", map-search-outline: "\uE984", mapbox: "\uEBA9", margin: "\uE352", marker: "\uE651", marker-cancel: "\uEDD8", marker-check: "\uE354", mastodon: "\uEAD0", material-design: "\uE985", material-ui: "\uE356", math-compass: "\uE357", math-cos: "\uEC95", math-integral: "\uEFC7", math-integral-box: "\uEFC8", math-log: "\uF084", math-norm: "\uEFC9", math-norm-box: "\uEFCA", math-sin: "\uEC96", math-tan: "\uEC97", matrix: "\uE627", medal: "\uE986", medal-outline: "\uF325", medical-bag: "\uE6EE", medical-cotton-swab: "\uFAB7", meditation: "\uF17A", memory: "\uE35A", menorah: "\uF7D3", menorah-fire: "\uF7D4", menu: "\uE35B", menu-down: "\uE35C", menu-down-outline: "\uE6B5", menu-left: "\uE35D", menu-left-outline: "\uEA01", menu-open: "\uEBAA", menu-right: "\uE35E", menu-right-outline: "\uEA02", menu-swap: "\uEA63", menu-swap-outline: "\uEA64", menu-up: "\uE35F", menu-up-outline: "\uE6B6", merge: "\uEF5B", message: "\uE360", message-alert: "\uE361", message-alert-outline: "\uEA03", message-arrow-left: "\uF2F1", message-arrow-left-outline: "\uF2F2", message-arrow-right: "\uF2F3", message-arrow-right-outline: "\uF2F4", message-badge: "\uF940", message-badge-outline: "\uF941", message-bookmark: "\uF5AB", message-bookmark-outline: "\uF5AC", message-bulleted: "\uE6A1", message-bulleted-off: "\uE6A2", message-cog: "\uE6F0", message-cog-outline: "\uF171", message-draw: "\uE362", message-fast: "\uF9CB", message-fast-outline: "\uF9CC", message-flash: "\uF5A8", message-flash-outline: "\uF5A9", message-image: "\uE363", message-image-outline: "\uF16B", message-lock: "\uEFCB", message-lock-outline: "\uF16C", message-minus: "\uF16D", message-minus-outline: "\uF16E", message-off: "\uF64C", message-off-outline: "\uF64D", message-outline: "\uE364", message-plus: "\uE652", message-plus-outline: "\uF0BA", message-processing: "\uE365", message-processing-outline: "\uF16F", message-question: "\uF739", message-question-outline: "\uF73A", message-reply: "\uE366", message-reply-outline: "\uF73C", message-reply-text: "\uE367", message-reply-text-outline: "\uF73D", message-settings: "\uE6EF", message-settings-outline: "\uF170", message-star: "\uE699", message-star-outline: "\uF24F", message-text: "\uE368", message-text-clock: "\uF172", message-text-clock-outline: "\uF173", message-text-fast: "\uF9CD", message-text-fast-outline: "\uF9CE", message-text-lock: "\uEFCC", message-text-lock-outline: "\uF174", message-text-outline: "\uE369", message-video: "\uE36A", meteor: "\uE628", meter-electric: "\uFA56", meter-electric-outline: "\uFA57", meter-gas: "\uFA58", meter-gas-outline: "\uFA59", metronome: "\uE7D9", metronome-tick: "\uE7DA", micro-sd: "\uE7DB", microphone: "\uE36B", microphone-minus: "\uE8B2", microphone-off: "\uE36C", microphone-outline: "\uE36D", microphone-plus: "\uE8B3", microphone-question: "\uF988", microphone-question-outline: "\uF989", microphone-settings: "\uE36E", microphone-variant: "\uE36F", microphone-variant-off: "\uE370", microscope: "\uE653", microsoft: "\uE371", microsoft-access: "\uF38D", microsoft-azure: "\uE804", microsoft-azure-devops: "\uEFD4", microsoft-bing: "\uE0A3", microsoft-dynamics-365: "\uE987", microsoft-edge: "\uE1E8", microsoft-excel: "\uF38E", microsoft-internet-explorer: "\uE2FF", microsoft-office: "\uE3C5", microsoft-onedrive: "\uE3C9", microsoft-onenote: "\uE746", microsoft-outlook: "\uED21", microsoft-powerpoint: "\uF38F", microsoft-sharepoint: "\uF390", microsoft-teams: "\uE2BA", microsoft-visual-studio: "\uE60F", microsoft-visual-studio-code: "\uEA1D", microsoft-windows: "\uE5B2", microsoft-windows-classic: "\uEA20", microsoft-word: "\uF391", microsoft-xbox: "\uE5B8", microsoft-xbox-controller: "\uE5B9", microsoft-xbox-controller-battery-alert: "\uE74A", microsoft-xbox-controller-battery-charging: "\uEA21", microsoft-xbox-controller-battery-empty: "\uE74B", microsoft-xbox-controller-battery-full: "\uE74C", microsoft-xbox-controller-battery-low: "\uE74D", microsoft-xbox-controller-battery-medium: "\uE74E", microsoft-xbox-controller-battery-unknown: "\uE74F", microsoft-xbox-controller-menu: "\uEE6E", microsoft-xbox-controller-off: "\uE5BA", microsoft-xbox-controller-view: "\uEE6F", microwave: "\uEC98", microwave-off: "\uF422", middleware: "\uEF5C", middleware-outline: "\uEF5D", midi: "\uE8F0", midi-port: "\uE8F1", mine: "\uEDD9", minecraft: "\uE372", mini-sd: "\uEA04", minidisc: "\uEA05", minus: "\uE373", minus-box: "\uE374", minus-box-multiple: "\uF140", minus-box-multiple-outline: "\uF141", minus-box-outline: "\uE6F1", minus-circle: "\uE375", minus-circle-multiple: "\uE359", minus-circle-multiple-outline: "\uEAD2", minus-circle-off: "\uF458", minus-circle-off-outline: "\uF459", minus-circle-outline: "\uE376", minus-network: "\uE377", minus-network-outline: "\uEC99", minus-thick: "\uF638", mirror: "\uF1FC", mirror-rectangle: "\uF79E", mirror-variant: "\uF79F", mixed-martial-arts: "\uED8E", mixed-reality: "\uE87E", molecule: "\uEBAB", molecule-co: "\uF2FD", molecule-co2: "\uE7E3", monitor: "\uE378", monitor-account: "\uFA5A", monitor-arrow-down: "\uF9CF", monitor-arrow-down-variant: "\uF9D0", monitor-cellphone: "\uE988", monitor-cellphone-star: "\uE989", monitor-dashboard: "\uEA06", monitor-edit: "\uF2C5", monitor-eye: "\uF3B3", monitor-lock: "\uEDDA", monitor-multiple: "\uE379", monitor-off: "\uED8F", monitor-screenshot: "\uEE50", monitor-share: "\uF482", monitor-shimmer: "\uF103", monitor-small: "\uF875", monitor-speaker: "\uEF5E", monitor-speaker-off: "\uEF5F", monitor-star: "\uEDDB", moon-first-quarter: "\uEF60", moon-full: "\uEF61", moon-last-quarter: "\uEF62", moon-new: "\uEF63", moon-waning-crescent: "\uEF64", moon-waning-gibbous: "\uEF65", moon-waxing-crescent: "\uEF66", moon-waxing-gibbous: "\uEF67", moped: "\uF085", moped-electric: "\uF5B6", moped-electric-outline: "\uF5B7", moped-outline: "\uF5B8", more: "\uE37A", mortar-pestle: "\uF747", mortar-pestle-plus: "\uE3F0", mosque: "\uF826", mother-heart: "\uF313", mother-nurse: "\uED20", motion: "\uF5B1", motion-outline: "\uF5B2", motion-pause: "\uF58F", motion-pause-outline: "\uF591", motion-play: "\uF58E", motion-play-outline: "\uF590", motion-sensor: "\uED90", motion-sensor-off: "\uF434", motorbike: "\uE37B", motorbike-electric: "\uF5B9", mouse: "\uE37C", mouse-bluetooth: "\uE98A", mouse-move-down: "\uF54F", mouse-move-up: "\uF550", mouse-move-vertical: "\uF551", mouse-off: "\uE37D", mouse-variant: "\uE37E", mouse-variant-off: "\uE37F", move-resize: "\uE654", move-resize-variant: "\uE655", movie: "\uE380", movie-check: "\uF6F2", movie-check-outline: "\uF6F3", movie-cog: "\uF6F4", movie-cog-outline: "\uF6F5", movie-edit: "\uF121", movie-edit-outline: "\uF122", movie-filter: "\uF123", movie-filter-outline: "\uF124", movie-minus: "\uF6F6", movie-minus-outline: "\uF6F7", movie-off: "\uF6F8", movie-off-outline: "\uF6F9", movie-open: "\uEFCD", movie-open-check: "\uF6FA", movie-open-check-outline: "\uF6FB", movie-open-cog: "\uF6FC", movie-open-cog-outline: "\uF6FD", movie-open-edit: "\uF6FE", movie-open-edit-outline: "\uF6FF", movie-open-minus: "\uF700", movie-open-minus-outline: "\uF701", movie-open-off: "\uF702", movie-open-off-outline: "\uF703", movie-open-outline: "\uEFCE", movie-open-play: "\uF704", movie-open-play-outline: "\uF705", movie-open-plus: "\uF706", movie-open-plus-outline: "\uF707", movie-open-remove: "\uF708", movie-open-remove-outline: "\uF709", movie-open-settings: "\uF70A", movie-open-settings-outline: "\uF70B", movie-open-star: "\uF70C", movie-open-star-outline: "\uF70D", movie-outline: "\uEDDC", movie-play: "\uF70E", movie-play-outline: "\uF70F", movie-plus: "\uF710", movie-plus-outline: "\uF711", movie-remove: "\uF712", movie-remove-outline: "\uF713", movie-roll: "\uE7DD", movie-search: "\uF1D1", movie-search-outline: "\uF1D2", movie-settings: "\uF714", movie-settings-outline: "\uF715", movie-star: "\uF716", movie-star-outline: "\uF717", mower: "\uF66E", mower-bag: "\uF66F", muffin: "\uE98B", multicast: "\uF892", multiplication: "\uE381", multiplication-box: "\uE382", mushroom: "\uE7DE", mushroom-off: "\uF3F9", mushroom-off-outline: "\uF3FA", mushroom-outline: "\uE7DF", music: "\uE759", music-accidental-double-flat: "\uEF68", music-accidental-double-sharp: "\uEF69", music-accidental-flat: "\uEF6A", music-accidental-natural: "\uEF6B", music-accidental-sharp: "\uEF6C", music-box: "\uE383", music-box-multiple: "\uE332", music-box-multiple-outline: "\uEF03", music-box-outline: "\uE384", music-circle: "\uE385", music-circle-outline: "\uEAD3", music-clef-alto: "\uEF6D", music-clef-bass: "\uEF6E", music-clef-treble: "\uEF6F", music-note: "\uE386", music-note-bluetooth: "\uE5FD", music-note-bluetooth-off: "\uE5FE", music-note-eighth: "\uE387", music-note-eighth-dotted: "\uEF70", music-note-half: "\uE388", music-note-half-dotted: "\uEF71", music-note-off: "\uE389", music-note-off-outline: "\uEF72", music-note-outline: "\uEF73", music-note-plus: "\uEDDD", music-note-quarter: "\uE38A", music-note-quarter-dotted: "\uEF74", music-note-sixteenth: "\uE38B", music-note-sixteenth-dotted: "\uEF75", music-note-whole: "\uE38C", music-note-whole-dotted: "\uEF76", music-off: "\uE75A", music-rest-eighth: "\uEF77", music-rest-half: "\uEF78", music-rest-quarter: "\uEF79", music-rest-sixteenth: "\uEF7A", music-rest-whole: "\uEF7B", mustache: "\uF5DD", nail: "\uEDDE", nas: "\uE8F2", nativescript: "\uE87F", nature: "\uE38D", nature-people: "\uE38E", navigation: "\uE38F", navigation-outline: "\uF606", navigation-variant: "\uF8EF", navigation-variant-outline: "\uF8F0", near-me: "\uE5CC", necklace: "\uEF0A", needle: "\uE390", needle-off: "\uF9D1", netflix: "\uE745", network: "\uE6F2", network-off: "\uEC9A", network-off-outline: "\uEC9B", network-outline: "\uEC9C", network-pos: "\uFACA", network-strength-1: "\uE8F3", network-strength-1-alert: "\uE8F4", network-strength-2: "\uE8F5", network-strength-2-alert: "\uE8F6", network-strength-3: "\uE8F7", network-strength-3-alert: "\uE8F8", network-strength-4: "\uE8F9", network-strength-4-alert: "\uE8FA", network-strength-4-cog: "\uF919", network-strength-off: "\uE8FB", network-strength-off-outline: "\uE8FC", network-strength-outline: "\uE8FD", new-box: "\uE393", newspaper: "\uE394", newspaper-check: "\uF942", newspaper-minus: "\uEF0B", newspaper-plus: "\uEF0C", newspaper-remove: "\uF943", newspaper-variant: "\uF000", newspaper-variant-multiple: "\uF001", newspaper-variant-multiple-outline: "\uF002", newspaper-variant-outline: "\uF003", nfc: "\uE395", nfc-search-variant: "\uEE52", nfc-tap: "\uE396", nfc-variant: "\uE397", nfc-variant-off: "\uEE53", ninja: "\uE773", nintendo-game-boy: "\uF392", nintendo-switch: "\uE7E0", nintendo-wii: "\uE5AA", nintendo-wiiu: "\uE72C", nix: "\uF104", nodejs: "\uE398", noodles: "\uF17D", not-equal: "\uE98C", not-equal-variant: "\uE98D", note: "\uE399", note-alert: "\uF77C", note-alert-outline: "\uF77D", note-check: "\uF77E", note-check-outline: "\uF77F", note-edit: "\uF780", note-edit-outline: "\uF781", note-minus: "\uF64E", note-minus-outline: "\uF64F", note-multiple: "\uE6B7", note-multiple-outline: "\uE6B8", note-off: "\uF782", note-off-outline: "\uF783", note-outline: "\uE39A", note-plus: "\uE39B", note-plus-outline: "\uE39C", note-remove: "\uF650", note-remove-outline: "\uF651", note-search: "\uF652", note-search-outline: "\uF653", note-text: "\uE39D", note-text-outline: "\uF1D6", notebook: "\uE82D", notebook-check: "\uF4F4", notebook-check-outline: "\uF4F5", notebook-edit: "\uF4E6", notebook-edit-outline: "\uF4E8", notebook-heart: "\uFA0A", notebook-heart-outline: "\uFA0B", notebook-minus: "\uF60F", notebook-minus-outline: "\uF610", notebook-multiple: "\uEE54", notebook-outline: "\uEEBE", notebook-plus: "\uF611", notebook-plus-outline: "\uF612", notebook-remove: "\uF613", notebook-remove-outline: "\uF614", notification-clear-all: "\uE39E", npm: "\uE6F6", nuke: "\uE6A3", null: "\uE7E1", numeric: "\uE39F", numeric-0: "\uEB38", numeric-0-box: "\uE3A0", numeric-0-box-multiple: "\uEF0D", numeric-0-box-multiple-outline: "\uE3A1", numeric-0-box-outline: "\uE3A2", numeric-0-circle: "\uEC9D", numeric-0-circle-outline: "\uEC9E", numeric-1: "\uEB39", numeric-1-box: "\uE3A3", numeric-1-box-multiple: "\uEF0E", numeric-1-box-multiple-outline: "\uE3A4", numeric-1-box-outline: "\uE3A5", numeric-1-circle: "\uEC9F", numeric-1-circle-outline: "\uECA0", numeric-10: "\uEFE8", numeric-10-box: "\uEF7C", numeric-10-box-multiple: "\uEFE9", numeric-10-box-multiple-outline: "\uEFEA", numeric-10-box-outline: "\uEF7D", numeric-10-circle: "\uEFEB", numeric-10-circle-outline: "\uEFEC", numeric-2: "\uEB3A", numeric-2-box: "\uE3A6", numeric-2-box-multiple: "\uEF0F", numeric-2-box-multiple-outline: "\uE3A7", numeric-2-box-outline: "\uE3A8", numeric-2-circle: "\uECA1", numeric-2-circle-outline: "\uECA2", numeric-3: "\uEB3B", numeric-3-box: "\uE3A9", numeric-3-box-multiple: "\uEF10", numeric-3-box-multiple-outline: "\uE3AA", numeric-3-box-outline: "\uE3AB", numeric-3-circle: "\uECA3", numeric-3-circle-outline: "\uECA4", numeric-4: "\uEB3C", numeric-4-box: "\uE3AC", numeric-4-box-multiple: "\uEF11", numeric-4-box-multiple-outline: "\uE3B1", numeric-4-box-outline: "\uE3AD", numeric-4-circle: "\uECA5", numeric-4-circle-outline: "\uECA6", numeric-5: "\uEB3D", numeric-5-box: "\uE3B0", numeric-5-box-multiple: "\uEF12", numeric-5-box-multiple-outline: "\uE3AE", numeric-5-box-outline: "\uE3AF", numeric-5-circle: "\uECA7", numeric-5-circle-outline: "\uECA8", numeric-6: "\uEB3E", numeric-6-box: "\uE3B2", numeric-6-box-multiple: "\uEF13", numeric-6-box-multiple-outline: "\uE3B3", numeric-6-box-outline: "\uE3B4", numeric-6-circle: "\uECA9", numeric-6-circle-outline: "\uECAA", numeric-7: "\uEB3F", numeric-7-box: "\uE3B5", numeric-7-box-multiple: "\uEF14", numeric-7-box-multiple-outline: "\uE3B6", numeric-7-box-outline: "\uE3B7", numeric-7-circle: "\uECAB", numeric-7-circle-outline: "\uECAC", numeric-8: "\uEB40", numeric-8-box: "\uE3B8", numeric-8-box-multiple: "\uEF15", numeric-8-box-multiple-outline: "\uE3B9", numeric-8-box-outline: "\uE3BA", numeric-8-circle: "\uECAD", numeric-8-circle-outline: "\uECAE", numeric-9: "\uEB41", numeric-9-box: "\uE3BB", numeric-9-box-multiple: "\uEF16", numeric-9-box-multiple-outline: "\uE3BC", numeric-9-box-outline: "\uE3BD", numeric-9-circle: "\uECAF", numeric-9-circle-outline: "\uECB0", numeric-9-plus: "\uEFED", numeric-9-plus-box: "\uE3BE", numeric-9-plus-box-multiple: "\uEF17", numeric-9-plus-box-multiple-outline: "\uE3BF", numeric-9-plus-box-outline: "\uE3C0", numeric-9-plus-circle: "\uECB1", numeric-9-plus-circle-outline: "\uECB2", numeric-negative-1: "\uF051", numeric-off: "\uF9D2", numeric-positive-1: "\uF5CA", nut: "\uE6F7", nutrition: "\uE3C1", nuxt: "\uF105", oar: "\uE67B", ocarina: "\uEDDF", oci: "\uF2E8", ocr: "\uF139", octagon: "\uE3C2", octagon-outline: "\uE3C3", octagram: "\uE6F8", octagram-outline: "\uE774", octahedron: "\uF94F", octahedron-off: "\uF950", odnoklassniki: "\uE3C4", offer: "\uF21A", office-building: "\uE990", office-building-cog: "\uF948", office-building-cog-outline: "\uF949", office-building-marker: "\uF51F", office-building-marker-outline: "\uF520", office-building-outline: "\uF51E", oil: "\uE3C6", oil-lamp: "\uEF18", oil-level: "\uF052", oil-temperature: "\uEFF7", om: "\uE972", omega: "\uE3C8", one-up: "\uEBAC", onepassword: "\uE880", opacity: "\uE5CB", open-in-app: "\uE3CA", open-in-new: "\uE3CB", open-source-initiative: "\uEBAD", openid: "\uE3CC", opera: "\uE3CD", orbit: "\uE017", orbit-variant: "\uF5DA", order-alphabetical-ascending: "\uE20C", order-alphabetical-descending: "\uED06", order-bool-ascending: "\uE2BD", order-bool-ascending-variant: "\uE98E", order-bool-descending: "\uF383", order-bool-descending-variant: "\uE98F", order-numeric-ascending: "\uE544", order-numeric-descending: "\uE545", origin: "\uEB42", ornament: "\uE3CE", ornament-variant: "\uE3CF", outdoor-lamp: "\uF053", overscan: "\uF004", owl: "\uE3D1", pac-man: "\uEBAE", package: "\uE3D2", package-down: "\uE3D3", package-up: "\uE3D4", package-variant: "\uE3D5", package-variant-closed: "\uE3D6", package-variant-closed-minus: "\uF9D3", package-variant-closed-plus: "\uF9D4", package-variant-closed-remove: "\uF9D5", package-variant-minus: "\uF9D6", package-variant-plus: "\uF9D7", package-variant-remove: "\uF9D8", page-first: "\uE5FF", page-last: "\uE600", page-layout-body: "\uE6F9", page-layout-footer: "\uE6FA", page-layout-header: "\uE6FB", page-layout-header-footer: "\uEF7E", page-layout-sidebar-left: "\uE6FC", page-layout-sidebar-right: "\uE6FD", page-next: "\uEBAF", page-next-outline: "\uEBB0", page-previous: "\uEBB1", page-previous-outline: "\uEBB2", pail: "\uF416", pail-minus: "\uF436", pail-minus-outline: "\uF43B", pail-off: "\uF438", pail-off-outline: "\uF43D", pail-outline: "\uF439", pail-plus: "\uF435", pail-plus-outline: "\uF43A", pail-remove: "\uF437", pail-remove-outline: "\uF43C", palette: "\uE3D7", palette-advanced: "\uE3D8", palette-outline: "\uEE0B", palette-swatch: "\uE8B4", palette-swatch-outline: "\uF35B", palette-swatch-variant: "\uF959", palm-tree: "\uF054", pan: "\uEBB3", pan-bottom-left: "\uEBB4", pan-bottom-right: "\uEBB5", pan-down: "\uEBB6", pan-horizontal: "\uEBB7", pan-left: "\uEBB8", pan-right: "\uEBB9", pan-top-left: "\uEBBA", pan-top-right: "\uEBBB", pan-up: "\uEBBC", pan-vertical: "\uEBBD", panda: "\uE3D9", pandora: "\uE3DA", panorama: "\uE3DB", panorama-fisheye: "\uE3DC", panorama-horizontal: "\uF927", panorama-horizontal-outline: "\uE3DD", panorama-outline: "\uF98B", panorama-sphere: "\uF98C", panorama-sphere-outline: "\uF98D", panorama-variant: "\uF98E", panorama-variant-outline: "\uF98F", panorama-vertical: "\uF928", panorama-vertical-outline: "\uE3DE", panorama-wide-angle: "\uF95E", panorama-wide-angle-outline: "\uE3DF", paper-cut-vertical: "\uE3E0", paper-roll: "\uF156", paper-roll-outline: "\uF157", paperclip: "\uE3E1", paperclip-check: "\uFAC5", paperclip-lock: "\uF9D9", paperclip-minus: "\uFAC6", paperclip-off: "\uFAC7", paperclip-plus: "\uFAC8", paperclip-remove: "\uFAC9", parachute: "\uECB3", parachute-outline: "\uECB4", paragliding: "\uF744", parking: "\uE3E2", party-popper: "\uF055", passport: "\uE7E2", passport-biometric: "\uEDE0", pasta: "\uF15F", patio-heater: "\uEF7F", patreon: "\uE881", pause: "\uE3E3", pause-circle: "\uE3E4", pause-circle-outline: "\uE3E5", pause-octagon: "\uE3E6", pause-octagon-outline: "\uE3E7", paw: "\uE3E8", paw-off: "\uE656", paw-off-outline: "\uF675", paw-outline: "\uF674", peace: "\uE883", peanut: "\uEFFB", peanut-off: "\uEFFC", peanut-off-outline: "\uEFFE", peanut-outline: "\uEFFD", pen: "\uE3E9", pen-lock: "\uEDE1", pen-minus: "\uEDE2", pen-off: "\uEDE3", pen-plus: "\uEDE4", pen-remove: "\uEDE5", pencil: "\uE3EA", pencil-box: "\uE3EB", pencil-box-multiple: "\uF143", pencil-box-multiple-outline: "\uF144", pencil-box-outline: "\uE3EC", pencil-circle: "\uE6FE", pencil-circle-outline: "\uE775", pencil-lock: "\uE3ED", pencil-lock-outline: "\uEDE6", pencil-minus: "\uEDE7", pencil-minus-outline: "\uEDE8", pencil-off: "\uE3EE", pencil-off-outline: "\uEDE9", pencil-outline: "\uECB5", pencil-plus: "\uEDEA", pencil-plus-outline: "\uEDEB", pencil-remove: "\uEDEC", pencil-remove-outline: "\uEDED", pencil-ruler: "\uF352", penguin: "\uEEBF", pentagon: "\uE700", pentagon-outline: "\uE6FF", pentagram: "\uF666", percent: "\uE3EF", percent-box: "\uFA01", percent-box-outline: "\uFA02", percent-circle: "\uFA03", percent-circle-outline: "\uFA04", percent-outline: "\uF277", periodic-table: "\uE8B5", perspective-less: "\uED22", perspective-more: "\uED23", ph: "\uF7C4", phone: "\uE3F1", phone-alert: "\uEF19", phone-alert-outline: "\uF18D", phone-bluetooth: "\uE3F2", phone-bluetooth-outline: "\uF18E", phone-cancel: "\uF0BB", phone-cancel-outline: "\uF18F", phone-check: "\uF1A8", phone-check-outline: "\uF1A9", phone-classic: "\uE601", phone-classic-off: "\uF278", phone-clock: "\uF9DA", phone-dial: "\uF558", phone-dial-outline: "\uF559", phone-forward: "\uE3F3", phone-forward-outline: "\uF190", phone-hangup: "\uE3F4", phone-hangup-outline: "\uF191", phone-in-talk: "\uE3F5", phone-in-talk-outline: "\uF181", phone-incoming: "\uE3F6", phone-incoming-outline: "\uF192", phone-lock: "\uE3F7", phone-lock-outline: "\uF193", phone-log: "\uE3F8", phone-log-outline: "\uF194", phone-message: "\uF195", phone-message-outline: "\uF196", phone-minus: "\uE657", phone-minus-outline: "\uF197", phone-missed: "\uE3F9", phone-missed-outline: "\uF1A4", phone-off: "\uEDEE", phone-off-outline: "\uF1A5", phone-outgoing: "\uE3FA", phone-outgoing-outline: "\uF198", phone-outline: "\uEDEF", phone-paused: "\uE3FB", phone-paused-outline: "\uF199", phone-plus: "\uE658", phone-plus-outline: "\uF19A", phone-refresh: "\uF992", phone-refresh-outline: "\uF993", phone-remove: "\uF52E", phone-remove-outline: "\uF52F", phone-return: "\uE82E", phone-return-outline: "\uF19B", phone-ring: "\uF1AA", phone-ring-outline: "\uF1AB", phone-rotate-landscape: "\uE884", phone-rotate-portrait: "\uE885", phone-settings: "\uE3FC", phone-settings-outline: "\uF19C", phone-sync: "\uF994", phone-sync-outline: "\uF995", phone-voip: "\uE3FD", pi: "\uE3FE", pi-box: "\uE3FF", pi-hole: "\uEDF0", piano: "\uE67C", piano-off: "\uE697", pickaxe: "\uE8B6", picture-in-picture-bottom-right: "\uEE56", picture-in-picture-bottom-right-outline: "\uEE57", picture-in-picture-top-right: "\uEE58", picture-in-picture-top-right-outline: "\uEE59", pier: "\uE886", pier-crane: "\uE887", pig: "\uE400", pig-variant: "\uF005", pig-variant-outline: "\uF677", piggy-bank: "\uF006", piggy-bank-outline: "\uF678", pill: "\uE401", pill-off: "\uFA5B", pillar: "\uE701", pin: "\uE402", pin-off: "\uE403", pin-off-outline: "\uE92F", pin-outline: "\uE930", pine-tree: "\uE404", pine-tree-box: "\uE405", pine-tree-fire: "\uF419", pinterest: "\uE406", pinwheel: "\uEAD4", pinwheel-outline: "\uEAD5", pipe: "\uE7E4", pipe-disconnected: "\uE7E5", pipe-leak: "\uE888", pipe-valve: "\uF84C", pipe-wrench: "\uF353", pirate: "\uEA07", pistol: "\uE702", piston: "\uE889", pitchfork: "\uF552", pizza: "\uE408", play: "\uE409", play-box: "\uF279", play-box-lock: "\uFA15", play-box-lock-open: "\uFA16", play-box-lock-open-outline: "\uFA17", play-box-lock-outline: "\uFA18", play-box-multiple: "\uED18", play-box-multiple-outline: "\uF3E5", play-box-outline: "\uE40A", play-circle: "\uE40B", play-circle-outline: "\uE40C", play-network: "\uE88A", play-network-outline: "\uECB6", play-outline: "\uEF1A", play-pause: "\uE40D", play-protected-content: "\uE40E", play-speed: "\uE8FE", playlist-check: "\uE5C6", playlist-edit: "\uE8FF", playlist-minus: "\uE40F", playlist-music: "\uECB7", playlist-music-outline: "\uECB8", playlist-play: "\uE410", playlist-plus: "\uE411", playlist-remove: "\uE412", playlist-star: "\uEDF1", plex: "\uE6B9", pliers: "\uF9A3", plus: "\uE414", plus-box: "\uE415", plus-box-multiple: "\uE333", plus-box-multiple-outline: "\uF142", plus-box-outline: "\uE703", plus-circle: "\uE416", plus-circle-multiple: "\uE34B", plus-circle-multiple-outline: "\uE417", plus-circle-outline: "\uE418", plus-lock: "\uFA5C", plus-lock-open: "\uFA5D", plus-minus: "\uE991", plus-minus-box: "\uE992", plus-minus-variant: "\uF4C8", plus-network: "\uE419", plus-network-outline: "\uECB9", plus-outline: "\uE704", plus-thick: "\uF1EB", podcast: "\uE993", podium: "\uED24", podium-bronze: "\uED25", podium-gold: "\uED26", podium-silver: "\uED27", point-of-sale: "\uED91", pokeball: "\uE41C", pokemon-go: "\uEA08", poker-chip: "\uE82F", polaroid: "\uE41D", police-badge: "\uF166", police-badge-outline: "\uF167", police-station: "\uF838", poll: "\uE41E", polo: "\uF4C2", polymer: "\uE420", pool: "\uE605", pool-thermometer: "\uFA5E", popcorn: "\uE421", post: "\uF007", post-lamp: "\uFA5F", post-outline: "\uF008", postage-stamp: "\uECBA", pot: "\uE2E4", pot-mix: "\uE65A", pot-mix-outline: "\uE676", pot-outline: "\uE2FE", pot-steam: "\uE659", pot-steam-outline: "\uE325", pound: "\uE422", pound-box: "\uE423", pound-box-outline: "\uF17E", power: "\uE424", power-cycle: "\uE900", power-off: "\uE901", power-on: "\uE902", power-plug: "\uE6A4", power-plug-off: "\uE6A5", power-plug-off-outline: "\uF423", power-plug-outline: "\uF424", power-settings: "\uE425", power-sleep: "\uE903", power-socket: "\uE426", power-socket-au: "\uE904", power-socket-ch: "\uEFB2", power-socket-de: "\uF106", power-socket-eu: "\uE7E6", power-socket-fr: "\uF107", power-socket-it: "\uF4FE", power-socket-jp: "\uF108", power-socket-uk: "\uE7E7", power-socket-us: "\uE7E8", power-standby: "\uE905", powershell: "\uEA09", prescription: "\uE705", presentation: "\uE427", presentation-play: "\uE428", pretzel: "\uF561", printer: "\uE429", printer-3d: "\uE42A", printer-3d-nozzle: "\uEE5A", printer-3d-nozzle-alert: "\uF1BF", printer-3d-nozzle-alert-outline: "\uF1C0", printer-3d-nozzle-heat: "\uF8B7", printer-3d-nozzle-heat-outline: "\uF8B8", printer-3d-nozzle-outline: "\uEE5B", printer-alert: "\uE42B", printer-check: "\uF145", printer-eye: "\uF457", printer-off: "\uEE5C", printer-off-outline: "\uF784", printer-outline: "\uF785", printer-pos: "\uF056", printer-search: "\uF456", printer-settings: "\uE706", printer-wireless: "\uEA0A", priority-high: "\uE602", priority-low: "\uE603", professional-hexagon: "\uE42C", progress-alert: "\uECBB", progress-check: "\uE994", progress-clock: "\uE995", progress-close: "\uF109", progress-download: "\uE996", progress-pencil: "\uF786", progress-question: "\uF521", progress-star: "\uF787", progress-upload: "\uE997", progress-wrench: "\uECBC", projector: "\uE42D", projector-off: "\uFA22", projector-screen: "\uE42E", projector-screen-off: "\uF80C", projector-screen-off-outline: "\uF80D", projector-screen-outline: "\uF723", projector-screen-variant: "\uF80E", projector-screen-variant-off: "\uF80F", projector-screen-variant-off-outline: "\uF810", projector-screen-variant-outline: "\uF811", propane-tank: "\uF356", propane-tank-outline: "\uF357", protocol: "\uEFD7", publish: "\uE6A6", publish-off: "\uF944", pulse: "\uE42F", pump: "\uF401", pumpkin: "\uEBBE", purse: "\uEF1B", purse-outline: "\uEF1C", puzzle: "\uE430", puzzle-check: "\uF425", puzzle-check-outline: "\uF426", puzzle-edit: "\uF4D2", puzzle-edit-outline: "\uF4D8", puzzle-heart: "\uF4D3", puzzle-heart-outline: "\uF4D9", puzzle-minus: "\uF4D0", puzzle-minus-outline: "\uF4D6", puzzle-outline: "\uEA65", puzzle-plus: "\uF4CF", puzzle-plus-outline: "\uF4D5", puzzle-remove: "\uF4D1", puzzle-remove-outline: "\uF4D7", puzzle-star: "\uF4D4", puzzle-star-outline: "\uF4DA", pyramid: "\uF951", pyramid-off: "\uF952", qi: "\uE998", qqchat: "\uE604", qrcode: "\uE431", qrcode-edit: "\uE8B7", qrcode-minus: "\uF18B", qrcode-plus: "\uF18A", qrcode-remove: "\uF18C", qrcode-scan: "\uE432", quadcopter: "\uE433", quality-high: "\uE434", quality-low: "\uEA0B", quality-medium: "\uEA0C", quora: "\uED28", rabbit: "\uE906", rabbit-variant: "\uFA60", rabbit-variant-outline: "\uFA61", racing-helmet: "\uED92", racquetball: "\uED93", radar: "\uE436", radiator: "\uE437", radiator-disabled: "\uEAD6", radiator-off: "\uEAD7", radio: "\uE438", radio-am: "\uECBD", radio-fm: "\uECBE", radio-handheld: "\uE439", radio-off: "\uF21B", radio-tower: "\uE43A", radioactive: "\uE43B", radioactive-circle: "\uF85C", radioactive-circle-outline: "\uF85D", radioactive-off: "\uEEC0", radiobox-blank: "\uE43C", radiobox-marked: "\uE43D", radiology-box: "\uF4C4", radiology-box-outline: "\uF4C5", radius: "\uECBF", radius-outline: "\uECC0", railroad-light: "\uEF1D", rake: "\uF543", raspberry-pi: "\uE43E", raw: "\uFA0E", raw-off: "\uFA0F", ray-end: "\uE43F", ray-end-arrow: "\uE440", ray-start: "\uE441", ray-start-arrow: "\uE442", ray-start-end: "\uE443", ray-start-vertex-end: "\uF5D7", ray-vertex: "\uE444", razor-double-edge: "\uF996", razor-single-edge: "\uF997", react: "\uE707", read: "\uE446", receipt: "\uE448", receipt-outline: "\uF9DB", receipt-text-check: "\uFA62", receipt-text-check-outline: "\uFA63", receipt-text-minus: "\uFA64", receipt-text-minus-outline: "\uFA65", receipt-text-plus: "\uFA66", receipt-text-plus-outline: "\uFA67", receipt-text-remove: "\uFA68", receipt-text-remove-outline: "\uFA69", record: "\uE449", record-circle: "\uEEC1", record-circle-outline: "\uEEC2", record-player: "\uE999", record-rec: "\uE44A", rectangle: "\uEE5D", rectangle-outline: "\uEE5E", recycle: "\uE44B", recycle-variant: "\uF39C", reddit: "\uE44C", redhat: "\uF11A", redo: "\uE44D", redo-variant: "\uE44E", reflect-horizontal: "\uEA0D", reflect-vertical: "\uEA0E", refresh: "\uE44F", refresh-auto: "\uF8F1", refresh-circle: "\uF376", regex: "\uE450", registered-trademark: "\uEA66", reiterate: "\uF587", relation-many-to-many: "\uF495", relation-many-to-one: "\uF496", relation-many-to-one-or-many: "\uF497", relation-many-to-only-one: "\uF498", relation-many-to-zero-or-many: "\uF499", relation-many-to-zero-or-one: "\uF49A", relation-one-or-many-to-many: "\uF49B", relation-one-or-many-to-one: "\uF49C", relation-one-or-many-to-one-or-many: "\uF49D", relation-one-or-many-to-only-one: "\uF49E", relation-one-or-many-to-zero-or-many: "\uF49F", relation-one-or-many-to-zero-or-one: "\uF4A0", relation-one-to-many: "\uF4A1", relation-one-to-one: "\uF4A2", relation-one-to-one-or-many: "\uF4A3", relation-one-to-only-one: "\uF4A4", relation-one-to-zero-or-many: "\uF4A5", relation-one-to-zero-or-one: "\uF4A6", relation-only-one-to-many: "\uF4A7", relation-only-one-to-one: "\uF4A8", relation-only-one-to-one-or-many: "\uF4A9", relation-only-one-to-only-one: "\uF4AA", relation-only-one-to-zero-or-many: "\uF4AB", relation-only-one-to-zero-or-one: "\uF4AC", relation-zero-or-many-to-many: "\uF4AD", relation-zero-or-many-to-one: "\uF4AE", relation-zero-or-many-to-one-or-many: "\uF4AF", relation-zero-or-many-to-only-one: "\uF4B0", relation-zero-or-many-to-zero-or-many: "\uF4B1", relation-zero-or-many-to-zero-or-one: "\uF4B2", relation-zero-or-one-to-many: "\uF4B3", relation-zero-or-one-to-one: "\uF4B4", relation-zero-or-one-to-one-or-many: "\uF4B5", relation-zero-or-one-to-only-one: "\uF4B6", relation-zero-or-one-to-zero-or-many: "\uF4B7", relation-zero-or-one-to-zero-or-one: "\uF4B8", relative-scale: "\uE451", reload: "\uE452", reload-alert: "\uF10A", reminder: "\uE88B", remote: "\uE453", remote-desktop: "\uE8B8", remote-off: "\uEEC3", remote-tv: "\uEEC4", remote-tv-off: "\uEEC5", rename-box: "\uE454", reorder-horizontal: "\uE687", reorder-vertical: "\uE688", repeat: "\uE455", repeat-off: "\uE456", repeat-once: "\uE457", repeat-variant: "\uE546", replay: "\uE458", reply: "\uE459", reply-all: "\uE45A", reply-all-outline: "\uEF1E", reply-circle: "\uF1AD", reply-outline: "\uEF1F", reproduction: "\uE45B", resistor: "\uEB43", resistor-nodes: "\uEB44", resize: "\uEA67", resize-bottom-right: "\uE45C", responsive: "\uE45D", restart: "\uE708", restart-alert: "\uF10B", restart-off: "\uED94", restore: "\uE99A", restore-alert: "\uF10C", rewind: "\uE45E", rewind-10: "\uED29", rewind-15: "\uF945", rewind-30: "\uED95", rewind-5: "\uF1F8", rewind-60: "\uF60B", rewind-outline: "\uE709", rhombus: "\uE70A", rhombus-medium: "\uEA0F", rhombus-medium-outline: "\uF4DB", rhombus-outline: "\uE70B", rhombus-split: "\uEA10", rhombus-split-outline: "\uF4DC", ribbon: "\uE45F", rice: "\uE7E9", rickshaw: "\uF5BA", rickshaw-electric: "\uF5BB", ring: "\uE7EA", rivet: "\uEE5F", road: "\uE460", road-variant: "\uE461", robber: "\uF057", robot: "\uE6A8", robot-angry: "\uF69C", robot-angry-outline: "\uF69D", robot-confused: "\uF69E", robot-confused-outline: "\uF69F", robot-dead: "\uF6A0", robot-dead-outline: "\uF6A1", robot-excited: "\uF6A2", robot-excited-outline: "\uF6A3", robot-happy: "\uF718", robot-happy-outline: "\uF719", robot-industrial: "\uEB45", robot-industrial-outline: "\uFA19", robot-love: "\uF6A4", robot-love-outline: "\uF6A5", robot-mower: "\uF1F6", robot-mower-outline: "\uF1F2", robot-off: "\uF6A6", robot-off-outline: "\uF67A", robot-outline: "\uF679", robot-vacuum: "\uE70C", robot-vacuum-variant: "\uE907", rocket: "\uE462", rocket-launch: "\uF4DD", rocket-launch-outline: "\uF4DE", rocket-outline: "\uF3AE", rodent: "\uF326", roller-shade: "\uFA6A", roller-shade-closed: "\uFA6B", roller-skate: "\uED2A", roller-skate-off: "\uE144", rollerblade: "\uED2B", rollerblade-off: "\uE02D", rollupjs: "\uEBBF", rolodex: "\uFAB8", rolodex-outline: "\uFAB9", roman-numeral-1: "\uF087", roman-numeral-10: "\uF090", roman-numeral-2: "\uF088", roman-numeral-3: "\uF089", roman-numeral-4: "\uF08A", roman-numeral-5: "\uF08B", roman-numeral-6: "\uF08C", roman-numeral-7: "\uF08D", roman-numeral-8: "\uF08E", roman-numeral-9: "\uF08F", room-service: "\uE88C", room-service-outline: "\uED96", rotate-360: "\uF998", rotate-3d: "\uEEC6", rotate-3d-variant: "\uE463", rotate-left: "\uE464", rotate-left-variant: "\uE465", rotate-orbit: "\uED97", rotate-right: "\uE466", rotate-right-variant: "\uE467", rounded-corner: "\uE606", router: "\uF1E1", router-network: "\uF086", router-wireless: "\uE468", router-wireless-off: "\uF5A2", router-wireless-settings: "\uEA68", routes: "\uE469", routes-clock: "\uF058", rowing: "\uE607", rss: "\uE46A", rss-box: "\uE46B", rss-off: "\uEF20", rug: "\uF474", rugby: "\uED98", ruler: "\uE46C", ruler-square: "\uECC1", ruler-square-compass: "\uEEBD", run: "\uE70D", run-fast: "\uE46D", rv-truck: "\uF1D3", sack: "\uED2D", sack-percent: "\uED2E", safe: "\uEA69", safe-square: "\uF27B", safe-square-outline: "\uF27C", safety-goggles: "\uED2F", sail-boat: "\uEEC7", sail-boat-sink: "\uFAEE", sale: "\uE46E", sale-outline: "\uFA05", salesforce: "\uE88D", sass: "\uE7EB", satellite: "\uE46F", satellite-uplink: "\uE908", satellite-variant: "\uE470", sausage: "\uE8B9", sausage-off: "\uF788", saw-blade: "\uEE60", sawtooth-wave: "\uF479", saxophone: "\uE608", scale: "\uE471", scale-balance: "\uE5D0", scale-bathroom: "\uE472", scale-off: "\uF059", scale-unbalanced: "\uF9B7", scan-helper: "\uF3D7", scanner: "\uE6AA", scanner-off: "\uE909", scatter-plot: "\uEEC8", scatter-plot-outline: "\uEEC9", scent: "\uF957", scent-off: "\uF958", school: "\uE473", school-outline: "\uF17F", scissors-cutting: "\uEA6A", scooter: "\uF5BC", scooter-electric: "\uF5BD", scoreboard: "\uF27D", scoreboard-outline: "\uF27E", screen-rotation: "\uE474", screen-rotation-lock: "\uE477", screw-flat-top: "\uEDF2", screw-lag: "\uEDF3", screw-machine-flat-top: "\uEDF4", screw-machine-round-top: "\uEDF5", screw-round-top: "\uEDF6", screwdriver: "\uE475", script: "\uEBC0", script-outline: "\uE476", script-text: "\uEBC1", script-text-key: "\uF724", script-text-key-outline: "\uF725", script-text-outline: "\uEBC2", script-text-play: "\uF726", script-text-play-outline: "\uF727", sd: "\uE478", seal: "\uE479", seal-variant: "\uEFD8", search-web: "\uE70E", seat: "\uECC2", seat-flat: "\uE47A", seat-flat-angled: "\uE47B", seat-individual-suite: "\uE47C", seat-legroom-extra: "\uE47D", seat-legroom-normal: "\uE47E", seat-legroom-reduced: "\uE47F", seat-outline: "\uECC3", seat-passenger: "\uF248", seat-recline-extra: "\uE480", seat-recline-normal: "\uE481", seatbelt: "\uECC4", security: "\uE482", security-network: "\uE483", seed: "\uEE61", seed-off: "\uF3FC", seed-off-outline: "\uF3FD", seed-outline: "\uEE62", seed-plus: "\uFA6C", seed-plus-outline: "\uFA6D", seesaw: "\uF5A3", segment: "\uEECA", select: "\uE484", select-all: "\uE485", select-color: "\uED30", select-compare: "\uEAD8", select-drag: "\uEA6B", select-group: "\uEF81", select-inverse: "\uE486", select-marker: "\uF27F", select-multiple: "\uF280", select-multiple-marker: "\uF281", select-off: "\uE487", select-place: "\uEFD9", select-remove: "\uF7C0", select-search: "\uF203", selection: "\uE488", selection-drag: "\uEA6C", selection-ellipse: "\uED31", selection-ellipse-arrow-inside: "\uEF21", selection-ellipse-remove: "\uF7C1", selection-marker: "\uF282", selection-multiple: "\uF284", selection-multiple-marker: "\uF283", selection-off: "\uE776", selection-remove: "\uF7C2", selection-search: "\uF204", semantic-web: "\uF315", send: "\uE489", send-check: "\uF160", send-check-outline: "\uF161", send-circle: "\uEDF7", send-circle-outline: "\uEDF8", send-clock: "\uF162", send-clock-outline: "\uF163", send-lock: "\uE7EC", send-lock-outline: "\uF165", send-outline: "\uF164", serial-port: "\uE65B", server: "\uE48A", server-minus: "\uE48B", server-network: "\uE48C", server-network-off: "\uE48D", server-off: "\uE48E", server-plus: "\uE48F", server-remove: "\uE490", server-security: "\uE491", set-all: "\uE777", set-center: "\uE778", set-center-right: "\uE779", set-left: "\uE77A", set-left-center: "\uE77B", set-left-right: "\uE77C", set-merge: "\uF4DF", set-none: "\uE77D", set-right: "\uE77E", set-split: "\uF4E0", set-square: "\uF45C", set-top-box: "\uE99E", settings-helper: "\uEA6D", shaker: "\uF10D", shaker-outline: "\uF10E", shape: "\uE830", shape-circle-plus: "\uE65C", shape-outline: "\uE831", shape-oval-plus: "\uF1F9", shape-plus: "\uE494", shape-polygon-plus: "\uE65D", shape-rectangle-plus: "\uE65E", shape-square-plus: "\uE65F", shape-square-rounded-plus: "\uF4F9", share: "\uE495", share-all: "\uF1F3", share-all-outline: "\uF1F4", share-circle: "\uF1AC", share-off: "\uEF22", share-off-outline: "\uEF23", share-outline: "\uE931", share-variant: "\uE496", share-variant-outline: "\uF513", shark: "\uF8B9", shark-fin: "\uF672", shark-fin-outline: "\uF673", shark-off: "\uF8BA", sheep: "\uECC5", shield: "\uE497", shield-account: "\uE88E", shield-account-outline: "\uEA11", shield-account-variant: "\uF5A6", shield-account-variant-outline: "\uF5A7", shield-airplane: "\uE6BA", shield-airplane-outline: "\uECC6", shield-alert: "\uEECB", shield-alert-outline: "\uEECC", shield-bug: "\uF3D9", shield-bug-outline: "\uF3DA", shield-car: "\uEF82", shield-check: "\uE564", shield-check-outline: "\uECC7", shield-cross: "\uECC8", shield-cross-outline: "\uECC9", shield-crown: "\uF8BB", shield-crown-outline: "\uF8BC", shield-edit: "\uF19F", shield-edit-outline: "\uF1A0", shield-half: "\uF35F", shield-half-full: "\uE77F", shield-home: "\uE689", shield-home-outline: "\uECCA", shield-key: "\uEBC3", shield-key-outline: "\uEBC4", shield-link-variant: "\uED32", shield-link-variant-outline: "\uED33", shield-lock: "\uE99C", shield-lock-open: "\uF999", shield-lock-open-outline: "\uF99A", shield-lock-outline: "\uECCB", shield-moon: "\uF827", shield-moon-outline: "\uF828", shield-off: "\uE99D", shield-off-outline: "\uE99B", shield-outline: "\uE498", shield-plus: "\uEAD9", shield-plus-outline: "\uEADA", shield-refresh: "\uE0A9", shield-refresh-outline: "\uE1DF", shield-remove: "\uEADB", shield-remove-outline: "\uEADC", shield-search: "\uED99", shield-star: "\uF13A", shield-star-outline: "\uF13B", shield-sun: "\uF05C", shield-sun-outline: "\uF05D", shield-sword: "\uF8BD", shield-sword-outline: "\uF8BE", shield-sync: "\uF1A1", shield-sync-outline: "\uF1A2", shimmer: "\uF544", ship-wheel: "\uE832", shipping-pallet: "\uF84D", shoe-ballet: "\uF5C9", shoe-cleat: "\uF5C6", shoe-formal: "\uEB46", shoe-heel: "\uEB47", shoe-print: "\uEDF9", shoe-sneaker: "\uF5C7", shopping: "\uE499", shopping-music: "\uE49A", shopping-outline: "\uF1D4", shopping-search: "\uEF83", shopping-search-outline: "\uFA6E", shore: "\uF4F8", shovel: "\uE70F", shovel-off: "\uE710", shower: "\uE99F", shower-head: "\uE9A0", shredder: "\uE49B", shuffle: "\uE49C", shuffle-disabled: "\uE49D", shuffle-variant: "\uE49E", shuriken: "\uF37E", sickle: "\uF8BF", sigma: "\uE49F", sigma-lower: "\uE62A", sign-caution: "\uE4A0", sign-direction: "\uE780", sign-direction-minus: "\uEFFF", sign-direction-plus: "\uEFDB", sign-direction-remove: "\uEFDC", sign-pole: "\uF4F7", sign-real-estate: "\uF117", sign-text: "\uE781", signal: "\uE4A1", signal-2g: "\uE711", signal-3g: "\uE712", signal-4g: "\uE713", signal-5g: "\uEA6E", signal-cellular-1: "\uE8BB", signal-cellular-2: "\uE8BC", signal-cellular-3: "\uE8BD", signal-cellular-outline: "\uE8BE", signal-distance-variant: "\uEE63", signal-hspa: "\uE714", signal-hspa-plus: "\uE715", signal-off: "\uE782", signal-variant: "\uE609", signature: "\uEDFA", signature-freehand: "\uEDFB", signature-image: "\uEDFC", signature-text: "\uEDFD", silo: "\uEB48", silverware: "\uE4A2", silverware-clean: "\uEFDD", silverware-fork: "\uE4A3", silverware-fork-knife: "\uEA6F", silverware-spoon: "\uE4A4", silverware-variant: "\uE4A5", sim: "\uE4A6", sim-alert: "\uE4A7", sim-alert-outline: "\uF5D2", sim-off: "\uE4A8", sim-off-outline: "\uF5D3", sim-outline: "\uF5D4", simple-icons: "\uF31C", sina-weibo: "\uEADE", sine-wave: "\uE95A", sitemap: "\uE4A9", sitemap-outline: "\uF99B", size-l: "\uF3A5", size-m: "\uF3A4", size-s: "\uF3A3", size-xl: "\uF3A6", size-xs: "\uF3A2", size-xxl: "\uF3A7", size-xxs: "\uF3A1", size-xxxl: "\uF3A8", skate: "\uED34", skate-off: "\uE698", skateboard: "\uF4C1", skateboarding: "\uE500", skew-less: "\uED35", skew-more: "\uED36", ski: "\uF303", ski-cross-country: "\uF304", ski-water: "\uF305", skip-backward: "\uE4AA", skip-backward-outline: "\uEF24", skip-forward: "\uE4AB", skip-forward-outline: "\uEF25", skip-next: "\uE4AC", skip-next-circle: "\uE660", skip-next-circle-outline: "\uE661", skip-next-outline: "\uEF26", skip-previous: "\uE4AD", skip-previous-circle: "\uE662", skip-previous-circle-outline: "\uE663", skip-previous-outline: "\uEF27", skull: "\uE68B", skull-crossbones: "\uEBC5", skull-crossbones-outline: "\uEBC6", skull-outline: "\uEBC7", skull-scan: "\uF4C6", skull-scan-outline: "\uF4C7", skype: "\uE4AE", skype-business: "\uE4AF", slack: "\uE4B0", slash-forward: "\uEFDE", slash-forward-box: "\uEFDF", sledding: "\uE41A", sleep: "\uE4B1", sleep-off: "\uE4B2", slide: "\uF5A4", slope-downhill: "\uEDFE", slope-uphill: "\uEDFF", slot-machine: "\uF113", slot-machine-outline: "\uF114", smart-card: "\uF0BC", smart-card-off: "\uF8F6", smart-card-off-outline: "\uF8F7", smart-card-outline: "\uF0BD", smart-card-reader: "\uF0BE", smart-card-reader-outline: "\uF0BF", smog: "\uEA70", smoke: "\uF798", smoke-detector: "\uE391", smoke-detector-alert: "\uF92D", smoke-detector-alert-outline: "\uF92E", smoke-detector-off: "\uF808", smoke-detector-off-outline: "\uF809", smoke-detector-outline: "\uF807", smoke-detector-variant: "\uF80A", smoke-detector-variant-alert: "\uF92F", smoke-detector-variant-off: "\uF80B", smoking: "\uE4B3", smoking-off: "\uE4B4", smoking-pipe: "\uF40C", smoking-pipe-off: "\uF427", snail: "\uF676", snake: "\uF50D", snapchat: "\uE4B5", snowboard: "\uF306", snowflake: "\uE716", snowflake-alert: "\uEF28", snowflake-check: "\uFA6F", snowflake-melt: "\uF2CA", snowflake-off: "\uF4E2", snowflake-thermometer: "\uFA70", snowflake-variant: "\uEF29", snowman: "\uE4B6", snowmobile: "\uE6DC", snowshoeing: "\uFA71", soccer: "\uE4B7", soccer-field: "\uE833", social-distance-2-meters: "\uF578", social-distance-6-feet: "\uF579", sofa: "\uE4B8", sofa-outline: "\uF56C", sofa-single: "\uF56D", sofa-single-outline: "\uF56E", solar-panel: "\uED9A", solar-panel-large: "\uED9B", solar-power: "\uEA71", solar-power-variant: "\uFA72", solar-power-variant-outline: "\uFA73", soldering-iron: "\uF091", solid: "\uE68C", sony-playstation: "\uE413", sort: "\uE4B9", sort-alphabetical-ascending: "\uE5BC", sort-alphabetical-ascending-variant: "\uF147", sort-alphabetical-descending: "\uE5BE", sort-alphabetical-descending-variant: "\uF148", sort-alphabetical-variant: "\uE4BA", sort-ascending: "\uE4BB", sort-bool-ascending: "\uF384", sort-bool-ascending-variant: "\uF385", sort-bool-descending: "\uF386", sort-bool-descending-variant: "\uF387", sort-calendar-ascending: "\uF546", sort-calendar-descending: "\uF547", sort-clock-ascending: "\uF548", sort-clock-ascending-outline: "\uF549", sort-clock-descending: "\uF54A", sort-clock-descending-outline: "\uF54B", sort-descending: "\uE4BC", sort-numeric-ascending: "\uF388", sort-numeric-ascending-variant: "\uE90C", sort-numeric-descending: "\uF389", sort-numeric-descending-variant: "\uEAD1", sort-numeric-variant: "\uE4BD", sort-reverse-variant: "\uE33B", sort-variant: "\uE4BE", sort-variant-lock: "\uECCC", sort-variant-lock-open: "\uECCD", sort-variant-off: "\uFABA", sort-variant-remove: "\uF146", soundbar: "\uF7DA", soundcloud: "\uE4BF", source-branch: "\uE62B", source-branch-check: "\uF4CE", source-branch-minus: "\uF4CA", source-branch-plus: "\uF4C9", source-branch-refresh: "\uF4CC", source-branch-remove: "\uF4CB", source-branch-sync: "\uF4CD", source-commit: "\uE717", source-commit-end: "\uE718", source-commit-end-local: "\uE719", source-commit-local: "\uE71A", source-commit-next-local: "\uE71B", source-commit-start: "\uE71C", source-commit-start-next-local: "\uE71D", source-fork: "\uE4C0", source-merge: "\uE62C", source-pull: "\uE4C1", source-repository: "\uECCE", source-repository-multiple: "\uECCF", soy-sauce: "\uE7ED", soy-sauce-off: "\uF3FB", spa: "\uECD0", spa-outline: "\uECD1", space-invaders: "\uEBC8", space-station: "\uF382", spade: "\uEE64", speaker: "\uE4C2", speaker-bluetooth: "\uE9A1", speaker-multiple: "\uED37", speaker-off: "\uE4C3", speaker-wireless: "\uE71E", spear: "\uF844", speedometer: "\uE4C4", speedometer-medium: "\uEF84", speedometer-slow: "\uEF85", spellcheck: "\uE4C5", sphere: "\uF953", sphere-off: "\uF954", spider: "\uF1E9", spider-thread: "\uF1EA", spider-web: "\uEBC9", spirit-level: "\uF4F0", spoon-sugar: "\uF428", spotify: "\uE4C6", spotlight: "\uE4C7", spotlight-beam: "\uE4C8", spray: "\uE664", spray-bottle: "\uEADF", sprinkler: "\uF05E", sprinkler-fire: "\uF99C", sprinkler-variant: "\uF05F", sprout: "\uEE65", sprout-outline: "\uEE66", square: "\uE763", square-circle: "\uF4FF", square-edit-outline: "\uE90B", square-medium: "\uEA12", square-medium-outline: "\uEA13", square-off: "\uF2ED", square-off-outline: "\uF2EE", square-opacity: "\uF853", square-outline: "\uE762", square-root: "\uE783", square-root-box: "\uE9A2", square-rounded: "\uF4FA", square-rounded-badge: "\uFA06", square-rounded-badge-outline: "\uFA07", square-rounded-outline: "\uF4FB", square-small: "\uEA14", square-wave: "\uF47A", squeegee: "\uEAE0", ssh: "\uE8BF", stack-exchange: "\uE60A", stack-overflow: "\uE4CB", stackpath: "\uE358", stadium: "\uEFF8", stadium-variant: "\uE71F", stairs: "\uE4CC", stairs-box: "\uF39D", stairs-down: "\uF2BD", stairs-up: "\uF2BC", stamper: "\uED38", standard-definition: "\uE7EE", star: "\uE4CD", star-box: "\uEA72", star-box-multiple: "\uF285", star-box-multiple-outline: "\uF286", star-box-outline: "\uEA73", star-check: "\uF565", star-check-outline: "\uF569", star-circle: "\uE4CE", star-circle-outline: "\uE9A3", star-cog: "\uF667", star-cog-outline: "\uF668", star-crescent: "\uE978", star-david: "\uE979", star-face: "\uE9A4", star-four-points: "\uEAE1", star-four-points-outline: "\uEAE2", star-half: "\uE245", star-half-full: "\uE4CF", star-minus: "\uF563", star-minus-outline: "\uF567", star-off: "\uE4D0", star-off-outline: "\uF55A", star-outline: "\uE4D1", star-plus: "\uF562", star-plus-outline: "\uF566", star-remove: "\uF564", star-remove-outline: "\uF568", star-settings: "\uF669", star-settings-outline: "\uF66A", star-shooting: "\uF740", star-shooting-outline: "\uF741", star-three-points: "\uEAE3", star-three-points-outline: "\uEAE4", state-machine: "\uF1EE", steam: "\uE4D2", steering: "\uE4D3", steering-off: "\uE90D", step-backward: "\uE4D4", step-backward-2: "\uE4D5", step-forward: "\uE4D6", step-forward-2: "\uE4D7", stethoscope: "\uE4D8", sticker: "\uF363", sticker-alert: "\uF364", sticker-alert-outline: "\uF365", sticker-check: "\uF366", sticker-check-outline: "\uF367", sticker-circle-outline: "\uE5CF", sticker-emoji: "\uE784", sticker-minus: "\uF368", sticker-minus-outline: "\uF369", sticker-outline: "\uF36A", sticker-plus: "\uF36B", sticker-plus-outline: "\uF36C", sticker-remove: "\uF36D", sticker-remove-outline: "\uF36E", sticker-text: "\uF78D", sticker-text-outline: "\uF78E", stocking: "\uE4D9", stomach: "\uF092", stool: "\uF95C", stool-outline: "\uF95D", stop: "\uE4DA", stop-circle: "\uE665", stop-circle-outline: "\uE666", storage-tank: "\uFA74", storage-tank-outline: "\uFA75", store: "\uE4DB", store-24-hour: "\uE4DC", store-alert: "\uF8C0", store-alert-outline: "\uF8C1", store-check: "\uF8C2", store-check-outline: "\uF8C3", store-clock: "\uF8C4", store-clock-outline: "\uF8C5", store-cog: "\uF8C6", store-cog-outline: "\uF8C7", store-edit: "\uF8C8", store-edit-outline: "\uF8C9", store-marker: "\uF8CA", store-marker-outline: "\uF8CB", store-minus: "\uF65D", store-minus-outline: "\uF8CC", store-off: "\uF8CD", store-off-outline: "\uF8CE", store-outline: "\uF360", store-plus: "\uF65E", store-plus-outline: "\uF8CF", store-remove: "\uF65F", store-remove-outline: "\uF8D0", store-search: "\uF8D1", store-search-outline: "\uF8D2", store-settings: "\uF8D3", store-settings-outline: "\uF8D4", storefront: "\uE7C6", storefront-outline: "\uF0C0", stove: "\uE4DD", strategy: "\uF1D5", stretch-to-page: "\uEF2A", stretch-to-page-outline: "\uEF2B", string-lights: "\uF2B9", string-lights-off: "\uF2BA", subdirectory-arrow-left: "\uE60B", subdirectory-arrow-right: "\uE60C", submarine: "\uF56B", subtitles: "\uEA15", subtitles-outline: "\uEA16", subway: "\uE6AB", subway-alert-variant: "\uED9C", subway-variant: "\uE4DE", summit: "\uE785", sun-clock: "\uFA76", sun-clock-outline: "\uFA77", sun-compass: "\uF9A4", sun-snowflake: "\uF795", sun-snowflake-variant: "\uFA78", sun-thermometer: "\uF8D5", sun-thermometer-outline: "\uF8D6", sun-wireless: "\uF7FD", sun-wireless-outline: "\uF7FE", sunglasses: "\uE4DF", surfing: "\uF745", surround-sound: "\uE5C4", surround-sound-2-0: "\uE7EF", surround-sound-2-1: "\uF728", surround-sound-3-1: "\uE7F0", surround-sound-5-1: "\uE7F1", surround-sound-5-1-2: "\uF729", surround-sound-7-1: "\uE7F2", svg: "\uE720", swap-horizontal: "\uE4E0", swap-horizontal-bold: "\uEBCC", swap-horizontal-circle: "\uEFE0", swap-horizontal-circle-outline: "\uEFE1", swap-horizontal-variant: "\uE8C0", swap-vertical: "\uE4E1", swap-vertical-bold: "\uEBCD", swap-vertical-circle: "\uEFE2", swap-vertical-circle-outline: "\uEFE3", swap-vertical-variant: "\uE8C1", swim: "\uE4E2", switch: "\uE4E3", sword: "\uE4E4", sword-cross: "\uE786", syllabary-hangul: "\uF332", syllabary-hiragana: "\uF333", syllabary-katakana: "\uF334", syllabary-katakana-halfwidth: "\uF335", symbol: "\uF500", symfony: "\uEAE5", sync: "\uE4E5", sync-alert: "\uE4E6", sync-circle: "\uF377", sync-off: "\uE4E7", tab: "\uE4E8", tab-minus: "\uEB4A", tab-plus: "\uE75B", tab-remove: "\uEB4B", tab-search: "\uF99D", tab-unselected: "\uE4E9", table: "\uE4EA", table-account: "\uF3B8", table-alert: "\uF3B9", table-arrow-down: "\uF3BA", table-arrow-left: "\uF3BB", table-arrow-right: "\uF3BC", table-arrow-up: "\uF3BD", table-border: "\uEA17", table-cancel: "\uF3BE", table-chair: "\uF060", table-check: "\uF3BF", table-clock: "\uF3C0", table-cog: "\uF3C1", table-column: "\uE834", table-column-plus-after: "\uE4EB", table-column-plus-before: "\uE4EC", table-column-remove: "\uE4ED", table-column-width: "\uE4EE", table-edit: "\uE4EF", table-eye: "\uF093", table-eye-off: "\uF3C2", table-furniture: "\uE5BB", table-headers-eye: "\uF21C", table-headers-eye-off: "\uF21D", table-heart: "\uF3C3", table-key: "\uF3C4", table-large: "\uE4F0", table-large-plus: "\uEF86", table-large-remove: "\uEF87", table-lock: "\uF3C5", table-merge-cells: "\uE9A5", table-minus: "\uF3C6", table-multiple: "\uF3C7", table-network: "\uF3C8", table-of-contents: "\uE835", table-off: "\uF3C9", table-picnic: "\uF742", table-pivot: "\uF83B", table-plus: "\uEA74", table-refresh: "\uF39F", table-remove: "\uEA75", table-row: "\uE836", table-row-height: "\uE4F1", table-row-plus-after: "\uE4F2", table-row-plus-before: "\uE4F3", table-row-remove: "\uE4F4", table-search: "\uE90E", table-settings: "\uE837", table-split-cell: "\uF429", table-star: "\uF3CA", table-sync: "\uF3A0", table-tennis: "\uEE67", tablet: "\uE4F5", tablet-android: "\uE4F6", tablet-cellphone: "\uE9A6", tablet-dashboard: "\uEECD", taco: "\uE761", tag: "\uE4F8", tag-arrow-down: "\uF72A", tag-arrow-down-outline: "\uF72B", tag-arrow-left: "\uF72C", tag-arrow-left-outline: "\uF72D", tag-arrow-right: "\uF72E", tag-arrow-right-outline: "\uF72F", tag-arrow-up: "\uF730", tag-arrow-up-outline: "\uF731", tag-check: "\uFA79", tag-check-outline: "\uFA7A", tag-faces: "\uE4F9", tag-heart: "\uE68A", tag-heart-outline: "\uEBCE", tag-minus: "\uE90F", tag-minus-outline: "\uF21E", tag-multiple: "\uE4FA", tag-multiple-outline: "\uF2F6", tag-off: "\uF21F", tag-off-outline: "\uF220", tag-outline: "\uE4FB", tag-plus: "\uE721", tag-plus-outline: "\uF221", tag-remove: "\uE722", tag-remove-outline: "\uF222", tag-search: "\uF906", tag-search-outline: "\uF907", tag-text: "\uF223", tag-text-outline: "\uE4FC", tailwind: "\uF3FE", tally-mark-1: "\uFABB", tally-mark-2: "\uFABC", tally-mark-3: "\uFABD", tally-mark-4: "\uFABE", tally-mark-5: "\uFABF", tangram: "\uE4F7", tank: "\uED39", tanker-truck: "\uEFE4", tape-drive: "\uF6DE", tape-measure: "\uEB4C", target: "\uE4FD", target-account: "\uEBCF", target-variant: "\uEA76", taxi: "\uE4FE", tea: "\uED9D", tea-outline: "\uED9E", teamviewer: "\uE4FF", teddy-bear: "\uF8FA", telescope: "\uEB4D", television: "\uE501", television-ambient-light: "\uF355", television-box: "\uE838", television-classic: "\uE7F3", television-classic-off: "\uE839", television-guide: "\uE502", television-off: "\uE83A", television-pause: "\uEF88", television-play: "\uEECE", television-shimmer: "\uF10F", television-stop: "\uEF89", temperature-celsius: "\uE503", temperature-fahrenheit: "\uE504", temperature-kelvin: "\uE505", tennis: "\uED9F", tennis-ball: "\uE506", tent: "\uE507", terraform: "\uF061", terrain: "\uE508", test-tube: "\uE667", test-tube-empty: "\uE910", test-tube-off: "\uE911", text: "\uE9A7", text-account: "\uF56F", text-box: "\uE219", text-box-check: "\uEEA5", text-box-check-outline: "\uEEA6", text-box-edit: "\uFA7B", text-box-edit-outline: "\uFA7C", text-box-minus: "\uEEA7", text-box-minus-outline: "\uEEA8", text-box-multiple: "\uEAB6", text-box-multiple-outline: "\uEAB7", text-box-outline: "\uE9EC", text-box-plus: "\uEEA9", text-box-plus-outline: "\uEEAA", text-box-remove: "\uEEAB", text-box-remove-outline: "\uEEAC", text-box-search: "\uEEAD", text-box-search-outline: "\uEEAE", text-long: "\uE9A9", text-recognition: "\uF13C", text-search: "\uF3B7", text-search-variant: "\uFA7D", text-shadow: "\uE668", text-short: "\uE9A8", text-to-speech: "\uE509", text-to-speech-off: "\uE50A", texture: "\uE50B", texture-box: "\uEFE5", theater: "\uE50C", theme-light-dark: "\uE50D", thermometer: "\uE50E", thermometer-alert: "\uEE00", thermometer-bluetooth: "\uF894", thermometer-check: "\uFA7E", thermometer-chevron-down: "\uEE01", thermometer-chevron-up: "\uEE02", thermometer-high: "\uF0C1", thermometer-lines: "\uE50F", thermometer-low: "\uF0C2", thermometer-minus: "\uEE03", thermometer-off: "\uF530", thermometer-plus: "\uEE04", thermometer-water: "\uFA7F", thermostat: "\uE392", thermostat-box: "\uE890", thought-bubble: "\uE7F5", thought-bubble-outline: "\uE7F6", thumb-down: "\uE510", thumb-down-outline: "\uE511", thumb-up: "\uE512", thumb-up-outline: "\uE513", thumbs-up-down: "\uE514", thumbs-up-down-outline: "\uF913", ticket: "\uE515", ticket-account: "\uE516", ticket-confirmation: "\uE517", ticket-confirmation-outline: "\uF3A9", ticket-outline: "\uE912", ticket-percent: "\uE723", ticket-percent-outline: "\uF42A", tie: "\uE518", tilde: "\uE724", tilde-off: "\uF8F2", timelapse: "\uE519", timeline: "\uEBD0", timeline-alert: "\uEF94", timeline-alert-outline: "\uEF97", timeline-check: "\uF531", timeline-check-outline: "\uF532", timeline-clock: "\uF1FA", timeline-clock-outline: "\uF1FB", timeline-help: "\uEF98", timeline-help-outline: "\uEF99", timeline-minus: "\uF533", timeline-minus-outline: "\uF534", timeline-outline: "\uEBD1", timeline-plus: "\uEF95", timeline-plus-outline: "\uEF96", timeline-remove: "\uF535", timeline-remove-outline: "\uF536", timeline-text: "\uEBD2", timeline-text-outline: "\uEBD3", timer: "\uF3AA", timer-10: "\uE51B", timer-3: "\uE51C", timer-alert: "\uFACB", timer-alert-outline: "\uFACC", timer-cancel: "\uFACD", timer-cancel-outline: "\uFACE", timer-check: "\uFACF", timer-check-outline: "\uFAD0", timer-cog: "\uF924", timer-cog-outline: "\uF925", timer-edit: "\uFAD1", timer-edit-outline: "\uFAD2", timer-lock: "\uFAD3", timer-lock-open: "\uFAD4", timer-lock-open-outline: "\uFAD5", timer-lock-outline: "\uFAD6", timer-marker: "\uFAD7", timer-marker-outline: "\uFAD8", timer-minus: "\uFAD9", timer-minus-outline: "\uFADA", timer-music: "\uFADB", timer-music-outline: "\uFADC", timer-off: "\uF3AB", timer-off-outline: "\uE51D", timer-outline: "\uE51A", timer-pause: "\uFADD", timer-pause-outline: "\uFADE", timer-play: "\uFADF", timer-play-outline: "\uFAE0", timer-plus: "\uFAE1", timer-plus-outline: "\uFAE2", timer-refresh: "\uFAE3", timer-refresh-outline: "\uFAE4", timer-remove: "\uFAE5", timer-remove-outline: "\uFAE6", timer-sand: "\uE51E", timer-sand-complete: "\uF99E", timer-sand-empty: "\uE6AC", timer-sand-full: "\uE78B", timer-sand-paused: "\uF99F", timer-settings: "\uF922", timer-settings-outline: "\uF923", timer-star: "\uFAE7", timer-star-outline: "\uFAE8", timer-stop: "\uFAE9", timer-stop-outline: "\uFAEA", timer-sync: "\uFAEB", timer-sync-outline: "\uFAEC", timetable: "\uE51F", tire: "\uF895", toaster: "\uF062", toaster-off: "\uF1B6", toaster-oven: "\uECD2", toggle-switch: "\uE520", toggle-switch-off: "\uE521", toggle-switch-off-outline: "\uEA18", toggle-switch-outline: "\uEA19", toggle-switch-variant: "\uFA24", toggle-switch-variant-off: "\uFA25", toilet: "\uE9AA", toolbox: "\uE9AB", toolbox-outline: "\uE9AC", tools: "\uF063", tooltip: "\uE522", tooltip-account: "\uE00B", tooltip-cellphone: "\uF83A", tooltip-check: "\uF55B", tooltip-check-outline: "\uF55C", tooltip-edit: "\uE523", tooltip-edit-outline: "\uF2C4", tooltip-image: "\uE524", tooltip-image-outline: "\uEBD4", tooltip-minus: "\uF55D", tooltip-minus-outline: "\uF55E", tooltip-outline: "\uE525", tooltip-plus: "\uEBD5", tooltip-plus-outline: "\uE526", tooltip-remove: "\uF55F", tooltip-remove-outline: "\uF560", tooltip-text: "\uE527", tooltip-text-outline: "\uEBD6", tooth: "\uE8C2", tooth-outline: "\uE528", toothbrush: "\uF128", toothbrush-electric: "\uF12B", toothbrush-paste: "\uF129", torch: "\uF605", tortoise: "\uED3A", toslink: "\uF2B7", tournament: "\uE9AD", tow-truck: "\uE83B", tower-beach: "\uE680", tower-fire: "\uE681", town-hall: "\uF874", toy-brick: "\uF287", toy-brick-marker: "\uF288", toy-brick-marker-outline: "\uF289", toy-brick-minus: "\uF28A", toy-brick-minus-outline: "\uF28B", toy-brick-outline: "\uF28C", toy-brick-plus: "\uF28D", toy-brick-plus-outline: "\uF28E", toy-brick-remove: "\uF28F", toy-brick-remove-outline: "\uF290", toy-brick-search: "\uF291", toy-brick-search-outline: "\uF292", track-light: "\uE913", trackpad: "\uE7F7", trackpad-lock: "\uE932", tractor: "\uE891", tractor-variant: "\uF4C3", trademark: "\uEA77", traffic-cone: "\uF37B", traffic-light: "\uE52A", traffic-light-outline: "\uF829", train: "\uE52B", train-car: "\uEBD7", train-car-passenger: "\uF732", train-car-passenger-door: "\uF733", train-car-passenger-door-open: "\uF734", train-car-passenger-variant: "\uF735", train-variant: "\uE8C3", tram: "\uE52C", tram-side: "\uEFE6", transcribe: "\uE52D", transcribe-close: "\uE52E", transfer: "\uF064", transfer-down: "\uEDA0", transfer-left: "\uEDA1", transfer-right: "\uE52F", transfer-up: "\uEDA2", transit-connection: "\uED3B", transit-connection-horizontal: "\uF545", transit-connection-variant: "\uED3C", transit-detour: "\uEF8A", transit-skip: "\uF514", transit-transfer: "\uE6AD", transition: "\uE914", transition-masked: "\uE915", translate: "\uE5C9", translate-off: "\uEE05", transmission-tower: "\uED3D", transmission-tower-export: "\uF92B", transmission-tower-import: "\uF92C", transmission-tower-off: "\uF9DC", trash-can: "\uEA78", trash-can-outline: "\uEA79", tray: "\uF293", tray-alert: "\uF294", tray-arrow-down: "\uE11F", tray-arrow-up: "\uE11C", tray-full: "\uF295", tray-minus: "\uF296", tray-plus: "\uF297", tray-remove: "\uF298", treasure-chest: "\uE725", tree: "\uE530", tree-outline: "\uEE68", trello: "\uE531", trending-down: "\uE532", trending-neutral: "\uE533", trending-up: "\uE534", triangle: "\uE535", triangle-outline: "\uE536", triangle-small-down: "\uFA08", triangle-small-up: "\uFA09", triangle-wave: "\uF47B", triforce: "\uEBD8", trophy: "\uE537", trophy-award: "\uE538", trophy-broken: "\uEDA3", trophy-outline: "\uE539", trophy-variant: "\uE53A", trophy-variant-outline: "\uE53B", truck: "\uE53C", truck-alert: "\uF9DD", truck-alert-outline: "\uF9DE", truck-cargo-container: "\uF8D7", truck-check: "\uECD3", truck-check-outline: "\uF299", truck-delivery: "\uE53D", truck-delivery-outline: "\uF29A", truck-fast: "\uE787", truck-fast-outline: "\uF29B", truck-flatbed: "\uF890", truck-minus: "\uF9AD", truck-minus-outline: "\uF9BC", truck-outline: "\uF29C", truck-plus: "\uF9AC", truck-plus-outline: "\uF9BB", truck-remove: "\uF9AE", truck-remove-outline: "\uF9BD", truck-snowflake: "\uF9A5", truck-trailer: "\uE726", trumpet: "\uF095", tshirt-crew: "\uEA7A", tshirt-crew-outline: "\uE53E", tshirt-v: "\uEA7B", tshirt-v-outline: "\uE53F", tsunami: "\uFA80", tumble-dryer: "\uE916", tumble-dryer-alert: "\uF1B9", tumble-dryer-off: "\uF1BA", tune: "\uE62D", tune-variant: "\uF541", tune-vertical: "\uE669", tune-vertical-variant: "\uF542", tunnel: "\uF83C", tunnel-outline: "\uF83D", turbine: "\uFA81", turkey: "\uF71A", turnstile: "\uECD4", turnstile-outline: "\uECD5", turtle: "\uECD6", twitch: "\uE542", twitter: "\uE543", two-factor-authentication: "\uE9AE", typewriter: "\uEF2C", ubisoft: "\uEBD9", ubuntu: "\uE547", ufo: "\uF0C3", ufo-outline: "\uF0C4", ultra-high-definition: "\uE7F8", umbraco: "\uE548", umbrella: "\uE549", umbrella-beach: "\uF889", umbrella-beach-outline: "\uF88A", umbrella-closed: "\uE9AF", umbrella-closed-outline: "\uF3E1", umbrella-closed-variant: "\uF3E0", umbrella-outline: "\uE54A", undo: "\uE54B", undo-variant: "\uE54C", unfold-less-horizontal: "\uE54D", unfold-less-vertical: "\uE75F", unfold-more-horizontal: "\uE54E", unfold-more-vertical: "\uE760", ungroup: "\uE54F", unicode: "\uEECF", unicorn: "\uF5C1", unicorn-variant: "\uF5C2", unicycle: "\uF5E4", unity: "\uE6AE", unreal: "\uE9B0", update: "\uE6AF", upload: "\uE551", upload-lock: "\uF372", upload-lock-outline: "\uF373", upload-multiple: "\uE83C", upload-network: "\uE6F5", upload-network-outline: "\uECD7", upload-off: "\uF0C5", upload-off-outline: "\uF0C6", upload-outline: "\uEE06", usb: "\uE552", usb-flash-drive: "\uF29D", usb-flash-drive-outline: "\uF29E", usb-port: "\uF1EF", vacuum: "\uF9A0", vacuum-outline: "\uF9A1", valve: "\uF065", valve-closed: "\uF066", valve-open: "\uF067", van-passenger: "\uE7F9", van-utility: "\uE7FA", vanish: "\uE7FB", vanish-quarter: "\uF553", vanity-light: "\uF1E0", variable: "\uEAE6", variable-box: "\uF110", vector-arrange-above: "\uE553", vector-arrange-below: "\uE554", vector-bezier: "\uEAE7", vector-circle: "\uE555", vector-circle-variant: "\uE556", vector-combine: "\uE557", vector-curve: "\uE558", vector-difference: "\uE559", vector-difference-ab: "\uE55A", vector-difference-ba: "\uE55B", vector-ellipse: "\uE892", vector-intersection: "\uE55C", vector-line: "\uE55D", vector-link: "\uEFE7", vector-point: "\uE55E", vector-polygon: "\uE55F", vector-polygon-variant: "\uF855", vector-polyline: "\uE560", vector-polyline-edit: "\uF224", vector-polyline-minus: "\uF225", vector-polyline-plus: "\uF226", vector-polyline-remove: "\uF227", vector-radius: "\uE749", vector-rectangle: "\uE5C5", vector-selection: "\uE561", vector-square: "\uE000", vector-square-close: "\uF856", vector-square-edit: "\uF8D8", vector-square-minus: "\uF8D9", vector-square-open: "\uF857", vector-square-plus: "\uF8DA", vector-square-remove: "\uF8DB", vector-triangle: "\uE562", vector-union: "\uE563", vhs: "\uEA1A", vibrate: "\uE565", vibrate-off: "\uECD8", video: "\uE566", video-2d: "\uFA1B", video-3d: "\uE7FC", video-3d-off: "\uF3D8", video-3d-variant: "\uEED0", video-4k-box: "\uE83D", video-account: "\uE918", video-box: "\uE0FC", video-box-off: "\uE0FD", video-check: "\uF068", video-check-outline: "\uF069", video-high-definition: "\uF52D", video-image: "\uE919", video-input-antenna: "\uE83E", video-input-component: "\uE83F", video-input-hdmi: "\uE840", video-input-scart: "\uEF8B", video-input-svideo: "\uE841", video-marker: "\uF9A8", video-marker-outline: "\uF9A9", video-minus: "\uE9B1", video-minus-outline: "\uE2B9", video-off: "\uE567", video-off-outline: "\uEBDA", video-outline: "\uEBDB", video-plus: "\uE9B2", video-plus-outline: "\uE1D2", video-stabilization: "\uE91A", video-switch: "\uE568", video-switch-outline: "\uE78F", video-vintage: "\uEA1B", video-wireless: "\uEED1", video-wireless-outline: "\uEED2", view-agenda: "\uE569", view-agenda-outline: "\uF1D7", view-array: "\uE56A", view-array-outline: "\uF484", view-carousel: "\uE56B", view-carousel-outline: "\uF485", view-column: "\uE56C", view-column-outline: "\uF486", view-comfy: "\uEE69", view-comfy-outline: "\uF487", view-compact: "\uEE6A", view-compact-outline: "\uEE6B", view-dashboard: "\uE56D", view-dashboard-edit: "\uF946", view-dashboard-edit-outline: "\uF947", view-dashboard-outline: "\uEA1C", view-dashboard-variant: "\uE842", view-dashboard-variant-outline: "\uF488", view-day: "\uE56E", view-day-outline: "\uF489", view-gallery: "\uF887", view-gallery-outline: "\uF888", view-grid: "\uE56F", view-grid-outline: "\uF1D8", view-grid-plus: "\uEF8C", view-grid-plus-outline: "\uF1D9", view-headline: "\uE570", view-list: "\uE571", view-list-outline: "\uF48A", view-module: "\uE572", view-module-outline: "\uF48B", view-parallel: "\uE727", view-parallel-outline: "\uF48C", view-quilt: "\uE573", view-quilt-outline: "\uF48D", view-sequential: "\uE728", view-sequential-outline: "\uF48E", view-split-horizontal: "\uEBCA", view-split-vertical: "\uEBCB", view-stream: "\uE574", view-stream-outline: "\uF48F", view-week: "\uE575", view-week-outline: "\uF490", vimeo: "\uE576", violin: "\uE60E", virtual-reality: "\uE893", virus: "\uF3B5", virus-off: "\uF8E0", virus-off-outline: "\uF8E1", virus-outline: "\uF3B6", vlc: "\uE57B", voicemail: "\uE57C", volcano: "\uFA82", volcano-outline: "\uFA83", volleyball: "\uE9B3", volume-high: "\uE57D", volume-low: "\uE57E", volume-medium: "\uE57F", volume-minus: "\uE75D", volume-mute: "\uE75E", volume-off: "\uE580", volume-plus: "\uE75C", volume-source: "\uF11F", volume-variant-off: "\uEE07", volume-vibrate: "\uF120", vote: "\uEA1E", vote-outline: "\uEA1F", vpn: "\uE581", vuejs: "\uE843", vuetify: "\uEE6C", walk: "\uE582", wall: "\uE7FD", wall-fire: "\uFA10", wall-sconce: "\uE91B", wall-sconce-flat: "\uE91C", wall-sconce-flat-outline: "\uF7C8", wall-sconce-flat-variant: "\uE41B", wall-sconce-flat-variant-outline: "\uF7C9", wall-sconce-outline: "\uF7CA", wall-sconce-round: "\uE747", wall-sconce-round-outline: "\uF7CB", wall-sconce-round-variant: "\uE91D", wall-sconce-round-variant-outline: "\uF7CC", wallet: "\uE583", wallet-giftcard: "\uE584", wallet-membership: "\uE585", wallet-outline: "\uEBDC", wallet-plus: "\uEF8D", wallet-plus-outline: "\uEF8E", wallet-travel: "\uE586", wallpaper: "\uEE08", wan: "\uE587", wardrobe: "\uEF8F", wardrobe-outline: "\uEF90", warehouse: "\uEF80", washing-machine: "\uE729", washing-machine-alert: "\uF1BB", washing-machine-off: "\uF1BC", watch: "\uE588", watch-export: "\uE589", watch-export-variant: "\uE894", watch-import: "\uE58A", watch-import-variant: "\uE895", watch-variant: "\uE896", watch-vibrate: "\uE6B0", watch-vibrate-off: "\uECD9", water: "\uE58B", water-alert: "\uF501", water-alert-outline: "\uF502", water-boiler: "\uEF91", water-boiler-alert: "\uF1B2", water-boiler-off: "\uF1B3", water-check: "\uF503", water-check-outline: "\uF504", water-circle: "\uF805", water-minus: "\uF505", water-minus-outline: "\uF506", water-off: "\uE58C", water-off-outline: "\uF507", water-opacity: "\uF854", water-outline: "\uEE09", water-percent: "\uE58D", water-percent-alert: "\uF508", water-plus: "\uF509", water-plus-outline: "\uF50A", water-polo: "\uF29F", water-pump: "\uE58E", water-pump-off: "\uEF92", water-remove: "\uF50B", water-remove-outline: "\uF50C", water-sync: "\uF7C5", water-thermometer: "\uFA84", water-thermometer-outline: "\uFA85", water-well: "\uF06A", water-well-outline: "\uF06B", waterfall: "\uF848", watering-can: "\uF480", watering-can-outline: "\uF481", watermark: "\uE611", wave: "\uEF2D", waveform: "\uF47C", waves: "\uE78C", waves-arrow-left: "\uF858", waves-arrow-right: "\uF859", waves-arrow-up: "\uF85A", waze: "\uEBDD", weather-cloudy: "\uE58F", weather-cloudy-alert: "\uEF2E", weather-cloudy-arrow-right: "\uEE6D", weather-cloudy-clock: "\uF8F5", weather-fog: "\uE590", weather-hail: "\uE591", weather-hazy: "\uEF2F", weather-hurricane: "\uE897", weather-lightning: "\uE592", weather-lightning-rainy: "\uE67D", weather-night: "\uE593", weather-night-partly-cloudy: "\uEF30", weather-partly-cloudy: "\uE594", weather-partly-lightning: "\uEF31", weather-partly-rainy: "\uEF32", weather-partly-snowy: "\uEF33", weather-partly-snowy-rainy: "\uEF34", weather-pouring: "\uE595", weather-rainy: "\uE596", weather-snowy: "\uE597", weather-snowy-heavy: "\uEF35", weather-snowy-rainy: "\uE67E", weather-sunny: "\uE598", weather-sunny-alert: "\uEF36", weather-sunny-off: "\uF4E3", weather-sunset: "\uE599", weather-sunset-down: "\uE59A", weather-sunset-up: "\uE59B", weather-tornado: "\uEF37", weather-windy: "\uE59C", weather-windy-variant: "\uE59D", web: "\uE59E", web-box: "\uEF93", web-cancel: "\uF78F", web-check: "\uE788", web-clock: "\uF249", web-minus: "\uF09F", web-off: "\uEA8D", web-plus: "\uE032", web-refresh: "\uF790", web-remove: "\uE550", web-sync: "\uF791", webcam: "\uE59F", webcam-off: "\uF736", webhook: "\uE62E", webpack: "\uE72A", webrtc: "\uF247", wechat: "\uE610", weight: "\uE5A0", weight-gram: "\uED3E", weight-kilogram: "\uE5A1", weight-lifter: "\uF15C", weight-pound: "\uE9B4", whatsapp: "\uE5A2", wheel-barrow: "\uF4F1", wheelchair: "\uFA86", wheelchair-accessibility: "\uE5A3", whistle: "\uE9B5", whistle-outline: "\uF2BB", white-balance-auto: "\uE5A4", white-balance-incandescent: "\uE5A5", white-balance-iridescent: "\uE5A6", white-balance-sunny: "\uE5A7", widgets: "\uE72B", widgets-outline: "\uF354", wifi: "\uE5A8", wifi-alert: "\uF6B4", wifi-arrow-down: "\uF6B5", wifi-arrow-left: "\uF6B6", wifi-arrow-left-right: "\uF6B7", wifi-arrow-right: "\uF6B8", wifi-arrow-up: "\uF6B9", wifi-arrow-up-down: "\uF6BA", wifi-cancel: "\uF6BB", wifi-check: "\uF6BC", wifi-cog: "\uF6BD", wifi-lock: "\uF6BE", wifi-lock-open: "\uF6BF", wifi-marker: "\uF6C0", wifi-minus: "\uF6C1", wifi-off: "\uE5A9", wifi-plus: "\uF6C2", wifi-refresh: "\uF6C3", wifi-remove: "\uF6C4", wifi-settings: "\uF6C5", wifi-star: "\uEE0A", wifi-strength-1: "\uE91E", wifi-strength-1-alert: "\uE91F", wifi-strength-1-lock: "\uE920", wifi-strength-1-lock-open: "\uF6CA", wifi-strength-2: "\uE921", wifi-strength-2-alert: "\uE922", wifi-strength-2-lock: "\uE923", wifi-strength-2-lock-open: "\uF6CB", wifi-strength-3: "\uE924", wifi-strength-3-alert: "\uE925", wifi-strength-3-lock: "\uE926", wifi-strength-3-lock-open: "\uF6CC", wifi-strength-4: "\uE927", wifi-strength-4-alert: "\uE928", wifi-strength-4-lock: "\uE929", wifi-strength-4-lock-open: "\uF6CD", wifi-strength-alert-outline: "\uE92A", wifi-strength-lock-open-outline: "\uF6CE", wifi-strength-lock-outline: "\uE92B", wifi-strength-off: "\uE92C", wifi-strength-off-outline: "\uE92D", wifi-strength-outline: "\uE92E", wifi-sync: "\uF6C6", wikipedia: "\uE5AB", wind-power: "\uFA87", wind-power-outline: "\uFA88", wind-turbine: "\uEDA4", wind-turbine-alert: "\uF9AA", wind-turbine-check: "\uF9AB", window-close: "\uE5AC", window-closed: "\uE5AD", window-closed-variant: "\uF1DA", window-maximize: "\uE5AE", window-minimize: "\uE5AF", window-open: "\uE5B0", window-open-variant: "\uF1DB", window-restore: "\uE5B1", window-shutter: "\uF11B", window-shutter-alert: "\uF11C", window-shutter-cog: "\uFA89", window-shutter-open: "\uF11D", window-shutter-settings: "\uFA8A", windsock: "\uF5F9", wiper: "\uEAE8", wiper-wash: "\uEDA5", wiper-wash-alert: "\uF8DE", wizard-hat: "\uF476", wordpress: "\uE5B3", wrap: "\uE5B5", wrap-disabled: "\uEBDE", wrench: "\uE5B6", wrench-clock: "\uF9A2", wrench-outline: "\uEBDF", xamarin: "\uE844", xml: "\uE5BF", xmpp: "\uE7FE", yahoo: "\uEB4E", yeast: "\uE5C0", yin-yang: "\uE67F", yoga: "\uF17B", youtube: "\uE5C2", youtube-gaming: "\uE847", youtube-studio: "\uE846", youtube-subscription: "\uED3F", youtube-tv: "\uE447", yurt: "\uF515", z-wave: "\uEAE9", zend: "\uEAEA", zigbee: "\uED40", zip-box: "\uE5C3", zip-box-outline: "\uEFF9", zip-disk: "\uEA22", zodiac-aquarius: "\uEA7C", zodiac-aries: "\uEA7D", zodiac-cancer: "\uEA7E", zodiac-capricorn: "\uEA7F", zodiac-gemini: "\uEA80", zodiac-leo: "\uEA81", zodiac-libra: "\uEA82", zodiac-pisces: "\uEA83", zodiac-sagittarius: "\uEA84", zodiac-scorpio: "\uEA85", zodiac-taurus: "\uEA86", zodiac-virgo: "\uEA87" } + # yamllint enable rule:line-length rule:braces + + ##### Nextion dict #### + nextion: + color: + blue: [0, 128, 248] + grey_dark: [40, 44, 40] + grey_light: [128, 128, 128] + grey_super_light: [200, 204, 200] + grey_white: [225, 225, 225] + red: [248, 0, 0] + white: [255, 255, 255] + yellow: [248, 248, 0] + #### Colors from HA Style: + green: [76, 175, 80] + orange: [255, 152, 0] + cyan: [0, 188, 212] + deep_orange: [255, 87, 34] + amber: [255, 193, 7] + "on": !input icon_color_fallback_on + "off": !input icon_color_fallback_off + disabled: [189, 189, 189] + unknown: [3, 6, 3] + unavailable: [3, 6, 3] + icon: + domain: + air_quality: "\uED42" # mdi:air-filter + alarm_control_panel: "\uE497" # mdi:shield + alert: "\uE025" # mdi:alert + automation: "\uE6A8" # mdi:robot + binary_sensor: "\uE7C0" # mdi:dip-switch + button: "\uED76" # mdi:gesture-tap-hold + calendar: "\uE0EC" # mdi:calendar + camera: "\uE566" # mdi:video + climate: "\uE392" # mdi:thermostat + configurator: "\uE492" # mdi:cog + conversation: "\uE36B" # mdi:microphone (HA uses mdi:microphone-message, not available for Nextion) + counter: "\uE198" # mdi:counter + cover: "\uE0AB" # mdi:blinds + device_tracker: "\uF2A9" # mdi:lan-check (I couldn't find the default icon in HA) + event: "\uF2A7" # mdi:gesture-tap-button + fan: "\uE20F" # mdi:fan + datetime: "\uE0EF" # mdi:calendar-clock + date: "\uE0EC" # mdi:calendar + demo: "\uE7CF" # mdi:home-assistant + google_assistant: "\uE7CC" # mdi:google-assistant + group: "\uE2B0" # mdi:google-circles-communities (This icon was deprecated by Google) + homeassistant: "\uE7CF" # mdi:home-assistant + homekit: "\uE7D0" # mdi:home-utomation + humidifier: "\uF098" # mdi:air-humidifier + image: "\uE2E8" # mdi:image + image_processing: "\uE2F3" # mdi:image-filter-frames + input_boolean: "\uEA19" # mdi:toggle-switch-outline + input_button: "\uF2A7" # mdi:gesture-tap-button (HA uses mdi:button-pointer, not available for Nextion) + input_datetime: "\uE0EF" # mdi:calendar-clock + input_number: "\uE444" # mdi:ray-vertex + input_select: "\uE278" # mdi:format-list-bulleted + input_text: "\uE60D" # mdi:form-textbox + lawn_mower: "\uF1F6" # mdi:robot-mower + light: "\uE334" # mdi:lightbulb + mailbox: "\uE6ED" # mdi:mailbox + media_player: "\uE117" # mdi:cast + notify: "\uE17C" # mdi:comment-alert + number: "\uE444" # mdi:ray-vertex + persistent_notification: "\uE099" # mdi:bell + person: "\uE003" # mdi:account + plant: "\uE249" # mdi:flower + proximity: "\uE038" # mdi:apple-safari + remote: "\uE453" # mdi:remote + scene: "\uE3D7" # mdi:palette + schedule: "\uE0EF" # mdi:calendar-clock + script: "\uEBC1" # mdi:script-text + select: "\uE278" # mdi:format-list-bulleted + sensor: "\uE207" # mdi:eye, + simple_alarm: "\uE099" # mdi:bell + siren: "\uE0E5" # mdi:bullhorn + stt: "\uE36B" # mdi:microphone (HA uses mdi:microphone-message, not available for Nextion) + sun: '{{ "\uE598" if sun_is_up else "\uE593" }}' # mdi:weather-sunny or mdi:weather-night + switch: "\uE97D" # mdi:light-switch + text: "\uE60D" # mdi:form-textbox + todo: "\uF0D3" # mdi:clipboard-list + time: "\uE953" # mdi:clock + timer: "\uE51A" # mdi:timer-outline + tts: "\uE4C2" # mdi:speaker (HA uses mdi:speaker-message, not available for Nextion) + update: "\uE3D2" # mdi:package + updater: "\uE166" # mdi:cloud-upload + vacuum: "\uE70C" # mdi:robot-vacuum + wake_word: "\uF2D0" # mdi:chat-sleep + weather: "\uEF34" # mdi:weather-partly-snowy-rainy + zone: "\uE351" # mdi:map-marker-radius + unknown: "\uE027" # mdi:alert-circle + weather: + lightning: "\uE592" # mdi:weather-lightning + protect: "\uF05C" # mdi:shield-sun + rain: "\uE595" # mdi:weather-pouring + sun: "\uE5A7" # mdi:white-balance-sunny + wind: "\uE59C" # mdi:weather-windy + gauge: "\uE299" # mdi:gauge + unknown: "\uE027" # mdi:alert-circle + pic: + button: + "off": 35 + "on": 36 + weather: + sunny: '{{ 2 if sun_is_up else 15}}' # some weather providers returns "sunny" for "clear-night" + cloudy: 3 + rainy: 4 + pouring: 5 + snowy: 6 + hail: 7 + snowy_rainy: 7 + snowy-rainy: 7 + fog: 8 + windy: 9 + windy_variant: 9 + windy-variant: 9 + lightning: 10 + partlycloudy: '{{ 11 if sun_is_up else 12}}' + lightning_rainy: '{{ 13 if sun_is_up else 14}}' + lightning-rainy: '{{ 13 if sun_is_up else 14}}' + execptional: '{{ 13 if sun_is_up else 14}}' + clear_night: 15 + clear-night: 15 + unknown: 1 + unavailable: 1 + + ##### MUI Multilingual User Interface ##### + language_tmp: !input 'language' + language: > + {{ + language_tmp + if language_tmp is string + and language_tmp in ["ar", "bg", "hr", "cs", "da", "nl", "et", "fi", "fr", "de", "el", "he", "hu", "id", "it", "ja", + "ko", "lv", "lt", "nb", "pl", "pt", "ro", "ru", "sk", "sl", "es", "sv", "tr", "uk", "zh-tw"] + else "en" + }} + + mui: + ar: # Arabic + weekdays: + mon: الاثنين + tue: الثلاثاء + wed: الأربعاء + thu: الخميس + fri: الجمعة + sat: السبت + sun: الأحد + weekdays_short: + mon: اثن + tue: ثلا + wed: أرب + thu: خمي + fri: جمع + sat: سبت + sun: أحد + months: + jan: يناير + feb: فبراير + mar: مارس + apr: أبريل + may: مايو + jun: يونيو + jul: يوليو + aug: أغسطس + sep: سبتمبر + oct: أكتوبر + nov: نوفمبر + dec: ديسمبر + months_short: + jan: ينا + feb: فبر + mar: مار + apr: أبر + may: ماي + jun: يون + jul: يول + aug: أغس + sep: سبت + oct: أكت + nov: نوف + dec: ديس + relative_day: + today: اليوم + tomorrow: غدًا + in_2_days: بعد يومين + in_3_days: بعد ثلاثة أيام + in_4_days: بعد أربعة أيام + climate: + states: + "on": مشغل + "off": مطفأ + heat: تدفئة + please_confirm: يرجى التأكيد + unavailable: غير متاح + unknown: مجهول + no_name: بدون اسم + alarm: + home: في المنزل + away: بعيد + night: ليل + vacation: إجازة + bypass: تجاوز + disarm: نزع السلاح + settings: + reboot: إعادة تشغيل + sleep: وضع النوم + brightness: سطوع + bright: مشرق + dimming: تعتيم + dim: خافت + meridiem: + am: صباحاً + pm: مساءً + bg: # Bulgarian + weekdays: + mon: Понеделник + tue: Вторник + wed: Сряда + thu: Четвъртък + fri: Петък + sat: Събота + sun: Неделя + weekdays_short: + mon: Пон + tue: Вто + wed: Сря + thu: Чет + fri: Пет + sat: Съб + sun: Нед + months: + jan: Януари + feb: Февруари + mar: Март + apr: Април + may: Май + jun: Юни + jul: Юли + aug: Август + sep: Септември + oct: Октомври + nov: Ноември + dec: Декември + months_short: + jan: Яну + feb: Фев + mar: Мар + apr: Апр + may: Май + jun: Юни + jul: Юли + aug: Авг + sep: Сеп + oct: Окт + nov: Ное + dec: Дек + relative_day: + today: Днес + tomorrow: Утре + in_2_days: След 2 дни + in_3_days: След 3 дни + in_4_days: След 4 дни + climate: + states: + "on": Включен + "off": Изключен + heat: Отопление + please_confirm: Моля, потвърдете + unavailable: Недостъпен + unknown: Неизвестен + no_name: Няма име + alarm: + home: Вкъщи + away: Навън + night: Нощ + vacation: Ваканция + bypass: Заобикаляне + disarm: Разоръжаване + settings: + reboot: Рестартиране + sleep: Сън + brightness: Яркост + bright: Ярък + dimming: Затъмняване + dim: Тъмен + meridiem: + am: AM + pm: PM + cs: # Czech + weekdays: + mon: Pondělí + tue: Úterý + wed: Středa + thu: Čtvrtek + fri: Pátek + sat: Sobota + sun: Neděle + weekdays_short: + mon: Po + tue: Út + wed: St + thu: Čt + fri: Pá + sat: So + sun: Ne + months: + jan: Leden + feb: Únor + mar: Březen + apr: Duben + may: Květen + jun: Červen + jul: Červenec + aug: Srpen + sep: Září + oct: Říjen + nov: Listopad + dec: Prosinec + months_short: + jan: Led + feb: Úno + mar: Bře + apr: Dub + may: Kvě + jun: Čvn + jul: Čvc + aug: Srp + sep: Zář + oct: Říj + nov: Lis + dec: Pro + relative_day: + today: Dnes + tomorrow: Zítra + in_2_days: Za 2 dny + in_3_days: Za 3 dny + in_4_days: Za 4 dny + climate: + states: + "on": Zapnuto + "off": Vypnuto + heat: Topení + please_confirm: Prosím, potvrďte + unavailable: Nedostupné + unknown: Neznámý + no_name: Bez názvu + alarm: + home: Doma + away: Pryč + night: Noc + vacation: Dovolená + bypass: Obcházet + disarm: Odjistit + settings: + reboot: Restart + sleep: Spánek + brightness: Jas + bright: Světlý + dimming: Ztmavení + dim: Tmavý + meridiem: + am: dop. + pm: odp. + da: # Danish + weekdays: + mon: Mandag + tue: Tirsdag + wed: Onsdag + thu: Torsdag + fri: Fredag + sat: Lørdag + sun: Søndag + weekdays_short: + mon: Man + tue: Tir + wed: Ons + thu: Tor + fri: Fre + sat: Lør + sun: Søn + months: + jan: Januar + feb: Februar + mar: Marts + apr: April + may: Maj + jun: Juni + jul: Juli + aug: August + sep: September + oct: Oktober + nov: November + dec: December + months_short: + jan: Jan + feb: Feb + mar: Mar + apr: Apr + may: Maj + jun: Jun + jul: Jul + aug: Aug + sep: Sep + oct: Okt + nov: Nov + dec: Dec + relative_day: + today: I dag + tomorrow: I morgen + in_2_days: Om 2 dage + in_3_days: Om 3 dage + in_4_days: Om 4 dage + climate: + states: + "on": Tændt + "off": Slukket + heat: Varme + please_confirm: Bekræft venligst + unavailable: Utilgængelig + unknown: Ukendt + no_name: Intet navn + alarm: + home: Hjemme + away: Væk + night: Nat + vacation: Ferie + bypass: Omkørsel + disarm: Afvæbne + settings: + reboot: Genstart + sleep: Sove + brightness: Lysstyrke + bright: Lys + dimming: Dæmpning + dim: Dæmpet + meridiem: + am: FM + pm: EM + de: # German + weekdays: + mon: Montag + tue: Dienstag + wed: Mittwoch + thu: Donnerstag + fri: Freitag + sat: Samstag + sun: Sonntag + weekdays_short: + mon: Mo + tue: Di + wed: Mi + thu: Do + fri: Fr + sat: Sa + sun: So + months: + jan: Januar + feb: Februar + mar: März + apr: April + may: Mai + jun: Juni + jul: Juli + aug: August + sep: September + oct: Oktober + nov: November + dec: Dezember + months_short: + jan: Jan + feb: Feb + mar: Mär + apr: Apr + may: Mai + jun: Jun + jul: Jul + aug: Aug + sep: Sep + oct: Okt + nov: Nov + dec: Dez + relative_day: + today: Heute + tomorrow: Morgen + in_2_days: In 2 Tagen + in_3_days: In 3 Tagen + in_4_days: In 4 Tagen + climate: + states: + "on": Ein + "off": Aus + heat: Heizen + please_confirm: Bitte bestätigen + unavailable: Nicht verfügbar + unknown: Unbekannt + no_name: Kein Name + alarm: + home: Zuhause + away: Abwesend + night: Nacht + vacation: Urlaub + bypass: Umgehen + disarm: Entwaffnen + settings: + reboot: Neustart + sleep: Schlafmodus + brightness: Helligkeit + bright: Hell + dimming: Dimmen + dim: Gedimmt + meridiem: + am: vorm. + pm: nachm. + el: # Greek + weekdays: + mon: Δευτέρα + tue: Τρίτη + wed: Τετάρτη + thu: Πέμπτη + fri: Παρασκευή + sat: Σάββατο + sun: Κυριακή + weekdays_short: + mon: Δευ + tue: Τρι + wed: Τετ + thu: Πεμ + fri: Παρ + sat: Σαβ + sun: Κυρ + months: + jan: Ιανουάριος + feb: Φεβρουάριος + mar: Μάρτιος + apr: Απρίλιος + may: Μάιος + jun: Ιούνιος + jul: Ιούλιος + aug: Αύγουστος + sep: Σεπτέμβριος + oct: Οκτώβριος + nov: Νοέμβριος + dec: Δεκέμβριος + months_short: + jan: Ιαν + feb: Φεβ + mar: Μαρ + apr: Απρ + may: Μαι + jun: Ιουν + jul: Ιουλ + aug: Αυγ + sep: Σεπ + oct: Οκτ + nov: Νοε + dec: Δεκ + relative_day: + today: Σήμερα + tomorrow: Αύριο + in_2_days: σε 2 ημέρες + in_3_days: σε 3 ημέρες + in_4_days: σε 4 ημέρες + climate: + states: + "on": Ενεργό + "off": Ανενεργό + heat: Θέρμανση + please_confirm: Παρακαλώ επιβεβαιώστε + unavailable: Μη διαθέσιμο + unknown: Άγνωστο + no_name: Χωρίς όνομα + alarm: + home: Σπίτι + away: Μακριά + night: Νύχτα + vacation: Διακοπές + bypass: Παράκαμψη + disarm: Αφοπλισμός + settings: + reboot: Επανεκκίνηση + sleep: Ύπνος + brightness: Φωτεινότητα + bright: Φωτεινό + dimming: Σκίαση + dim: Σκοτεινό + meridiem: + am: πμ + pm: μμ + en: # English + weekdays: + mon: Monday + tue: Tuesday + wed: Wednesday + thu: Thursday + fri: Friday + sat: Saturday + sun: Sunday + weekdays_short: + mon: Mon + tue: Tue + wed: Wed + thu: Thu + fri: Fri + sat: Sat + sun: Sun + months: + jan: January + feb: February + mar: March + apr: April + may: May + jun: June + jul: July + aug: August + sep: September + oct: October + nov: November + dec: December + months_short: + jan: Jan + feb: Feb + mar: Mar + apr: Apr + may: May + jun: Jun + jul: Jul + aug: Aug + sep: Sep + oct: Oct + nov: Nov + dec: Dec + relative_day: + today: Today + tomorrow: Tomorrow + in_2_days: In 2 days + in_3_days: In 3 days + in_4_days: In 4 days + climate: + states: + "on": "on" + "off": "off" + heat: heat + please_confirm: Please confirm + unavailable: Unavailable + unknown: Unknown + no_name: No name + alarm: + home: Home + away: Away + night: Night + vacation: Holiday + bypass: Custom bypass + disarm: Disarm + settings: + reboot: Reboot + sleep: Sleep mode + brightness: Brightness + bright: Bright + dimming: Dimming + dim: Dim + meridiem: + am: AM + pm: PM + es: # Spanish + weekdays: + mon: Lunes + tue: Martes + wed: Miércoles + thu: Jueves + fri: Viernes + sat: Sábado + sun: Domingo + weekdays_short: + mon: Lun + tue: Mar + wed: Mié + thu: Jue + fri: Vie + sat: Sáb + sun: Dom + months: + jan: Enero + feb: Febrero + mar: Marzo + apr: Abril + may: Mayo + jun: Junio + jul: Julio + aug: Agosto + sep: Septiembre + oct: Octubre + nov: Noviembre + dec: Diciembre + months_short: + jan: Ene + feb: Feb + mar: Mar + apr: Abr + may: May + jun: Jun + jul: Jul + aug: Ago + sep: Sep + oct: Oct + nov: Nov + dec: Dic + relative_day: + today: Hoy + tomorrow: Mañana + in_2_days: En 2 días + in_3_days: En 3 días + in_4_days: En 4 días + climate: + states: + "on": Encendido + "off": Apagado + heat: Calentar + please_confirm: Por favor, confirme + unavailable: No disponible + unknown: Desconocido + no_name: Sin nombre + alarm: + home: Casa + away: Fuera + night: Noche + vacation: Vacaciones + bypass: Bypass + disarm: Desarmar + settings: + reboot: Reiniciar + sleep: Dormir + brightness: Brillo + bright: Brillante + dimming: Atenuación + dim: Oscuro + meridiem: + am: a.m. + pm: p.m. + et: # Estonian + weekdays: + mon: Esmaspäev + tue: Teisipäev + wed: Kolmapäev + thu: Neljapäev + fri: Reede + sat: Laupäev + sun: Pühapäev + weekdays_short: + mon: E + tue: T + wed: K + thu: N + fri: R + sat: L + sun: P + months: + jan: Jaanuar + feb: Veebruar + mar: Märts + apr: Aprill + may: Mai + jun: Juuni + jul: Juuli + aug: August + sep: September + oct: Oktoober + nov: November + dec: Detsember + months_short: + jan: Jan + feb: Veb + mar: Mär + apr: Apr + may: Mai + jun: Jun + jul: Jul + aug: Aug + sep: Sep + oct: Okt + nov: Nov + dec: Dets + relative_day: + today: Täna + tomorrow: Homme + in_2_days: 2 päeva pärast + in_3_days: 3 päeva pärast + in_4_days: 4 päeva pärast + climate: + states: + "on": sees + "off": väljas + heat: kütte + please_confirm: Palun kinnitage + unavailable: Pole saadaval + unknown: Tundmatu + no_name: Nime pole + alarm: + home: Kodus + away: Ära + night: Öö + vacation: Puhkus + bypass: Möödaviik + disarm: Desarmeerima + settings: + reboot: Taaskäivita + sleep: Uni + brightness: Heledus + bright: Ere + dimming: Hämardamine + dim: Hämar + meridiem: + am: e.l. + pm: p.l. + fi: # Finnish + weekdays: + mon: maanantai + tue: tiistai + wed: keskiviikko + thu: torstai + fri: perjantai + sat: lauantai + sun: sunnuntai + weekdays_short: + mon: ma + tue: ti + wed: ke + thu: to + fri: pe + sat: la + sun: su + months: + jan: tammikuu + feb: helmikuu + mar: maaliskuu + apr: huhtikuu + may: toukokuu + jun: kesäkuu + jul: heinäkuu + aug: elokuu + sep: syyskuu + oct: lokakuu + nov: marraskuu + dec: joulukuu + months_short: + jan: tammi + feb: helmi + mar: maalis + apr: huhti + may: touko + jun: kesä + jul: heinä + aug: elo + sep: syys + oct: loka + nov: marras + dec: joulu + relative_day: + today: Tänään + tomorrow: Huomenna + in_2_days: 2 päivän päästä + in_3_days: 3 päivän päästä + in_4_days: 4 päivän päästä + climate: + states: + "on": päällä + "off": pois päältä + heat: lämpö + please_confirm: Vahvista + unavailable: Ei saatavilla + unknown: Tuntematon + no_name: Nimeämätön + alarm: + home: Kotona + away: Poissa + night: Yö + vacation: Loma + bypass: Ohitus + disarm: Pois päältä + settings: + reboot: Käynnistä uudelleen + sleep: Lepotila + brightness: Kirkkaus + bright: Kirkas + dimming: Himmennys + dim: Himmeä + meridiem: + am: aamupäivä + pm: iltapäivä + fr: # French + weekdays: + mon: Lundi + tue: Mardi + wed: Mercredi + thu: Jeudi + fri: Vendredi + sat: Samedi + sun: Dimanche + weekdays_short: + mon: Lun + tue: Mar + wed: Mer + thu: Jeu + fri: Ven + sat: Sam + sun: Dim + months: + jan: Janvier + feb: Février + mar: Mars + apr: Avril + may: Mai + jun: Juin + jul: Juillet + aug: Août + sep: Septembre + oct: Octobre + nov: Novembre + dec: Décembre + months_short: + jan: Jan + feb: Fév + mar: Mar + apr: Avr + may: Mai + jun: Jun + jul: Jul + aug: Aoû + sep: Sep + oct: Oct + nov: Nov + dec: Déc + relative_day: + today: Aujourd'hui + tomorrow: Demain + in_2_days: Dans 2 jours + in_3_days: Dans 3 jours + in_4_days: Dans 4 jours + climate: + states: + "on": Activé + "off": Désactivé + heat: Chauffage + please_confirm: Veuillez confirmer + unavailable: Indisponible + unknown: Inconnu + no_name: Sans nom + alarm: + home: À la maison + away: Absent + night: Nuit + vacation: Vacances + bypass: Contournement + disarm: Désarmer + settings: + reboot: Redémarrer + sleep: Veille + brightness: Luminosité + bright: Lumineux + dimming: Atténuation + dim: Sombre + meridiem: + am: AM + pm: PM + he: # Hebrew + weekdays: + mon: ינש + tue: ישילש + wed: יעיבר + thu: ישימח + fri: ישיש + sat: תבש + sun: ןושאר + weekdays_short: + mon: ב' + tue: ג' + wed: ד' + thu: ה' + fri: ו' + sat: ש' + sun: א' + months: + jan: נאוני + feb: ראורבפ + mar: ץרמ + apr: לירפא + may: יאמ + jun: ינוי + jul: ילוי + aug: טסוגוא + sep: רבמטפס + oct: רבוטקוא + nov: רבמבונ + dec: רבמצד + months_short: + jan: וני' + feb: רבפ' + mar: ץרמ + apr: רפא' + may: יאמ + jun: נוי' + jul: לוי' + aug: גוא' + sep: טפס' + oct: קוא' + nov: בונ' + dec: מצד' + relative_day: + today: םויה + tomorrow: רחמ + in_2_days: םיימוי דוע + in_3_days: םימי 3 דוע + in_4_days: םימי 4 דוע + climate: + states: + "on": ליעפ + "off": יובכ + heat: םומיח + please_confirm: רשא אנא + unavailable: ןימז אל + unknown: עודי אל + no_name: םש אלל + alarm: + home: תיבב + away: הצוחה + night: הליל + vacation: השפוח + bypass: הפיקע + disarm: לורטנ + settings: + reboot: שדחמ הלעפה + sleep: הניש + brightness: תוריהב + bright: ריהב + dimming: הכשחה + dim: ההכ + meridiem: + am: צ"הנפל + pm: צ"החא + hr: # Croatian + weekdays: + mon: Ponedjeljak + tue: Utorak + wed: Srijeda + thu: Četvrtak + fri: Petak + sat: Subota + sun: Nedjelja + weekdays_short: + mon: Pon + tue: Uto + wed: Sri + thu: Čet + fri: Pet + sat: Sub + sun: Ned + months: + jan: Siječanj + feb: Veljača + mar: Ožujak + apr: Travanj + may: Svibanj + jun: Lipanj + jul: Srpanj + aug: Kolovoz + sep: Rujan + oct: Listopad + nov: Studeni + dec: Prosinac + months_short: + jan: Sij + feb: Velj + mar: Ožu + apr: Tra + may: Svi + jun: Lip + jul: Srp + aug: Kol + sep: Ruj + oct: Lis + nov: Stu + dec: Pro + relative_day: + today: Danas + tomorrow: Sutra + in_2_days: Za 2 dana + in_3_days: Za 3 dana + in_4_days: Za 4 dana + climate: + states: + "on": Uključeno + "off": Isključeno + heat: Grijanje + please_confirm: Molimo potvrdite + unavailable: Nedostupno + unknown: Nepoznato + no_name: Bez imena + alarm: + home: Kod kuće + away: Odsutan + night: Noć + vacation: Odmor + bypass: Zaobići + disarm: Razoružati + settings: + reboot: Ponovno pokretanje + sleep: Spavanje + brightness: Svjetlina + bright: Svijetlo + dimming: Zatamnjenje + dim: Tamno + meridiem: + am: AM + pm: PM + hu: # Hungarian + weekdays: + mon: Hétfő + tue: Kedd + wed: Szerda + thu: Csütörtök + fri: Péntek + sat: Szombat + sun: Vasárnap + weekdays_short: + mon: H + tue: K + wed: Sze + thu: Cs + fri: P + sat: Szo + sun: V + months: + jan: Január + feb: Február + mar: Március + apr: Április + may: Május + jun: Június + jul: Július + aug: Augusztus + sep: Szeptember + oct: Október + nov: November + dec: December + months_short: + jan: Jan + feb: Feb + mar: Márc + apr: Ápr + may: Máj + jun: Jún + jul: Júl + aug: Aug + sep: Szep + oct: Okt + nov: Nov + dec: Dec + relative_day: + today: Ma + tomorrow: Holnap + in_2_days: 2 nap múlva + in_3_days: 3 nap múlva + in_4_days: 4 nap múlva + climate: + states: + "on": Bekapcsolva + "off": Kikapcsolva + heat: Fűtés + please_confirm: Kérjük, erősítse meg + unavailable: Nem elérhető + unknown: Ismeretlen + no_name: Névtelen + alarm: + home: Otthon + away: Távol + night: Éjszaka + vacation: Szabadság + bypass: Kerülő + disarm: Hatástalanítás + settings: + reboot: Újraindítás + sleep: Alvás + brightness: Fényerő + bright: Világos + dimming: Sötétítés + dim: Sötét + meridiem: + am: DE + pm: DU + id: # Indonesian + weekdays: + mon: Senin + tue: Selasa + wed: Rabu + thu: Kamis + fri: Jumat + sat: Sabtu + sun: Minggu + weekdays_short: + mon: Sen + tue: Sel + wed: Rab + thu: Kam + fri: Jum + sat: Sab + sun: Min + months: + jan: Januari + feb: Februari + mar: Maret + apr: April + may: Mei + jun: Juni + jul: Juli + aug: Agustus + sep: September + oct: Oktober + nov: November + dec: Desember + months_short: + jan: Jan + feb: Feb + mar: Mar + apr: Apr + may: Mei + jun: Jun + jul: Jul + aug: Agu + sep: Sep + oct: Okt + nov: Nov + dec: Des + relative_day: + today: Hari ini + tomorrow: Besok + in_2_days: Dalam 2 hari + in_3_days: Dalam 3 hari + in_4_days: Dalam 4 hari + climate: + states: + "on": Menyala + "off": Mati + heat: Pemanas + please_confirm: Mohon konfirmasi + unavailable: Tidak tersedia + unknown: Tidak diketahui + no_name: Tanpa nama + alarm: + home: Di rumah + away: Jauh + night: Malam + vacation: Liburan + bypass: Bypass + disarm: Menonaktifkan + settings: + reboot: Mulai ulang + sleep: Tidur + brightness: Kecerahan + bright: Terang + dimming: Redup + dim: Redup + meridiem: + am: AM + pm: PM + it: # Italian + weekdays: + mon: Lunedì + tue: Martedì + wed: Mercoledì + thu: Giovedì + fri: Venerdì + sat: Sabato + sun: Domenica + weekdays_short: + mon: Lun + tue: Mar + wed: Mer + thu: Gio + fri: Ven + sat: Sab + sun: Dom + months: + jan: Gennaio + feb: Febbraio + mar: Marzo + apr: Aprile + may: Maggio + jun: Giugno + jul: Luglio + aug: Agosto + sep: Settembre + oct: Ottobre + nov: Novembre + dec: Dicembre + months_short: + jan: Gen + feb: Feb + mar: Mar + apr: Apr + may: Mag + jun: Giu + jul: Lug + aug: Ago + sep: Set + oct: Ott + nov: Nov + dec: Dic + relative_day: + today: Oggi + tomorrow: Domani + in_2_days: Dopodomani + in_3_days: In 3 giorni + in_4_days: In 4 giorni + climate: + states: + "on": Acceso + "off": Spento + heat: Riscaldamento + please_confirm: Confermare + unavailable: Non disponibile + unknown: Sconosciuto + no_name: Senza nome + alarm: + home: Casa + away: Fuori casa + night: Notte + vacation: Vacanza + bypass: Bypass + disarm: Disarmato + settings: + reboot: Riavvio + sleep: Modalità ECO + brightness: Luminosità + bright: Luminoso + dimming: Diminuzione + dim: Diminuito + meridiem: + am: AM + pm: PM + ja: # Japanese + weekdays: + mon: 月曜日 + tue: 火曜日 + wed: 水曜日 + thu: 木曜日 + fri: 金曜日 + sat: 土曜日 + sun: 日曜日 + weekdays_short: + mon: 月 + tue: 火 + wed: 水 + thu: 木 + fri: 金 + sat: 土 + sun: 日 + months: + jan: 1月 + feb: 2月 + mar: 3月 + apr: 4月 + may: 5月 + jun: 6月 + jul: 7月 + aug: 8月 + sep: 9月 + oct: 10月 + nov: 11月 + dec: 12月 + months_short: + jan: 1月 + feb: 2月 + mar: 3月 + apr: 4月 + may: 5月 + jun: 6月 + jul: 7月 + aug: 8月 + sep: 9月 + oct: 10月 + nov: 11月 + dec: 12月 + relative_day: + today: 今日 + tomorrow: 明日 + in_2_days: 明後日 + in_3_days: 3日後 + in_4_days: 4日後 + climate: + states: + "on": オン + "off": オフ + heat: 暖房 + please_confirm: 確認してください + unavailable: 利用不可 + unknown: 不明 + no_name: 名前なし + alarm: + home: 自宅 + away: 外出 + night: 夜間 + vacation: 休暇 + bypass: バイパス + disarm: 解除 + settings: + reboot: 再起動 + sleep: スリープモード + brightness: 明るさ + bright: 明るい + dimming: 調光 + dim: 低輝度 + meridiem: + am: 午前 + pm: 午後 + ko: # Korean + weekdays: + mon: 월요일 + tue: 화요일 + wed: 수요일 + thu: 목요일 + fri: 금요일 + sat: 토요일 + sun: 일요일 + weekdays_short: + mon: 월 + tue: 화 + wed: 수 + thu: 목 + fri: 금 + sat: 토 + sun: 일 + months: + jan: 1월 + feb: 2월 + mar: 3월 + apr: 4월 + may: 5월 + jun: 6월 + jul: 7월 + aug: 8월 + sep: 9월 + oct: 10월 + nov: 11월 + dec: 12월 + months_short: + jan: 1월 + feb: 2월 + mar: 3월 + apr: 4월 + may: 5월 + jun: 6월 + jul: 7월 + aug: 8월 + sep: 9월 + oct: 10월 + nov: 11월 + dec: 12월 + relative_day: + today: 오늘 + tomorrow: 내일 + in_2_days: 이틀 후 + in_3_days: 사흘 후 + in_4_days: 나흘 후 + climate: + states: + "on": 켜짐 + "off": 꺼짐 + heat: 난방 + please_confirm: 확인해 주세요 + unavailable: 사용 불가 + unknown: 알 수 없음 + no_name: 이름 없음 + alarm: + home: 집 + away: 외출 + night: 밤 + vacation: 휴가 + bypass: 우회 + disarm: 해제 + settings: + reboot: 재부팅 + sleep: 슬립 모드 + brightness: 밝기 + bright: 밝은 + dimming: 조광 + dim: 어두운 + meridiem: + am: 오전 + pm: 오후 + lt: # Lithuanian + weekdays: + mon: Pirmadienis + tue: Antradienis + wed: Trečiadienis + thu: Ketvirtadienis + fri: Penktadienis + sat: Šeštadienis + sun: Sekmadienis + weekdays_short: + mon: Pir + tue: Ant + wed: Tre + thu: Ket + fri: Pen + sat: Šeš + sun: Sek + months: + jan: Sausis + feb: Vasaris + mar: Kovas + apr: Balandis + may: Gegužė + jun: Birželis + jul: Liepa + aug: Rugpjūtis + sep: Rugsėjis + oct: Spalis + nov: Lapkritis + dec: Gruodis + months_short: + jan: Sau + feb: Vas + mar: Kov + apr: Bal + may: Geg + jun: Bir + jul: Lie + aug: Rgp + sep: Rgs + oct: Spa + nov: Lap + dec: Gru + relative_day: + today: Šiandien + tomorrow: Rytoj + in_2_days: Po 2 dienų + in_3_days: Po 3 dienų + in_4_days: Po 4 dienų + climate: + states: + "on": Įjungta + "off": Išjungta + heat: Šildymas + please_confirm: Prašome patvirtinti + unavailable: Nepasiekiamas + unknown: Nežinomas + no_name: Be pavadinimo + alarm: + home: Namuose + away: Išvykęs + night: Naktis + vacation: Atostogos + bypass: Apeiti + disarm: Išjungti + settings: + reboot: Perkrauti + sleep: Miego režimas + brightness: Ryškumas + bright: Ryškus + dimming: Tamsinimas + dim: Tamsus + meridiem: + am: AM + pm: PM + lv: # Latvian + weekdays: + mon: Pirmdiena + tue: Otrdiena + wed: Trešdiena + thu: Ceturtdiena + fri: Piektdiena + sat: Sestdiena + sun: Svētdiena + weekdays_short: + mon: Pir + tue: Otr + wed: Tre + thu: Cet + fri: Pie + sat: Ses + sun: Sve + months: + jan: Janvāris + feb: Februāris + mar: Marts + apr: Aprīlis + may: Maijs + jun: Jūnijs + jul: Jūlijs + aug: Augusts + sep: Septembris + oct: Oktobris + nov: Novembris + dec: Decembris + months_short: + jan: Jan + feb: Feb + mar: Mar + apr: Apr + may: Mai + jun: Jūn + jul: Jūl + aug: Aug + sep: Sep + oct: Okt + nov: Nov + dec: Dec + relative_day: + today: Šodien + tomorrow: Rīt + in_2_days: Pēc 2 dienām + in_3_days: Pēc 3 dienām + in_4_days: Pēc 4 dienām + climate: + states: + "on": Ieslēgts + "off": Izslēgts + heat: Apkure + please_confirm: Lūdzu, apstipriniet + unavailable: Nav pieejams + unknown: Nezināms + no_name: Bez nosaukuma + alarm: + home: Mājās + away: Projām + night: Nakts + vacation: Atvaļinājums + bypass: Aplūkošana + disarm: Atbruņošana + settings: + reboot: Restartēt + sleep: Miega režīms + brightness: Spilgtums + bright: Spilgts + dimming: Tumšošana + dim: Tumšs + meridiem: + am: AM + pm: PM + nb: # Norwegian Bokmål + weekdays: + mon: Mandag + tue: Tirsdag + wed: Onsdag + thu: Torsdag + fri: Fredag + sat: Lørdag + sun: Søndag + weekdays_short: + mon: Man + tue: Tir + wed: Ons + thu: Tor + fri: Fre + sat: Lør + sun: Søn + months: + jan: Januar + feb: Februar + mar: Mars + apr: April + may: Mai + jun: Juni + jul: Juli + aug: August + sep: September + oct: Oktober + nov: November + dec: Desember + months_short: + jan: Jan + feb: Feb + mar: Mar + apr: Apr + may: Mai + jun: Jun + jul: Jul + aug: Aug + sep: Sep + oct: Okt + nov: Nov + dec: Des + relative_day: + today: I dag + tomorrow: I morgen + in_2_days: Om 2 dager + in_3_days: Om 3 dager + in_4_days: Om 4 dager + climate: + states: + "on": På + "off": Av + heat: Varme + please_confirm: Vennligst bekreft + unavailable: Utilgjengelig + unknown: Ukjent + no_name: Ingen navn + alarm: + home: Hjemme + away: Borte + night: Natt + vacation: Ferie + bypass: Omkjøring + disarm: Avvæpne + settings: + reboot: Start på nytt + sleep: Søvnmodus + brightness: Lysstyrke + bright: Lys + dimming: Demping + dim: Dimmet + meridiem: + am: AM + pm: PM + nl: # Dutch + weekdays: + mon: Maandag + tue: Dinsdag + wed: Woensdag + thu: Donderdag + fri: Vrijdag + sat: Zaterdag + sun: Zondag + weekdays_short: + mon: Ma + tue: Di + wed: Wo + thu: Do + fri: Vr + sat: Za + sun: Zo + months: + jan: Januari + feb: Februari + mar: Maart + apr: April + may: Mei + jun: Juni + jul: Juli + aug: Augustus + sep: September + oct: Oktober + nov: November + dec: December + months_short: + jan: Jan + feb: Feb + mar: Mrt + apr: Apr + may: Mei + jun: Jun + jul: Jul + aug: Aug + sep: Sep + oct: Okt + nov: Nov + dec: Dec + relative_day: + today: Vandaag + tomorrow: Morgen + in_2_days: Overmorgen + in_3_days: Over 3 dagen + in_4_days: Over 4 dagen + climate: + states: + "on": Aan + "off": Uit + heat: Verwarming + please_confirm: Bevestig alstublieft + unavailable: Niet beschikbaar + unknown: Onbekend + no_name: Geen naam + alarm: + home: Thuis + away: Weg + night: Nacht + vacation: Vakantie + bypass: Omzeilen + disarm: Ontwapenen + settings: + reboot: Herstarten + sleep: Slaapstand + brightness: Helderheid + bright: Helder + dimming: Dimmen + dim: Gedimd + meridiem: + am: AM + pm: PM + pl: # Polish + weekdays: + mon: Poniedziałek + tue: Wtorek + wed: Środa + thu: Czwartek + fri: Piątek + sat: Sobota + sun: Niedziela + weekdays_short: + mon: Pon + tue: Wt + wed: Śr + thu: Czw + fri: Pt + sat: Sob + sun: Ndz + months: + jan: Styczeń + feb: Luty + mar: Marzec + apr: Kwiecień + may: Maj + jun: Czerwiec + jul: Lipiec + aug: Sierpień + sep: Wrzesień + oct: Październik + nov: Listopad + dec: Grudzień + months_short: + jan: Sty + feb: Lut + mar: Mar + apr: Kwi + may: Maj + jun: Cze + jul: Lip + aug: Sie + sep: Wrz + oct: Paź + nov: Lis + dec: Gru + relative_day: + today: Dzisiaj + tomorrow: Jutro + in_2_days: Za 2 dni + in_3_days: Za 3 dni + in_4_days: Za 4 dni + climate: + states: + "on": Włączony + "off": Wyłączony + heat: Ogrzewanie + please_confirm: Proszę potwierdzić + unavailable: Niedostępny + unknown: Nieznany + no_name: Bez nazwy + alarm: + home: W domu + away: Poza domem + night: Noc + vacation: Wakacje + bypass: Obejście + disarm: Rozbroić + settings: + reboot: Restart + sleep: Tryb uśpienia + brightness: Jasność + bright: Jasny + dimming: Ściemnianie + dim: Ciemny + meridiem: + am: AM + pm: PM + pt: # Portuguese + weekdays: + mon: Segunda-feira + tue: Terça-feira + wed: Quarta-feira + thu: Quinta-feira + fri: Sexta-feira + sat: Sábado + sun: Domingo + weekdays_short: + mon: Seg + tue: Ter + wed: Qua + thu: Qui + fri: Sex + sat: Sáb + sun: Dom + months: + jan: Janeiro + feb: Fevereiro + mar: Março + apr: Abril + may: Maio + jun: Junho + jul: Julho + aug: Agosto + sep: Setembro + oct: Outubro + nov: Novembro + dec: Dezembro + months_short: + jan: Jan + feb: Fev + mar: Mar + apr: Abr + may: Mai + jun: Jun + jul: Jul + aug: Ago + sep: Set + oct: Out + nov: Nov + dec: Dez + relative_day: + today: Hoje + tomorrow: Amanhã + in_2_days: Em 2 dias + in_3_days: Em 3 dias + in_4_days: Em 4 dias + climate: + states: + "on": Ligado + "off": Desligado + heat: Aquecimento + please_confirm: Por favor, confirme + unavailable: Indisponível + unknown: Desconhecido + no_name: Sem nome + alarm: + home: Em casa + away: Ausente + night: Noturno + vacation: Férias + bypass: Desvio + disarm: Desarmar + settings: + reboot: Reiniciar + sleep: Dormir + brightness: Brilho + bright: Claro + dimming: Escurecimento + dim: Escuro + meridiem: + am: AM + pm: PM + ro: # Romanian + weekdays: + mon: Luni + tue: Marți + wed: Miercuri + thu: Joi + fri: Vineri + sat: Sâmbătă + sun: Duminică + weekdays_short: + mon: Lun + tue: Mar + wed: Mie + thu: Joi + fri: Vin + sat: Sâm + sun: Dum + months: + jan: Ianuarie + feb: Februarie + mar: Martie + apr: Aprilie + may: Mai + jun: Iunie + jul: Iulie + aug: August + sep: Septembrie + oct: Octombrie + nov: Noiembrie + dec: Decembrie + months_short: + jan: Ian + feb: Feb + mar: Mar + apr: Apr + may: Mai + jun: Iun + jul: Iul + aug: Aug + sep: Sep + oct: Oct + nov: Nov + dec: Dec + relative_day: + today: Astăzi + tomorrow: Mâine + in_2_days: În 2 zile + in_3_days: În 3 zile + in_4_days: În 4 zile + climate: + states: + "on": Pornit + "off": Oprit + heat: Încălzire + please_confirm: Vă rugăm să confirmați + unavailable: Indisponibil + unknown: Necunoscut + no_name: Fără nume + alarm: + home: Acasă + away: Plecat + night: Noapte + vacation: Vacanță + bypass: Ocolire + disarm: Dezarmare + settings: + reboot: Repornire + sleep: Somn + brightness: Luminozitate + bright: Luminos + dimming: Diminuare + dim: Întunecat + meridiem: + am: AM + pm: PM + ru: # Russian + weekdays: + mon: Понедельник + tue: Вторник + wed: Среда + thu: Четверг + fri: Пятница + sat: Суббота + sun: Воскресенье + weekdays_short: + mon: Пн + tue: Вт + wed: Ср + thu: Чт + fri: Пт + sat: Сб + sun: Вс + months: + jan: Январь + feb: Февраль + mar: Март + apr: Апрель + may: Май + jun: Июнь + jul: Июль + aug: Август + sep: Сентябрь + oct: Октябрь + nov: Ноябрь + dec: Декабрь + months_short: + jan: Янв + feb: Фев + mar: Мар + apr: Апр + may: Май + jun: Июн + jul: Июл + aug: Авг + sep: Сен + oct: Окт + nov: Ноя + dec: Дек + relative_day: + today: Сегодня + tomorrow: Завтра + in_2_days: Через 2 дня + in_3_days: Через 3 дня + in_4_days: Через 4 дня + climate: + states: + "on": Включено + "off": Выключено + heat: Отопление + please_confirm: Пожалуйста, подтвердите + unavailable: Недоступно + unknown: Неизвестно + no_name: Без названия + alarm: + home: Дома + away: Вне дома + night: Ночь + vacation: Отпуск + bypass: Обход + disarm: Разоружение + settings: + reboot: Перезагрузка + sleep: Сон + brightness: Яркость + bright: Яркий + dimming: Затемнение + dim: Тусклый + meridiem: + am: ДП + pm: ПП + sk: # Slovak + weekdays: + mon: Pondelok + tue: Utorok + wed: Streda + thu: Štvrtok + fri: Piatok + sat: Sobota + sun: Nedeľa + weekdays_short: + mon: Po + tue: Ut + wed: St + thu: Št + fri: Pi + sat: So + sun: Ne + months: + jan: Január + feb: Február + mar: Marec + apr: Apríl + may: Máj + jun: Jún + jul: Júl + aug: August + sep: September + oct: Október + nov: November + dec: December + months_short: + jan: Jan + feb: Feb + mar: Mar + apr: Apr + may: Máj + jun: Jún + jul: Júl + aug: Aug + sep: Sep + oct: Okt + nov: Nov + dec: Dec + relative_day: + today: Dnes + tomorrow: Zajtra + in_2_days: O 2 dni + in_3_days: O 3 dni + in_4_days: O 4 dni + climate: + states: + "on": Zapnuté + "off": Vypnuté + heat: Kúrenie + please_confirm: Potvrďte, prosím + unavailable: Nedostupné + unknown: Neznámy + no_name: Bez mena + alarm: + home: Doma + away: Preč + night: Noc + vacation: Dovolenka + bypass: Obísť + disarm: Zneškodniť + settings: + reboot: Reštartovať + sleep: Spánok + brightness: Jas + bright: Svetlý + dimming: Stmavovanie + dim: Tmavý + meridiem: + am: AM + pm: PM + sl: # Slovenian + weekdays: + mon: Ponedeljek + tue: Torek + wed: Sreda + thu: Četrtek + fri: Petek + sat: Sobota + sun: Nedelja + weekdays_short: + mon: Pon + tue: Tor + wed: Sre + thu: Čet + fri: Pet + sat: Sob + sun: Ned + months: + jan: Januar + feb: Februar + mar: Marec + apr: April + may: Maj + jun: Junij + jul: Julij + aug: Avgust + sep: September + oct: Oktober + nov: November + dec: December + months_short: + jan: Jan + feb: Feb + mar: Mar + apr: Apr + may: Maj + jun: Jun + jul: Jul + aug: Avg + sep: Sep + oct: Okt + nov: Nov + dec: Dec + relative_day: + today: Danes + tomorrow: Jutri + in_2_days: Čez 2 dni + in_3_days: Čez 3 dni + in_4_days: Čez 4 dni + climate: + states: + "on": Vklopljeno + "off": Izklopljeno + heat: Ogrevanje + please_confirm: Prosimo, potrdite + unavailable: Nedosegljivo + unknown: Neznano + no_name: Brez imena + alarm: + home: Doma + away: Odsoten + night: Noč + vacation: Dopust + bypass: Obvoz + disarm: Razorožitev + settings: + reboot: Ponovni zagon + sleep: Spanje + brightness: Svetlost + bright: Svetlo + dimming: Zatemnitev + dim: Temno + meridiem: + am: dop. + pm: pop. + sv: # Swedish + weekdays: + mon: Måndag + tue: Tisdag + wed: Onsdag + thu: Torsdag + fri: Fredag + sat: Lördag + sun: Söndag + weekdays_short: + mon: Mån + tue: Tis + wed: Ons + thu: Tors + fri: Fre + sat: Lör + sun: Sön + months: + jan: Januari + feb: Februari + mar: Mars + apr: April + may: Maj + jun: Juni + jul: Juli + aug: Augusti + sep: September + oct: Oktober + nov: November + dec: December + months_short: + jan: Jan + feb: Feb + mar: Mar + apr: Apr + may: Maj + jun: Jun + jul: Jul + aug: Aug + sep: Sep + oct: Okt + nov: Nov + dec: Dec + relative_day: + today: Idag + tomorrow: Imorgon + in_2_days: Om 2 dagar + in_3_days: Om 3 dagar + in_4_days: Om 4 dagar + climate: + states: + "on": På + "off": Av + heat: Värme + please_confirm: Vänligen bekräfta + unavailable: Otillgänglig + unknown: Okänd + no_name: Inget namn + alarm: + home: Hemma + away: Borta + night: Natt + vacation: Semester + bypass: Förbigå + disarm: Avaktivera + settings: + reboot: Starta om + sleep: Vila + brightness: Ljusstyrka + bright: Ljust + dimming: Dimmning + dim: Dimma + meridiem: + am: FM + pm: EM + tr: # Turkish + weekdays: + mon: Pazartesi + tue: Salı + wed: Çarşamba + thu: Perşembe + fri: Cuma + sat: Cumartesi + sun: Pazar + weekdays_short: + mon: Pzt + tue: Sal + wed: Çar + thu: Per + fri: Cum + sat: Cmt + sun: Paz + months: + jan: Ocak + feb: Şubat + mar: Mart + apr: Nisan + may: Mayıs + jun: Haziran + jul: Temmuz + aug: Ağustos + sep: Eylül + oct: Ekim + nov: Kasım + dec: Aralık + months_short: + jan: Oca + feb: Şub + mar: Mar + apr: Nis + may: May + jun: Haz + jul: Tem + aug: Ağu + sep: Eyl + oct: Eki + nov: Kas + dec: Ara + relative_day: + today: Bugün + tomorrow: Yarın + in_2_days: 2 gün içinde + in_3_days: 3 gün içinde + in_4_days: 4 gün içinde + climate: + states: + "on": Açık + "off": Kapalı + heat: Isıtma + please_confirm: Lütfen onaylayın + unavailable: Kullanılamaz + unknown: Bilinmeyen + no_name: İsimsiz + alarm: + home: Evde + away: Dışarıda + night: Gece + vacation: Tatil + bypass: Bypass + disarm: Devre dışı bırak + settings: + reboot: Yeniden başlat + sleep: Uyku modu + brightness: Parlaklık + bright: Parlak + dimming: Karartma + dim: Karanlık + meridiem: + am: ÖÖ + pm: ÖS + uk: # Ukrainian + weekdays: + mon: Понеділок + tue: Вівторок + wed: Середа + thu: Четвер + fri: П'ятниця + sat: Субота + sun: Неділя + weekdays_short: + mon: Пн + tue: Вт + wed: Ср + thu: Чт + fri: Пт + sat: Сб + sun: Нд + months: + jan: Січень + feb: Лютий + mar: Березень + apr: Квітень + may: Травень + jun: Червень + jul: Липень + aug: Серпень + sep: Вересень + oct: Жовтень + nov: Листопад + dec: Грудень + months_short: + jan: Січ + feb: Лют + mar: Бер + apr: Кві + may: Тра + jun: Чер + jul: Лип + aug: Сер + sep: Вер + oct: Жов + nov: Лис + dec: Гру + relative_day: + today: Сьогодні + tomorrow: Завтра + in_2_days: Через 2 дні + in_3_days: Через 3 дні + in_4_days: Через 4 дні + climate: + states: + "on": Увімкнено + "off": Вимкнено + heat: Опалення + please_confirm: Будь ласка, підтвердіть + unavailable: Недоступно + unknown: Невідомо + no_name: Без імені + alarm: + home: Вдома + away: Відсутній + night: Ніч + vacation: Відпустка + bypass: Обхід + disarm: Роззброєння + settings: + reboot: Перезавантаження + sleep: Сон + brightness: Яскравість + bright: Яскравий + dimming: Затемнення + dim: Темний + meridiem: + am: ДП + pm: ПП + zh-tw: # Traditional Chinese + weekdays: + mon: 星期一 + tue: 星期二 + wed: 星期三 + thu: 星期四 + fri: 星期五 + sat: 星期六 + sun: 星期日 + weekdays_short: + mon: 一 + tue: 二 + wed: 三 + thu: 四 + fri: 五 + sat: 六 + sun: 日 + months: + jan: 1月 + feb: 2月 + mar: 3月 + apr: 4月 + may: 5月 + jun: 6月 + jul: 7月 + aug: 8月 + sep: 9月 + oct: 10月 + nov: 11月 + dec: 12月 + months_short: + jan: 1月 + feb: 2月 + mar: 3月 + apr: 4月 + may: 5月 + jun: 6月 + jul: 7月 + aug: 8月 + sep: 9月 + oct: 10月 + nov: 11月 + dec: 12月 + relative_day: + today: 今天 + tomorrow: 明天 + in_2_days: 後天 + in_3_days: 大後天 + in_4_days: 四天後 + climate: + states: + 'on': 開啟 + 'off': 關閉 + heat: 暖氣 + please_confirm: 請確認 + unavailable: 無法使用 + unknown: 未知 + no_name: 未命名 + alarm: + home: 在家 + away: 離家 + night: 夜間 + vacation: 假期 + bypass: 忽略 + disarm: 解除 + settings: + reboot: 重啟 + sleep: 睡眠 + brightness: 亮度 + bright: 正常 + dimming: 調光 + dim: 待機 + meridiem: + am: 上午 + pm: 下午 + + ##### Home page ##### + home_page: + chips: + - entity: !input chip01 + inverted: !input chip01_inverted + icon: !input chip01_icon + icon_color_rgb: !input chip01_icon_color + component: chip01 + - entity: !input chip02 + inverted: !input chip02_inverted + icon: !input chip02_icon + icon_color_rgb: !input chip02_icon_color + component: chip02 + - entity: !input chip03 + inverted: !input chip03_inverted + icon: !input chip03_icon + icon_color_rgb: !input chip03_icon_color + component: chip03 + - entity: !input chip04 + inverted: !input chip04_inverted + icon: !input chip04_icon + icon_color_rgb: !input chip04_icon_color + component: chip04 + - entity: !input chip05 + inverted: !input chip05_inverted + icon: !input chip05_icon + icon_color_rgb: !input chip05_icon_color + component: chip05 + - entity: !input chip06 + inverted: !input chip06_inverted + icon: !input chip06_icon + icon_color_rgb: !input chip06_icon_color + component: chip06 + - entity: !input chip07 + inverted: !input chip07_inverted + icon: !input chip07_icon + icon_color_rgb: !input chip07_icon_color + component: chip07 + entity_value: + - entity: !input home_value01 + icon: !input home_value01_icon + icon_color_rgb: !input home_value01_icon_color + label_color_rgb: !input home_value01_label_color + page: home + component: value01 + - entity: !input home_value02 + icon: !input home_value02_icon + icon_color_rgb: !input home_value02_icon_color + label_color_rgb: !input home_value02_label_color + page: home + component: value02 + - entity: !input home_value03 + icon: !input home_value03_icon + icon_color_rgb: !input home_value03_icon_color + label_color_rgb: !input home_value03_label_color + page: home + component: value03 + - entity: !input home_value04 + icon: !input home_value04_icon + icon_color_rgb: !input home_value04_icon_color + label_color_rgb: !input home_value04_label_color + page: home + component: value04 + + ##### Button pages ##### + buttons_pages: + labels: + buttonpage01: !input button_page01_label + buttonpage02: !input button_page02_label + buttonpage03: !input button_page03_label + buttonpage04: !input button_page04_label + buttons: # Buttons 1 - 32 + - entity: !input 'entity01' + name: !input 'entity01_name' + icon: !input 'entity01_icon' + icon_color_rgb: !input 'entity01_icon_color' + confirm: !input 'entity01_confirm' + page: buttonpage01 + component: button01 + - entity: !input 'entity02' + name: !input 'entity02_name' + icon: !input 'entity02_icon' + icon_color_rgb: !input 'entity02_icon_color' + confirm: !input 'entity02_confirm' + page: buttonpage01 + component: button02 + - entity: !input 'entity03' + name: !input 'entity03_name' + icon: !input 'entity03_icon' + icon_color_rgb: !input 'entity03_icon_color' + confirm: !input 'entity03_confirm' + page: buttonpage01 + component: button03 + - entity: !input 'entity04' + name: !input 'entity04_name' + icon: !input 'entity04_icon' + icon_color_rgb: !input 'entity04_icon_color' + confirm: !input 'entity04_confirm' + page: buttonpage01 + component: button04 + - entity: !input 'entity05' + name: !input 'entity05_name' + icon: !input 'entity05_icon' + icon_color_rgb: !input 'entity05_icon_color' + confirm: !input 'entity05_confirm' + page: buttonpage01 + component: button05 + - entity: !input 'entity06' + name: !input 'entity06_name' + icon: !input 'entity06_icon' + icon_color_rgb: !input 'entity06_icon_color' + confirm: !input 'entity06_confirm' + page: buttonpage01 + component: button06 + - entity: !input 'entity07' + name: !input 'entity07_name' + icon: !input 'entity07_icon' + icon_color_rgb: !input 'entity07_icon_color' + confirm: !input 'entity07_confirm' + page: buttonpage01 + component: button07 + - entity: !input 'entity08' + name: !input 'entity08_name' + icon: !input 'entity08_icon' + icon_color_rgb: !input 'entity08_icon_color' + confirm: !input 'entity08_confirm' + page: buttonpage01 + component: button08 + - entity: !input 'entity09' + name: !input 'entity09_name' + icon: !input 'entity09_icon' + icon_color_rgb: !input 'entity09_icon_color' + confirm: !input 'entity09_confirm' + page: buttonpage02 + component: button01 + - entity: !input 'entity10' + name: !input 'entity10_name' + icon: !input 'entity10_icon' + icon_color_rgb: !input 'entity10_icon_color' + confirm: !input 'entity10_confirm' + page: buttonpage02 + component: button02 + - entity: !input 'entity11' + name: !input 'entity11_name' + icon: !input 'entity11_icon' + icon_color_rgb: !input 'entity11_icon_color' + confirm: !input 'entity11_confirm' + page: buttonpage02 + component: button03 + - entity: !input 'entity12' + name: !input 'entity12_name' + icon: !input 'entity12_icon' + icon_color_rgb: !input 'entity12_icon_color' + confirm: !input 'entity12_confirm' + page: buttonpage02 + component: button04 + - entity: !input 'entity13' + name: !input 'entity13_name' + icon: !input 'entity13_icon' + icon_color_rgb: !input 'entity13_icon_color' + confirm: !input 'entity13_confirm' + page: buttonpage02 + component: button05 + - entity: !input 'entity14' + name: !input 'entity14_name' + icon: !input 'entity14_icon' + icon_color_rgb: !input 'entity14_icon_color' + confirm: !input 'entity14_confirm' + page: buttonpage02 + component: button06 + - entity: !input 'entity15' + name: !input 'entity15_name' + icon: !input 'entity15_icon' + icon_color_rgb: !input 'entity15_icon_color' + confirm: !input 'entity15_confirm' + page: buttonpage02 + component: button07 + - entity: !input 'entity16' + name: !input 'entity16_name' + icon: !input 'entity16_icon' + icon_color_rgb: !input 'entity16_icon_color' + confirm: !input 'entity16_confirm' + page: buttonpage02 + component: button08 + - entity: !input 'entity17' + name: !input 'entity17_name' + icon: !input 'entity17_icon' + icon_color_rgb: !input 'entity17_icon_color' + confirm: !input 'entity17_confirm' + page: buttonpage03 + component: button01 + - entity: !input 'entity18' + name: !input 'entity18_name' + icon: !input 'entity18_icon' + icon_color_rgb: !input 'entity18_icon_color' + confirm: !input 'entity18_confirm' + page: buttonpage03 + component: button02 + - entity: !input 'entity19' + name: !input 'entity19_name' + icon: !input 'entity19_icon' + icon_color_rgb: !input 'entity19_icon_color' + confirm: !input 'entity19_confirm' + page: buttonpage03 + component: button03 + - entity: !input 'entity20' + name: !input 'entity20_name' + icon: !input 'entity20_icon' + icon_color_rgb: !input 'entity20_icon_color' + confirm: !input 'entity20_confirm' + page: buttonpage03 + component: button04 + - entity: !input 'entity21' + name: !input 'entity21_name' + icon: !input 'entity21_icon' + icon_color_rgb: !input 'entity21_icon_color' + confirm: !input 'entity21_confirm' + page: buttonpage03 + component: button05 + - entity: !input 'entity22' + name: !input 'entity22_name' + icon: !input 'entity22_icon' + icon_color_rgb: !input 'entity22_icon_color' + confirm: !input 'entity22_confirm' + page: buttonpage03 + component: button06 + - entity: !input 'entity23' + name: !input 'entity23_name' + icon: !input 'entity23_icon' + icon_color_rgb: !input 'entity23_icon_color' + confirm: !input 'entity23_confirm' + page: buttonpage03 + component: button07 + - entity: !input 'entity24' + name: !input 'entity24_name' + icon: !input 'entity24_icon' + icon_color_rgb: !input 'entity24_icon_color' + confirm: !input 'entity24_confirm' + page: buttonpage03 + component: button08 + - entity: !input 'entity25' + name: !input 'entity25_name' + icon: !input 'entity25_icon' + icon_color_rgb: !input 'entity25_icon_color' + confirm: !input 'entity25_confirm' + page: buttonpage04 + component: button01 + - entity: !input 'entity26' + name: !input 'entity26_name' + icon: !input 'entity26_icon' + icon_color_rgb: !input 'entity26_icon_color' + confirm: !input 'entity26_confirm' + page: buttonpage04 + component: button02 + - entity: !input 'entity27' + name: !input 'entity27_name' + icon: !input 'entity27_icon' + icon_color_rgb: !input 'entity27_icon_color' + confirm: !input 'entity27_confirm' + page: buttonpage04 + component: button03 + - entity: !input 'entity28' + name: !input 'entity28_name' + icon: !input 'entity28_icon' + icon_color_rgb: !input 'entity28_icon_color' + confirm: !input 'entity28_confirm' + page: buttonpage04 + component: button04 + - entity: !input 'entity29' + name: !input 'entity29_name' + icon: !input 'entity29_icon' + icon_color_rgb: !input 'entity29_icon_color' + confirm: !input 'entity29_confirm' + page: buttonpage04 + component: button05 + - entity: !input 'entity30' + name: !input 'entity30_name' + icon: !input 'entity30_icon' + icon_color_rgb: !input 'entity30_icon_color' + confirm: !input 'entity30_confirm' + page: buttonpage04 + component: button06 + - entity: !input 'entity31' + name: !input 'entity31_name' + icon: !input 'entity31_icon' + icon_color_rgb: !input 'entity31_icon_color' + confirm: !input 'entity31_confirm' + page: buttonpage04 + component: button07 + - entity: !input 'entity32' + name: !input 'entity32_name' + icon: !input 'entity32_icon' + icon_color_rgb: !input 'entity32_icon_color' + confirm: !input 'entity32_confirm' + page: buttonpage04 + component: button08 + + ##### Entity pages ##### + entities_pages: + labels: + entitypage01: !input 'entity_page01_label' + entitypage02: !input 'entity_page02_label' + entitypage03: !input 'entity_page03_label' + entitypage04: !input 'entity_page04_label' + entities: + - entity: !input 'entities_entity01' + name: !input 'entities_entity01_name' + icon: !input 'entities_entity01_icon' + page: entitypage01 + component: value01 + - entity: !input 'entities_entity02' + name: !input 'entities_entity02_name' + icon: !input 'entities_entity02_icon' + page: entitypage01 + component: value02 + - entity: !input 'entities_entity03' + name: !input 'entities_entity03_name' + icon: !input 'entities_entity03_icon' + page: entitypage01 + component: value03 + - entity: !input 'entities_entity04' + name: !input 'entities_entity04_name' + icon: !input 'entities_entity04_icon' + page: entitypage01 + component: value04 + - entity: !input 'entities_entity05' + name: !input 'entities_entity05_name' + icon: !input 'entities_entity05_icon' + page: entitypage01 + component: value05 + - entity: !input 'entities_entity06' + name: !input 'entities_entity06_name' + icon: !input 'entities_entity06_icon' + page: entitypage01 + component: value06 + - entity: !input 'entities_entity07' + name: !input 'entities_entity07_name' + icon: !input 'entities_entity07_icon' + page: entitypage01 + component: value07 + - entity: !input 'entities_entity08' + name: !input 'entities_entity08_name' + icon: !input 'entities_entity08_icon' + page: entitypage01 + component: value08 + - entity: !input 'entities_entity09' + name: !input 'entities_entity09_name' + icon: !input 'entities_entity09_icon' + page: entitypage02 + component: value01 + - entity: !input 'entities_entity10' + name: !input 'entities_entity10_name' + icon: !input 'entities_entity10_icon' + page: entitypage02 + component: value02 + - entity: !input 'entities_entity11' + name: !input 'entities_entity11_name' + icon: !input 'entities_entity11_icon' + page: entitypage02 + component: value03 + - entity: !input 'entities_entity12' + name: !input 'entities_entity12_name' + icon: !input 'entities_entity12_icon' + page: entitypage02 + component: value04 + - entity: !input 'entities_entity13' + name: !input 'entities_entity13_name' + icon: !input 'entities_entity13_icon' + page: entitypage02 + component: value05 + - entity: !input 'entities_entity14' + name: !input 'entities_entity14_name' + icon: !input 'entities_entity14_icon' + page: entitypage02 + component: value06 + - entity: !input 'entities_entity15' + name: !input 'entities_entity15_name' + icon: !input 'entities_entity15_icon' + page: entitypage02 + component: value07 + - entity: !input 'entities_entity16' + name: !input 'entities_entity16_name' + icon: !input 'entities_entity16_icon' + page: entitypage02 + component: value08 + - entity: !input 'entities_entity17' + name: !input 'entities_entity17_name' + icon: !input 'entities_entity17_icon' + page: entitypage03 + component: value01 + - entity: !input 'entities_entity18' + name: !input 'entities_entity18_name' + icon: !input 'entities_entity18_icon' + page: entitypage03 + component: value02 + - entity: !input 'entities_entity19' + name: !input 'entities_entity19_name' + icon: !input 'entities_entity19_icon' + page: entitypage03 + component: value03 + - entity: !input 'entities_entity20' + name: !input 'entities_entity20_name' + icon: !input 'entities_entity20_icon' + page: entitypage03 + component: value04 + - entity: !input 'entities_entity21' + name: !input 'entities_entity21_name' + icon: !input 'entities_entity21_icon' + page: entitypage03 + component: value05 + - entity: !input 'entities_entity22' + name: !input 'entities_entity22_name' + icon: !input 'entities_entity22_icon' + page: entitypage03 + component: value06 + - entity: !input 'entities_entity23' + name: !input 'entities_entity23_name' + icon: !input 'entities_entity23_icon' + page: entitypage03 + component: value07 + - entity: !input 'entities_entity24' + name: !input 'entities_entity24_name' + icon: !input 'entities_entity24_icon' + page: entitypage03 + component: value08 + - entity: !input 'entities_entity25' + name: !input 'entities_entity25_name' + icon: !input 'entities_entity25_icon' + page: entitypage04 + component: value01 + - entity: !input 'entities_entity26' + name: !input 'entities_entity26_name' + icon: !input 'entities_entity26_icon' + page: entitypage04 + component: value02 + - entity: !input 'entities_entity27' + name: !input 'entities_entity27_name' + icon: !input 'entities_entity27_icon' + page: entitypage04 + component: value03 + - entity: !input 'entities_entity28' + name: !input 'entities_entity28_name' + icon: !input 'entities_entity28_icon' + page: entitypage04 + component: value04 + - entity: !input 'entities_entity29' + name: !input 'entities_entity29_name' + icon: !input 'entities_entity29_icon' + page: entitypage04 + component: value05 + - entity: !input 'entities_entity30' + name: !input 'entities_entity30_name' + icon: !input 'entities_entity30_icon' + page: entitypage04 + component: value06 + - entity: !input 'entities_entity31' + name: !input 'entities_entity31_name' + icon: !input 'entities_entity31_icon' + page: entitypage04 + component: value07 + - entity: !input 'entities_entity32' + name: !input 'entities_entity32_name' + icon: !input 'entities_entity32_icon' + page: entitypage04 + component: value08 + + ##### WEATHER #### + weather_entity_tmp: !input 'weather_entity' # used only during the creation of weather in variables + weather_entity: > + {% if weather_entity_tmp is string and weather_entity_tmp | length > 0 %} {{ weather_entity_tmp }} + {% elif states.weather | list | count > 0 %} {{ states.weather | map(attribute="entity_id") | list | first }} + {% endif %} + temperature_units: "°" + + ##### Climate page ##### + page_climate: + buttons: + hvac_mode: + - mode: auto + icon: calendar-sync + color: green + component: button01 + - mode: heat_cool + icon: autorenew + color: amber + component: button02 + - mode: heat + icon: fire + color: deep_orange + component: button03 + - mode: cool + icon: snowflake + color: blue + component: button04 + - mode: dry + icon: water-percent + color: orange + component: button05 + - mode: fan_only + icon: fan + color: cyan + component: button06 + - mode: "off" + icon: power + color: "off" + component: button07 + + ##### Utilities page ##### + pages_utilities: + cursor: + width: !input utilities_page_cursor_width + title: + label: !input utilities_page01_label + icon: !input utilities_page01_icon + groups: + - name: grid + label: !input utilities_page01_grid_label + icon: !input utilities_page01_grid_icon + value1: !input utilities_page01_grid_value1 + value2: !input utilities_page01_grid_value2 + color: !input utilities_page01_grid_color + - name: group01 + label: !input utilities_page01_group01_label + icon: !input utilities_page01_group01_icon + value1: !input utilities_page01_group01_value1 + value2: !input utilities_page01_group01_value2 + color: !input utilities_page01_group01_color + line_ref: !input utilities_page01_group01_line_reference + line_inverted: !input utilities_page01_group01_line_inverted + - name: group02 + label: !input utilities_page01_group02_label + icon: !input utilities_page01_group02_icon + value1: !input utilities_page01_group02_value1 + value2: !input utilities_page01_group02_value2 + color: !input utilities_page01_group02_color + line_ref: !input utilities_page01_group02_line_reference + line_inverted: !input utilities_page01_group02_line_inverted + - name: group03 + label: !input utilities_page01_group03_label + icon: !input utilities_page01_group03_icon + value1: !input utilities_page01_group03_value1 + value2: !input utilities_page01_group03_value2 + color: !input utilities_page01_group03_color + line_ref: !input utilities_page01_group03_line_reference + line_inverted: !input utilities_page01_group03_line_inverted + - name: group04 + label: !input utilities_page01_group04_label + icon: !input utilities_page01_group04_icon + value1: !input utilities_page01_group04_value1 + value2: !input utilities_page01_group04_value2 + color: !input utilities_page01_group04_color + line_ref: !input utilities_page01_group04_line_reference + line_inverted: !input utilities_page01_group04_line_inverted + - name: group05 + label: !input utilities_page01_group05_label + icon: !input utilities_page01_group05_icon + value1: !input utilities_page01_group05_value1 + value2: !input utilities_page01_group05_value2 + color: !input utilities_page01_group05_color + line_ref: !input utilities_page01_group05_line_reference + line_inverted: !input utilities_page01_group05_line_inverted + - name: group06 + label: !input utilities_page01_group06_label + icon: !input utilities_page01_group06_icon + value1: !input utilities_page01_group06_value1 + value2: !input utilities_page01_group06_value2 + color: !input utilities_page01_group06_color + line_ref: !input utilities_page01_group06_line_reference + line_inverted: !input utilities_page01_group06_line_inverted + - name: home + label: !input utilities_page01_home_label + icon: !input utilities_page01_home_icon + value1: !input utilities_page01_home_value1 + value2: !input utilities_page01_home_value2 + color: !input utilities_page01_home_color + line_ref: !input utilities_page01_main_line_reference + line_inverted: !input utilities_page01_main_line_inverted + + ###### MEDIA PLAYER REFRESH ##### + media_player_update_interval: !input 'media_player_update_interval' + media_player_update_delay: !input 'media_player_update_delay' + + ##### GENERAL ENTITYS ##### + climate: !input climate + embedded_climate: '{{ climate == thermostat_embedded }}' + domain_automation_button_action: !input domain_automation_button_action + + # yamllint disable rule:truthy rule:line-length rule:comments-indentation + enum: + ColorMode: # Possible light color modes. - https://github.com/home-assistant/core/blob/dev/homeassistant/components/light/__init__.py + UNKNOWN: "[]" + ONOFF: "[]" + BRIGHTNESS: "[]" + COLOR_TEMP: "[]" + HS: "[]" + XY: "[]" + RGB: "[]" + RGBW: "[]" + RGBWW: "[]" + WHITE: "[]" + HVACMode: # Possible HVAC modes. - https://github.com/home-assistant/core/blob/dev/homeassistant/components/climate/const.py#L13 + "OFF": "[]" # All activity disabled / Device is off/standby + HEAT: "[]" # Heating + COOL: "[]" # Cooling + HEAT_COOL: "[]" # The device supports heating/cooling to a range + AUTO: "[]" # The temperature is set based on a schedule, learned behavior, AI or some other related mechanism. User is not able to adjust the temperature + DRY: "[]" # Device is in Dry/Humidity mode + FAN_ONLY: "[]" # Only the fan is on, not fan and another mode like cool + HVACMode_bits: + "OFF": 1 + HEAT: 2 + COOL: 4 + HEAT_COOL: 8 + AUTO: 16 + DRY: 32 + FAN_ONLY: 64 + states: + "on": ["on", "open", "opening", "true", "True", true, True, "playing", "heat", "cold", "dry", "armed_home", "armed_away", "armed_vacation", "armed_custom_bypass", "triggered", "pending", "arming", "unlocked", 1] + "off": ["off", "closed", "closing", "false", "False", false, False, "standby", "paused", "idle", "disarmed", "disarming", "locked"] + unknown: ["unknown", "unavailable", None, none, ""] + climate: + "on": ["heat_cool", "heat", "heating", "cold", "cooling", "dry", "drying", "fan", "fan_only", "auto"] + "off": ["off", "idle"] + alarm_control_panel: + "on": ["armed_home", "armed_away", "armed_vacation", "armed_custom_bypass", "triggered", "pending", "arming"] + "off": ["disarmed", "disarming"] + lock: + "on": ["unlocked"] + "off": ["locked"] + # yamllint enable rule:truthy rule:line-length rule:comments-indentation + - if: '{{ false }}' #### Global anchor repository #### then: @@ -7429,6 +7581,9 @@ action: id: time_state sequence: ##### NSPanel Date ##### + - &delay_default + delay: + milliseconds: !input delay - &refresh-date service: 'esphome.{{ nspanel_name }}_component_text' data: @@ -7463,25 +7618,44 @@ action: - '{{ nspanel_event.type == "boot"}}' - '{{ nspanel_event.step is defined and nspanel_event.step in ["nextion_init", "timeout"]}}' sequence: + - if: '{{ nspanel_event.step == "timeout" }}' + then: + delay: 15 - &global_settings if: '{{ true }}' then: + - service: 'esphome.{{ nspanel_name }}_component_text' + data: + id: boot.bluep_version + txt: '{{ blueprint_version }}' + continue_on_error: true + - &variables_hardware variables: hw_button_left_entity: !input left_button_entity + hw_button_left_state_entity: !input left_button_state_entity hw_button_right_entity: !input right_button_entity + hw_button_right_state_entity: !input right_button_state_entity hardware: buttons: left: entity: '{{ hw_button_left_entity }}' entity_is_valid: '{{ hw_button_left_entity is defined and hw_button_left_entity is string and hw_button_left_entity.split(".") | count == 2 }}' + state_entity: '{{ hw_button_left_state_entity }}' + state_entity_is_valid: > + {{ hw_button_left_state_entity is defined and hw_button_left_state_entity is string and hw_button_left_state_entity.split(".") | count == 2 }} name: !input 'left_button_name' hold_select: !input 'left_button_hold_select' + bar_always_visible: !input hw_button_bar_left_always_show right: entity: '{{ hw_button_right_entity }}' entity_is_valid: '{{ hw_button_right_entity is defined and hw_button_right_entity is string and hw_button_right_entity.split(".") | count == 2 }}' + state_entity: '{{ hw_button_right_state_entity }}' + state_entity_is_valid: > + {{ hw_button_right_state_entity is defined and hw_button_right_state_entity is string and hw_button_right_state_entity.split(".") | count == 2 }} name: !input 'right_button_name' hold_select: !input 'right_button_hold_select' + bar_always_visible: !input hw_button_bar_right_always_show relay1_icon: !input relay01_icon relay2_icon: !input relay02_icon @@ -7493,7 +7667,10 @@ action: enabled: !input qrcode_enabled title: !input qrcode_label qrcode: !input qrcode_value + home_indoor_temp_icon: !input home_indoor_temp_icon + ##### Home page ##### + - *delay_default - service: 'esphome.{{ nspanel_name }}_init_page_home' data: date_color: !input date_label_color @@ -7528,16 +7705,103 @@ action: outdoor_temp_font: !input home_outdoor_temp_font continue_on_error: true + ##### Home page - outdoor_temp + - *delay_default + - service: 'esphome.{{ nspanel_name }}_component_color' + data: + id: home.outdoor_temp + color: !input home_outdoor_temp_label_color + continue_on_error: true + + ##### Home page - indr_temp + - *delay_default + - service: 'esphome.{{ nspanel_name }}_component_color' + data: + id: home.indr_temp + color: !input home_indoor_temp_label_color + continue_on_error: true + - *delay_default + - service: 'esphome.{{ nspanel_name }}_component_text' + data: + id: home.indr_temp_icon + txt: > + {{ + all_icons[home_indoor_temp_icon.split("mdi:")[1]] + if home_indoor_temp_icon.split("mdi:") | count == 2 and home_indoor_temp_icon.split("mdi:")[1] in all_icons + else all_icons.thermometer + }} + continue_on_error: true + - *delay_default + - service: 'esphome.{{ nspanel_name }}_component_color' + data: + id: home.indr_temp_icon + color: !input home_indoor_temp_icon_color + continue_on_error: true + + ###### Status / Chips bar ###### + - repeat: + for_each: > + {{ + home_page.chips + | selectattr("entity", "defined") + | rejectattr("entity", "eq", []) + | selectattr("icon_color_rgb", "defined") + | rejectattr("icon_color_rgb", "eq", []) + | rejectattr("icon_color_rgb", "eq", [0, 0, 0]) + | list + }} + sequence: + - *delay_default + - service: 'esphome.{{ nspanel_name }}_component_color' + data: + id: 'home.{{ repeat.item.component }}' + color: '{{ repeat.item.icon_color_rgb }}' + continue_on_error: true + + ##### Home page - Values 01 - 04 + - repeat: + for_each: > + {{ + home_page.entity_value + | selectattr("entity", "defined") + | rejectattr("entity", "eq", []) + | list + }} + sequence: + - *delay_default + - service: 'esphome.{{ nspanel_name }}_component_color' + data: + id: '{{ repeat.item.page }}.{{ repeat.item.component }}' + color: '{{ repeat.item.label_color_rgb }}' + continue_on_error: true + - *delay_default + - service: 'esphome.{{ nspanel_name }}_component_text' + data: + id: '{{ repeat.item.page }}.{{ repeat.item.component }}_icon' + txt: > + {{ + all_icons[repeat.item.icon.split("mdi:")[1]] + if + repeat.item.icon is defined and + repeat.item.icon is string and + repeat.item.icon.split("mdi:") | count == 2 and + repeat.item.icon.split("mdi:")[1] in all_icons + else "" + }} + continue_on_error: true + ##### NSPanel Left Button Name ##### - if: '{{ hardware.buttons.left.name | length > 0 }}' then: ### LABEL Font Color ### + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_color' data: id: home.left_bt_text color: !input left_button_color continue_on_error: true ### LABEL Font ### + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: home.left_bt_text @@ -7548,18 +7812,21 @@ action: - if: '{{ hardware.buttons.right.name | length > 0 }}' then: ### LABEL Font Color ### + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_color' data: id: home.right_bt_text color: !input right_button_color continue_on_error: true ### LABEL Font ### + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: home.right_bt_text txt: '{{ hardware.buttons.right.name }}' continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_qrcode' data: title: '{{ qrcode.title if qrcode.enabled else "" }}' @@ -7567,6 +7834,7 @@ action: show: false continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_init_page_settings' data: reboot: '{{ mui[language].settings.reboot }}' @@ -7579,6 +7847,7 @@ action: climate_friendly_name: '{{ state_attr(climate, "friendly_name") if climate is string and climate is match "climate." else "" }}' hw_buttons_bars_pages: !input hw_buttons_bars_pages + - *delay_default - service: 'esphome.{{ nspanel_name }}_init_hardware' data: relay1_local_control: '{{ hardware.buttons.left.entity == relay01_entity }}' @@ -7589,8 +7858,8 @@ action: relay2_icon: '{{ all_icons[hardware.relay2_icon.split("mdi:")[1]] if hardware.relay2_icon.split("mdi:")[1] in all_icons else all_icons["numeric-2-box-outline"] }}' relay2_icon_color: !input relay02_icon_color relay2_fallback: !input relay_2_local_fallback - button_left: '{{ hardware.buttons.left.entity is defined and hardware.buttons.left.entity is string and hardware.buttons.left.entity.split(".") | count == 2 }}' - button_right: '{{ hardware.buttons.right.entity is defined and hardware.buttons.right.entity is string and hardware.buttons.right.entity.split(".") | count == 2 }}' + button_left: '{{ hardware.buttons.left.bar_always_visible or hardware.buttons.left.state_entity_is_valid or hardware.buttons.left.entity_is_valid }}' + button_right: '{{ hardware.buttons.right.bar_always_visible or hardware.buttons.right.state_entity_is_valid or hardware.buttons.right.entity_is_valid }}' button_bar_pages: '{{ hw_buttons_bars_pages | map("int") | sum }}' button_bar_color_on: !input hw_buttons_bar_color_on button_bar_color_off: !input hw_buttons_bar_color_off @@ -7603,21 +7872,32 @@ action: - if: '{{ true }}' then: - variables: - hw_btn_left_state: '{{ hardware.buttons.left.entity_is_valid and states(hardware.buttons.left.entity) | default("unavailable") in enum.states.on }}' - hw_btn_right_state: '{{ hardware.buttons.right.entity_is_valid and states(hardware.buttons.right.entity) | default("unavailable") in enum.states.on }}' + hw_btn_left_state: > + {{ (states(hardware.buttons.left.state_entity) | default("unavailable") + if hardware.buttons.left.state_entity_is_valid + else (states(hardware.buttons.left.entity) | default("unavailable") + if hardware.buttons.left.entity_is_valid else "unavailable")) in enum.states.on }} + hw_btn_right_state: > + {{ (states(hardware.buttons.right.state_entity) | default("unavailable") + if hardware.buttons.right.state_entity_is_valid + else (states(hardware.buttons.right.entity) | default("unavailable") + if hardware.buttons.right.entity_is_valid else "unavailable")) in enum.states.on }} - if: '{{ hw_btn_left_state == hw_btn_right_state }}' then: # Save one service call if both buttons have the same state + - *delay_default - service: 'esphome.{{ nspanel_name }}_hw_button_state' data: button_mask: 3 # Both buttons state: '{{ hw_btn_left_state }}' continue_on_error: true else: # Send individual calls if the buttons have different states + - *delay_default - service: 'esphome.{{ nspanel_name }}_hw_button_state' data: button_mask: 1 # Left button state: '{{ hw_btn_left_state }}' continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_hw_button_state' data: button_mask: 2 # Right button @@ -7627,6 +7907,7 @@ action: # Global settings - variables: entitypages_value_alignment: !input entitypages_value_alignment + - *delay_default - service: 'esphome.{{ nspanel_name }}_init_global' data: blueprint_version: '{{ blueprint_version }}' @@ -7643,9 +7924,7 @@ action: - repeat: for_each: '{{ pages.buttonpages }}' sequence: - - &delay_default - delay: - milliseconds: 10 + - *delay_default - service: 'esphome.{{ nspanel_name }}_command' data: cmd: > @@ -7762,6 +8041,18 @@ action: target: entity_id: '{{ nspanel_event.entity }}' continue_on_error: true + - alias: "light.turn_on (rgb_color)" + conditions: + - '{{ nspanel_event.service == "light.turn_on" }}' + - '{{ nspanel_event.key == "rgb_color" }}' + - '{{ nspanel_event.red is defined and nspanel_event.green is defined and nspanel_event.blue is defined }}' + sequence: + - service: light.turn_on + data: + rgb_color: '{{ [nspanel_event.red, nspanel_event.green, nspanel_event.blue] }}' + target: + entity_id: '{{ nspanel_event.entity }}' + continue_on_error: true default: - service: '{{ nspanel_event.service }}' data: {"{{ nspanel_event.key }}":"{{ nspanel_event.value }}"} @@ -7790,7 +8081,10 @@ action: - alias: Home page conditions: '{{ nspanel_event.page == pages.home }}' sequence: &refresh_page_home + - variables: + page_constructor: true ##### Weather Icon Home Page ##### + - *delay_default - &refresh-page_home-weather_pic service: 'esphome.{{ nspanel_name }}_command' data: @@ -7805,7 +8099,7 @@ action: if: '{{ true }}' then: - variables: - outdoor_temp_entity: !input 'outdoortemp' + outdoor_temp_entity: !input outdoortemp outdoor_temp_state: > {{ states(outdoor_temp_entity, rounded=true) | default("unavailable") @@ -7819,14 +8113,11 @@ action: if weather_entity is string else "unavailable" }} - condition: '{{ is_number(outdoor_temp) }}' - - service: 'esphome.{{ nspanel_name }}_value' + - *delay_default + - service: 'esphome.{{ nspanel_name }}_component_text' data: id: home.outdoor_temp - icon: "" - icon_color: [] - name: "" - value: '{{ outdoor_temp | round(1) ~ temperature_units }}' - value_color: !input home_outdoor_temp_label_color + txt: '{{ outdoor_temp | round(1) ~ temperature_units }}' continue_on_error: true ##### NSPanel Indoor Temp ##### @@ -7835,11 +8126,14 @@ action: then: - variables: home_indoor_temp_visible: !input home_indoor_temp_visible - - service: 'esphome.{{ nspanel_name }}_components_visibility' - data: - ids: ["home.indr_temp", "home.indr_temp_icon"] - visible: '{{ home_indoor_temp_visible }}' - continue_on_error: true + - if: '{{ page_constructor is defined and page_constructor }}' + then: + - *delay_default + - service: 'esphome.{{ nspanel_name }}_components_visibility' + data: + ids: ["home.indr_temp", "home.indr_temp_icon"] + visible: '{{ home_indoor_temp_visible }}' + continue_on_error: true - condition: '{{ home_indoor_temp_visible }}' - variables: temperature_sensor: '{{ indoor_temperature_sensor }}' @@ -7856,26 +8150,12 @@ action: else temperature_units ) }} - icon: !input 'home_indoor_temp_icon' - condition: '{{ is_number(indoor_temp.state) }}' - - service: 'esphome.{{ nspanel_name }}_value' + - *delay_default + - service: 'esphome.{{ nspanel_name }}_component_text' data: id: home.indr_temp - icon: > - {{ - all_icons[indoor_temp.icon.split(":")[1]] | default(all_icons.thermometer) - if indoor_temp.icon.split(":") | count > 0 - else - ( - indoor_temp.icon - if indoor_temp.icon is string - else all_icons.thermometer - ) - }} - icon_color: !input home_indoor_temp_icon_color - name: "" - value: '{{ indoor_temp.state | round(1) ~ indoor_temp.units if not embedded_indoor_temperature else "" }}' - value_color: !input home_indoor_temp_label_color + txt: '{{ indoor_temp.state | round(1) ~ indoor_temp.units if not embedded_indoor_temperature else "" }}' continue_on_error: true ###### Notification button ###### @@ -7887,6 +8167,8 @@ action: notification_icon_color_normal: !input home_button04_icon_color01 notification_icon_color_unread: !input home_button04_icon_color02 bt_notific_icon: !input home_button04_icon + notification_text: 'sensor.{{ nspanel_name }}_notification_text' + notification_unread: 'switch.{{ nspanel_name }}_notification_unread' notification_text_state: '{{ states(notification_text) if has_value(notification_text) else "" }}' notification_unread_state: '{{ states(notification_unread) | default(true) }}' notification_visible: '{{ notification_text_state is string and notification_text_state | length > 0 }}' @@ -7898,6 +8180,7 @@ action: else all_icons.email ) if notification_visible else "" }} + - *delay_default - service: 'esphome.{{ nspanel_name }}_icon' data: id: home.bt_notific @@ -7952,6 +8235,7 @@ action: overlap: icon: '{{ repeat.item.icon if repeat.item.icon is defined else None }}' - *variable_entity + - *delay_default - service: 'esphome.{{ nspanel_name }}_icon' data: id: 'home.{{ repeat.item.component }}' @@ -7960,8 +8244,9 @@ action: visible: true continue_on_error: true else: - - if: '{{ pages.current == pages.home }}' + - if: '{{ pages.current == pages.home and page_constructor is defined and page_constructor }}' then: + - *delay_default - service: 'esphome.{{ nspanel_name }}_components_visibility' data: ids: '{{ [ repeat.item.component ] }}' @@ -7979,6 +8264,7 @@ action: - variables: hvac_action: '{{ state_attr(entity_id, "hvac_action") }}' climate_chip_always_visible: !input climate_chip_always_visible + - *delay_default - service: 'esphome.{{ nspanel_name }}_icon' data: id: home.chip_climate @@ -7999,48 +8285,10 @@ action: continue_on_error: true ###### Status / Chips bar ###### - - &variables_home_page_status_bar - variables: - home_page_status_bar: - - entity: !input 'chip01' - inverted: !input 'chip01_inverted' - icon: !input 'chip01_icon' - icon_color_rgb: !input 'chip01_icon_color' - component: chip01 - - entity: !input 'chip02' - inverted: !input 'chip02_inverted' - icon: !input 'chip02_icon' - icon_color_rgb: !input 'chip02_icon_color' - component: chip02 - - entity: !input 'chip03' - inverted: !input 'chip03_inverted' - icon: !input 'chip03_icon' - icon_color_rgb: !input 'chip03_icon_color' - component: chip03 - - entity: !input 'chip04' - inverted: !input 'chip04_inverted' - icon: !input 'chip04_icon' - icon_color_rgb: !input 'chip04_icon_color' - component: chip04 - - entity: !input 'chip05' - inverted: !input 'chip05_inverted' - icon: !input 'chip05_icon' - icon_color_rgb: !input 'chip05_icon_color' - component: chip05 - - entity: !input 'chip06' - inverted: !input 'chip06_inverted' - icon: !input 'chip06_icon' - icon_color_rgb: !input 'chip06_icon_color' - component: chip06 - - entity: !input 'chip07' - inverted: !input 'chip07_inverted' - icon: !input 'chip07_icon' - icon_color_rgb: !input 'chip07_icon_color' - component: chip07 - repeat: for_each: > {{ - home_page_status_bar + home_page.chips | selectattr("entity", "defined") | rejectattr("entity", "eq", []) | list @@ -8054,7 +8302,16 @@ action: entity_id: '{{ repeat.item.entity }}' overlap: icon: '{{ repeat.item.icon if repeat.item.icon is defined else None }}' - icon_color: '{{ repeat.item.icon_color_rgb if repeat.item.icon_color_rgb is defined else None }}' + icon_color: > + {{ + repeat.item.icon_color_rgb + if + repeat.item.icon_color_rgb is defined and + repeat.item.icon_color_rgb is sequence and + repeat.item.icon_color_rgb | count == 3 and + repeat.item.icon_color_rgb != [0, 0, 0] + else None + }} - *variable_entity - condition: '{{ entity_has_value }}' - variables: @@ -8083,46 +8340,28 @@ action: ) ) }} + - *delay_default - service: 'esphome.{{ nspanel_name }}_icon' data: id: 'home.{{ repeat.item.component }}' icon: '{{ entity.icon if chip_visible and entity.icon is defined else "" }}' - icon_color: '{{ entity.icon_color if chip_visible and entity.icon_color is defined else [] }}' + icon_color: > + {{ + entity.icon_color + if + chip_visible and + entity.icon_color is defined and + icon_color is not sequence + else [] + }} visible: '{{ chip_visible }}' continue_on_error: true - ##### HOME VALUE 01 - 03 - - &variables_home_page_values - variables: - home_page_values: - - entity: !input 'home_value01' - icon: !input 'home_value01_icon' - icon_color_rgb: !input 'home_value01_icon_color' - label_color_rgb: !input 'home_value01_label_color' - page: home - component: value01 - - entity: !input 'home_value02' - icon: !input 'home_value02_icon' - icon_color_rgb: !input 'home_value02_icon_color' - label_color_rgb: !input 'home_value02_label_color' - page: home - component: value02 - - entity: !input 'home_value03' - icon: !input 'home_value03_icon' - icon_color_rgb: !input 'home_value03_icon_color' - label_color_rgb: !input 'home_value03_label_color' - page: home - component: value03 - - entity: !input 'home_value04' - icon: !input 'home_value04_icon' - icon_color_rgb: !input 'home_value04_icon_color' - label_color_rgb: !input 'home_value04_label_color' - page: home - component: value04 + ##### Home page - Values 01 - 04 - repeat: for_each: > {{ - home_page_values + home_page.entity_value | selectattr("entity", "defined") | rejectattr("entity", "eq", []) | list @@ -8161,13 +8400,28 @@ action: if unit_of_measurement_raw and unit_of_measurement_raw is string and unit_of_measurement_raw | length > 0 else "" }} - - service: 'esphome.{{ nspanel_name }}_value' + - if: '{{ overlap.icon is not string }}' # Do not plot icon if it has overlap + then: + - *delay_default + - service: 'esphome.{{ nspanel_name }}_component_text' + data: + id: '{{ repeat.item.page }}.{{ repeat.item.component }}_icon' + txt: '{{ entity.icon }}' + continue_on_error: true + - if: '{{ overlap.icon_color is not sequence }}' # Do not color icon if it has overlap + then: + - *delay_default + - service: 'esphome.{{ nspanel_name }}_component_color' + data: + id: '{{ repeat.item.page }}.{{ repeat.item.component }}_icon' + color: '{{ entity.icon_color }}' + continue_on_error: true + + - *delay_default + - service: 'esphome.{{ nspanel_name }}_component_text' data: id: '{{ repeat.item.page }}.{{ repeat.item.component }}' - icon: '{{ entity.icon }}' - icon_color: '{{ entity.icon_color }}' - name: "" - value: &value_with_unit_and_translations > + txt: &value_with_unit_and_translations > {{ ( (states(entity_id, rounded=true) ~ (unit_of_measurement if unit_of_measurement is string and unit_of_measurement | length > 0 else "")) @@ -8177,7 +8431,6 @@ action: if entity_id_valid and entity_has_value else mui[language].unavailable }} - value_color: '{{ repeat.item.label_color_rgb }}' continue_on_error: true ## BUTTON PAGES 01 - 04 ## @@ -8210,15 +8463,22 @@ action: - if: '{{ event_page in pages.buttonpages }}' then: ##### Button page Label ##### - - if: '{{ buttons_pages.labels[event_page] | length > 0 }}' + - if: > + {{ + buttons_pages.labels[event_page] != None and + buttons_pages.labels[event_page] != [] and + (buttons_pages.labels[event_page] | string) | length > 0 + }} then: + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: page_label - txt: '{{ buttons_pages.labels[event_page] }}' + txt: '{{ buttons_pages.labels[event_page] | string }}' continue_on_error: true ###### Confirm buttons ###### + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_val' data: id: confirm @@ -8269,6 +8529,7 @@ action: {{ current_temperature | round(0 if current_temperature >= 100 or temperature_units in ["F", "f", "°F", "°f", "K", "k"] else 1) }}{{ temperature_units}} {% else %} 0 {% endif %} + - *delay_default - service: 'esphome.{{ nspanel_name }}_button' data: page: '{{ repeat.item.page }}' @@ -8322,16 +8583,19 @@ action: ##### LIGHT State ##### - variables: curr_brightness: '{{ (state_attr(light_entity, "brightness") | int(0) * 100 / 255) | round(0) }}' + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_val' data: id: light.lightslider val: '{{ curr_brightness }}' continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: light.light_value txt: '{{ curr_brightness }}%' continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: light.light_value_2 @@ -8353,34 +8617,41 @@ action: else ((min_mireds+max_mireds)/2) | int(327) }} - condition: '{{ is_number(curr_color_temp) }}' + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: light.temp_value txt: '{{ curr_color_temp }}' continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: light.temp_value_2 txt: '{{ curr_color_temp }}' continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_val' data: id: light.tempslider val: '{{ curr_color_temp }}' continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_command' data: cmd: tempslider.minval={{ min_mireds }} continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_command' data: cmd: tempslider.maxval={{ max_mireds }} continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_color' data: id: power_button color: [192, 192, 192] continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_components_visibility' data: ids: ["temp_button", "temp_value_2", "temp_touch"] @@ -8390,6 +8661,7 @@ action: ##### Hide color button when not supported ##### - if: '{{ color_mode_color }}' then: + - *delay_default - service: 'esphome.{{ nspanel_name }}_components_visibility' data: ids: ["color_button", "color_touch"] @@ -8432,11 +8704,13 @@ action: else all_icons[device_class_icons.cover["shutter-closed"]] }} ##### Cover Open/close Icons ##### + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: cover.cover_open txt: '{{ cover_icons.open }}' continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: cover.cover_close @@ -8444,11 +8718,13 @@ action: continue_on_error: true ##### COVER State + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_val' data: id: cover.coverslider val: '{{ (state_attr(cover_entity, "current_position") | int ) | round(0) }}' continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: cover.cover_value @@ -8496,18 +8772,21 @@ action: {% else %} battery-outline {% endif %} + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: cover.battery_value txt: '{{ battery_level }} %' continue_on_error: true ### ICON Battery Font Color ### + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_color' data: id: cover.battery_icon color: '{{ nextion.color.grey_super_light }}' continue_on_error: true ### ICON Battery Font ### + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: cover.battery_icon @@ -8542,46 +8821,55 @@ action: }} - if: '{{ fan.steps > 0 and fan.supported_features | bitwise_and(2) > 0 }}' # Oscillate then: + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: bt_oscillate txt: '{{ all_icons["autorenew"] if state_attr(fan_entity, "oscillating") | default(false) else all_icons["autorenew-off"] }}' continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_color' data: id: fan.bt_oscillate color: '{{ nextion.color.grey_white }}' continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_components_visibility' data: ids: ["fan.bt_oscillate"] visible: true continue_on_error: true - condition: '{{ fan.steps > 0 and fan.supported_features | bitwise_and(1) > 0 }}' # Set speed + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_val' data: id: fanslider val: '{{ ((fan.percentage / 100) * fan.steps) | round(0) | int(0) }}' continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_command' data: cmd: fanslider.maxval={{ fan.steps }} continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: fan_value txt: '{{ fan.percentage }}%' continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_color' data: id: fan.button_up color: '{{ nextion.color.grey_white if fan.percentage < 100 else nextion.color.grey_dark }}' continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_color' data: id: fan.button_down color: '{{ nextion.color.grey_white if fan.percentage > 0 else nextion.color.grey_dark }}' continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_color' data: id: fan.button_off @@ -8626,6 +8914,7 @@ action: if (state_attr(media_player_entity, "mass_player_type") | default("")) == "group" else state_attr(media_player_entity, "supported_features") | int(0) }} + - *delay_default - service: 'esphome.{{ nspanel_name }}_page_media_player' data: entity: '{{ media_player_entity }}' @@ -8705,6 +8994,7 @@ action: alarm: code_format: '{{ state_attr(entity_id, "code_format") }}' code_arm_required: '{{ state_attr(entity_id, "code_arm_required") | default(true) }}' + - *delay_default - service: 'esphome.{{ nspanel_name }}_page_alarm' data: page_title: '{{ entity.name }}' @@ -8745,6 +9035,7 @@ action: }} hvac_modes: '{{ state_attr(climate_entity, "hvac_modes") if settings_entity_domain == "climate" }}' - condition: '{{ settings_entity_domain == "climate" }}' + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: page_label @@ -8831,6 +9122,7 @@ action: {% elif "idle" in climate_action %}{{ all_icons.thermometer }} {% else %}{{ all_icons.blank }} {% endif %} + - *delay_default - service: 'esphome.{{ nspanel_name }}_page_climate' data: current_temp: '{{ current_temp }}' @@ -8856,6 +9148,7 @@ action: - condition: '{{ repeat.item.mode in hvac_modes }}' - *delay_default ### ICON Font Color ### + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_color' data: id: 'climate.{{ repeat.item.component }}' @@ -8867,12 +9160,14 @@ action: }} continue_on_error: true ### ICON Font ### + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: 'climate.{{ repeat.item.component }}' txt: '{{ all_icons[repeat.item.icon] }}' continue_on_error: true ### Enable button click ### + - *delay_default - service: 'esphome.{{ nspanel_name }}_components_visibility' data: ids: '{{ [ repeat.item.component ] }}' @@ -8906,18 +9201,21 @@ action: icon_color: '{{ repeat.item.icon_color_rgb }}' - *variable_entity ### ICON Font Color ### + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_color' data: id: '{{ repeat.item.component }}' color: '{{ entity.icon_color }}' continue_on_error: true ### ICON Font ### + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: '{{ repeat.item.component }}' txt: '{{ entity.icon }}' continue_on_error: true ### Enable button click ### + - *delay_default - service: 'esphome.{{ nspanel_name }}_components_visibility' data: ids: '{{ [ repeat.item.component ] }}' @@ -8935,6 +9233,7 @@ action: ##### Entity page - Label ##### - if: '{{ entities_pages.labels[event_page] | length > 0 }}' then: + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: page_label @@ -8961,6 +9260,7 @@ action: name: '{{ repeat.item.name if repeat.item.name is defined else None }}' unit_of_measurement: '{{ state_attr(entity_id, "unit_of_measurement") | default("") }}' - *variable_entity + - *delay_default - service: 'esphome.{{ nspanel_name }}_value' data: id: '{{ repeat.item.page }}.{{ repeat.item.component }}' @@ -9023,6 +9323,7 @@ action: page_index: '{{ (page_name[-2:] | int(0)) - 1 }}' ##### Display relative day ##### + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: '{{ page_name }}.day' @@ -9030,6 +9331,7 @@ action: continue_on_error: true ##### Display date (long) ##### + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: '{{ page_name }}.date' @@ -9426,6 +9728,7 @@ action: ##### Display weather PIC when available - if: '{{ condition not in ["unknown", None] }}' then: + - *delay_default - service: 'esphome.{{ nspanel_name }}_command' data: cmd: > @@ -9444,6 +9747,7 @@ action: {{ (temp_max | round(0) ~ temperature_units) if is_number(temp_max) and temp_min != temp_max }} - if: '{{ (is_number(temp_min) or is_number(temp_max)) and temperature_string is string and temperature_string | length > 0 }}' then: + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: '{{ page_name }}.temperature' ### Temperature MIN/MAX ### @@ -9460,12 +9764,14 @@ action: id: '{{ page_name }}.value0{{ repeat.index }}' txt: '{{ repeat.item.value }}' continue_on_error: true + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: '{{ page_name }}.value0{{ repeat.index }}_icon' txt: '{{ repeat.item.icon }}' continue_on_error: true else: &forecast_unavailable + - *delay_default - service: 'esphome.{{ nspanel_name }}_component_text' data: id: '{{ page_name }}.value01' @@ -9490,37 +9796,27 @@ action: value: '{{ pages_utilities.title.label }}' value_color: [] continue_on_error: true - ## Show main line - - if: '{{ pages_utilities.cursor.width != 255 }}' - then: - - service: 'esphome.{{ nspanel_name }}_command' - data: - cmd: 'line_main.wid={{ pages_utilities.cursor.width }}' - continue_on_error: true - - service: 'esphome.{{ nspanel_name }}_components_visibility' - data: - ids: ["line_main"] - visible: true - continue_on_error: true - - variables: - main_line_ref: !input utilities_page01_main_line_reference - main_line_inverted: !input utilities_page01_main_line_inverted - main_line_ref_state: '{{ states(main_line_ref) | int(0) if main_line_ref is string and main_line_ref.split(".") | count == 2 else 0 }}' - - service: 'esphome.{{ nspanel_name }}_component_val' - data: - id: line_main_d - val: '{{ (((main_line_ref_state > 0) - (main_line_ref_state < 0)) * (-1 if main_line_inverted else 1)) | int(0) }}' - continue_on_error: true ## Groups - repeat: for_each: '{{ pages_utilities.groups | list }}' sequence: &refresh_page_utilities_group - - *delay_default - variables: utilities_constructor: '{{ utilities_constructor_init is defined and utilities_constructor_init }}' icon_enabled: '{{ utilities_constructor and repeat.item.icon is defined and repeat.item.icon is string and repeat.item.icon.split("mdi:") | count == 2 }}' - value1_enabled: '{{ repeat.item.value1 is defined and repeat.item.value1 is string and repeat.item.value1.split(".") | count == 2 }}' - value2_enabled: '{{ repeat.item.value2 is defined and repeat.item.value2 is string and repeat.item.value2.split(".") | count == 2 }}' + value1_enabled: > + {{ + repeat.item.value1 is defined and + repeat.item.value1 is string and + repeat.item.value1.split(".") | count == 2 and + (utilities_constructor or trigger.entity_id == repeat.item.value1) + }} + value2_enabled: > + {{ + repeat.item.value2 is defined and + repeat.item.value2 is string and + repeat.item.value2.split(".") | count == 2 and + (utilities_constructor or trigger.entity_id == repeat.item.value2) + }} label_enabled: '{{ utilities_constructor and repeat.item.label is defined and repeat.item.label is string and repeat.item.label | length > 0 }}' - alias: Utilities - Display icon if: '{{ icon_enabled }}' @@ -9534,6 +9830,34 @@ action: icon_color: '{{ repeat.item.color }}' visible: '{{ icon_code in all_icons }}' continue_on_error: true + - alias: Utilities - Label + if: '{{ label_enabled }}' + then: + - service: 'esphome.{{ nspanel_name }}_component_text' + data: + id: '{{ repeat.item.name }}_label' + txt: '{{ repeat.item.label }}' + continue_on_error: true + - service: 'esphome.{{ nspanel_name }}_component_color' + data: + id: '{{ repeat.item.name }}_label' + color: '{{ repeat.item.color }}' + continue_on_error: true + - service: 'esphome.{{ nspanel_name }}_components_visibility' + data: + ids: '{{ [repeat.item.name ~ "_label"] }}' + visible: true + continue_on_error: true + + - variables: + line_ref_state: > + {{ + states(repeat.item.line_ref) | float(0) + if repeat.item.line_ref is defined and repeat.item.line_ref is string and repeat.item.line_ref.split(".") | count == 2 + else 0 + }} + direction: '{{ (((line_ref_state > 0) - (line_ref_state < 0)) * (-3 if repeat.item.line_inverted is defined and repeat.item.line_inverted else 3)) | int(0) }}' + - alias: Utilities - Display value 1 if: '{{ value1_enabled }}' then: @@ -9541,10 +9865,12 @@ action: entity_id: '{{ repeat.item.value1 }}' unit_of_measurement: '{{ state_attr(entity_id, "unit_of_measurement") | default("") }}' - *variable_entity - - service: 'esphome.{{ nspanel_name }}_component_text' + - service: 'esphome.{{ nspanel_name }}_utilities_group_refresh' data: - id: '{{ repeat.item.name }}' - txt: *value_with_unit_and_translations + group_id: '{{ repeat.item.name }}' + value1: *value_with_unit_and_translations + value2: "" + direction: '{{ direction }}' continue_on_error: true - if: '{{ utilities_constructor }}' then: @@ -9565,10 +9891,12 @@ action: entity_id: '{{ repeat.item.value2 }}' unit_of_measurement: '{{ state_attr(entity_id, "unit_of_measurement") | default("") }}' - *variable_entity - - service: 'esphome.{{ nspanel_name }}_component_text' + - service: 'esphome.{{ nspanel_name }}_utilities_group_refresh' data: - id: '{{ repeat.item.name }}b' - txt: *value_with_unit_and_translations + group_id: '{{ repeat.item.name }}' + value1: "" + value2: *value_with_unit_and_translations + direction: '{{ direction }}' continue_on_error: true - if: '{{ utilities_constructor }}' then: @@ -9582,64 +9910,33 @@ action: ids: '{{ [repeat.item.name ~ "b"] }}' visible: true continue_on_error: true - - alias: Utilities - Label - if: '{{ label_enabled }}' - then: - - service: 'esphome.{{ nspanel_name }}_component_text' - data: - id: '{{ repeat.item.name }}_label' - txt: '{{ repeat.item.label }}' - continue_on_error: true - - service: 'esphome.{{ nspanel_name }}_component_color' - data: - id: '{{ repeat.item.name }}_label' - color: '{{ repeat.item.color }}' - continue_on_error: true - - service: 'esphome.{{ nspanel_name }}_components_visibility' - data: - ids: '{{ [repeat.item.name ~ "_label"] }}' - visible: true - continue_on_error: true - alias: Utilities - Line if: - '{{ icon_enabled or value1_enabled or value2_enabled or label_enabled }}' - - '{{ repeat.item.name not in ["home", "grid"] }}' + - '{{ repeat.item.name not in ["grid"] }}' + - '{{ utilities_constructor }}' then: - variables: - line_ref_state: > - {{ - states(repeat.item.line_ref) | float(0) - if repeat.item.line_ref is defined and repeat.item.line_ref is string and repeat.item.line_ref.split(".") | count == 2 - else 0 - }} - - service: 'esphome.{{ nspanel_name }}_component_val' + rgb565: '{{ int(((repeat.item.color[0] //(2**3)) *(2**11))+((repeat.item.color[1] //(2**2)) *(2**5))+(repeat.item.color[2] //(2**3))) }}' + - service: 'esphome.{{ nspanel_name }}_command' data: - id: '{{ repeat.item.name }}_line_d' - val: '{{ (((line_ref_state > 0) - (line_ref_state < 0)) * (-1 if repeat.item.line_inverted else 1)) | int(0) }}' + cmd: '{{ repeat.item.name }}_line.bco={{ rgb565 }}' continue_on_error: true - - if: '{{ utilities_constructor }}' + - service: 'esphome.{{ nspanel_name }}_command' + data: + cmd: '{{ repeat.item.name }}_line.bco1={{ rgb565 }}' + continue_on_error: true + - if: '{{ pages_utilities.cursor.width != 255 }}' then: - - variables: - rgb565: '{{ int(((repeat.item.color[0] //(2**3)) *(2**11))+((repeat.item.color[1] //(2**2)) *(2**5))+(repeat.item.color[2] //(2**3))) }}' - service: 'esphome.{{ nspanel_name }}_command' data: - cmd: '{{ repeat.item.name }}_line.bco={{ rgb565 }}' - continue_on_error: true - - service: 'esphome.{{ nspanel_name }}_command' - data: - cmd: '{{ repeat.item.name }}_line.bco1={{ rgb565 }}' - continue_on_error: true - - if: '{{ pages_utilities.cursor.width != 255 }}' - then: - - service: 'esphome.{{ nspanel_name }}_command' - data: - cmd: '{{ repeat.item.name }}_line.wid={{ pages_utilities.cursor.width }}' - continue_on_error: true - - service: 'esphome.{{ nspanel_name }}_components_visibility' - data: - ids: '{{ [repeat.item.name ~ "_line"] }}' - visible: true + cmd: '{{ repeat.item.name }}_line.wid={{ pages_utilities.cursor.width }}' continue_on_error: true + - service: 'esphome.{{ nspanel_name }}_components_visibility' + data: + ids: '{{ [repeat.item.name ~ "_line"] }}' + visible: true + continue_on_error: true ##### Button click ##### - alias: Button click @@ -9659,7 +9956,7 @@ action: - choose: - alias: Long click conditions: - - '{{ nspanel_event.command == "long_click" or entity_domain in ["climate", "media_player"] }}' + - '{{ nspanel_event.command == "long_click" or entity_domain in ["climate", "media_player", "alarm_control_panel"] }}' sequence: - choose: - alias: Default @@ -9670,11 +9967,29 @@ action: - variables: back_page: '{{ pages.home }}' - &entity_details_show - service: 'esphome.{{ nspanel_name }}_entity_details_show' - data: - entity: '{{ "embedded_climate" if entity_id == thermostat_embedded else entity_id }}' - back_page: '{{ back_page }}' - continue_on_error: true + if: '{{ true }}' + then: + - service: 'esphome.{{ nspanel_name }}_entity_details_show' + data: + entity: '{{ "embedded_climate" if entity_id == thermostat_embedded else entity_id }}' + back_page: '{{ back_page }}' + continue_on_error: true + - if: '{{ entity is defined and entity.icon is defined and entity.icon is string and entity.icon | length > 0 }}' + then: + - *delay_default + - service: 'esphome.{{ nspanel_name }}_component_text' + data: + id: icon_state + txt: '{{ entity.icon }}' + continue_on_error: true + - if: '{{ entity is defined and entity.name is defined and entity.name is string and entity.name | length > 0 }}' + then: + - *delay_default + - service: 'esphome.{{ nspanel_name }}_component_text' + data: + id: page_label + txt: '{{ entity.name }}' + continue_on_error: true - alias: Custom action - Left conditions: '{{ last_click_button.hold_select == "Custom Action" and nspanel_event.component == "hw_bt_left" }}' sequence: !input left_button_hold_custom_action @@ -9830,68 +10145,167 @@ action: conditions: - '{{ nspanel_event.type == "version"}}' sequence: - - if: '{{ nspanel_event.blueprint != blueprint_version }}' - then: - - service: persistent_notification.create - data: - notification_id: 'NSPanel_HA_Blueprint_version_mismatch_{{ nspanel_name }}' - title: NSPanel invalid Blueprint version - message: > - ESPHome cannot provide a valid Blueprint version. - - - Panel: {{ device_attr(nspanel_deviceid, "name") ~ (" (" ~ nspanel_name ~ ")") if nspanel_name != device_attr(nspanel_deviceid, "name") }} - - - TFT: {{ nspanel_event.tft }} - - - ESPHome: {{ nspanel_event.esphome }} - - - Blueprint (reported by ESPHome): {{ - nspanel_event.blueprint - if - nspanel_event.blueprint is defined and - nspanel_event.blueprint is string and - nspanel_event.blueprint | length > 0 - else "Unknown" - }} - - - Blueprint (installed): {{ blueprint_version }} - continue_on_error: true - else: - - if: - - '{{ nspanel_event.blueprint.split(".")[0] == nspanel_event.esphome.split(".")[0] }}' - - '{{ nspanel_event.blueprint.split(".")[1] == nspanel_event.esphome.split(".")[1] }}' - - '{{ nspanel_event.blueprint.split(".")[0] == nspanel_event.tft.split(".")[0] }}' - - '{{ nspanel_event.blueprint.split(".")[1] == nspanel_event.tft.split(".")[1] }}' - then: + - variables: + versions: + blueprint: > + {{ + ('%03d' | format(blueprint_version.split('.')[0] | int)) ~ "." ~ '%03d' | format(blueprint_version.split('.')[1] | int) + if blueprint_version.split('.') | count > 1 + else "000.000" + }} + esphome: > + {{ + ('%03d' | format(nspanel_event.esphome.split('.')[0] | int)) ~ "." ~ '%03d' | format(nspanel_event.esphome.split('.')[1] | int) + if nspanel_event.esphome.split('.') | count > 1 + else "000.000" + }} + tft: > + {{ + ('%03d' | format(nspanel_event.tft.split('.')[0] | int)) ~ "." ~ '%03d' | format(nspanel_event.tft.split('.')[1] | int) + if nspanel_event.tft.split('.') | count > 1 + else "000.000" + }} + versions_sorted: '{{ versions | dictsort(by="value") }}' + oldest: '{{ versions_sorted[0] }}' + newest: '{{ versions_sorted[-1] }}' + - choose: + # yamllint disable rule:line-length + - alias: All versions are the same + conditions: + - '{{ oldest[1] == newest[1] }}' + - '{{ nspanel_event.blueprint == blueprint_version }}' + sequence: - service: persistent_notification.dismiss data: notification_id: 'NSPanel_HA_Blueprint_version_mismatch_{{ nspanel_name }}' continue_on_error: true - else: + - alias: Blueprint is older + conditions: + - '{{ oldest[1] != newest[1] }}' + - '{{ oldest[0] == "blueprint" }}' + sequence: - service: persistent_notification.create data: notification_id: 'NSPanel_HA_Blueprint_version_mismatch_{{ nspanel_name }}' - title: NSPanel component version mismatch + title: NSPanel Blueprint Needs Update message: > - There's a version mismatch between NSPanel_HA_Blueprint components. Please update all the components to the same version. + Your NSPanel Blueprint version is outdated. - - Panel: {{ device_attr(nspanel_deviceid, "name") ~ (" (" ~ nspanel_name ~ ")") if nspanel_name != device_attr(nspanel_deviceid, "name") }} + - Current Blueprint version: {{ blueprint_version }} - - TFT: {{ nspanel_event.tft }} + - Expected version: {{ nspanel_event.esphome if newest[0] == "esphome" else nspanel_event.tft }}, based on the panel **{{ + device_attr(nspanel_deviceid, "name") ~ ((" - " ~ nspanel_name) if nspanel_name != device_attr(nspanel_deviceid, "name") else "") }}**. - - ESPHome: {{ nspanel_event.esphome }} + **How to Resolve This Issue** - - Blueprint (reported by ESPHome): {{ - nspanel_event.blueprint - if - nspanel_event.blueprint is defined and - nspanel_event.blueprint is string and - nspanel_event.blueprint | length > 0 - else "Unknown" - }} + 1. Navigate to your [Blueprint Dashboard](/config/blueprint/dashboard). - - Blueprint (installed): {{ blueprint_version }} + 2. Locate the blueprint named "**NSPanel Configuration**". + + 3. Click on the corresponding 3-dot menu. + + 4. Choose "**Re-import blueprint**". + + 5. Select the "**Re-import**" button. + + 6. Navigate to [YAML configuration reloading dashboard](/developer-tools/yaml). + + 7. Select "**Automations**" to reload the automations. + + + *For more detailed instructions, please refer to the online documentation: [How to Update Blueprint](https://github.com/Blackymas/NSPanel_HA_Blueprint/blob/main/docs/howto.md#update-blueprint).* continue_on_error: true + - alias: ESPHome is older + conditions: + - '{{ oldest[1] != newest[1] }}' + - '{{ oldest[0] == "esphome" }}' + sequence: + - service: persistent_notification.create + data: + notification_id: 'NSPanel_HA_Blueprint_version_mismatch_{{ nspanel_name }}' + title: NSPanel ESPHome Needs Update + message: > + Your NSPanel ESPHome version is outdated for the panel **{{ + device_attr(nspanel_deviceid, "name") ~ ((" (" ~ nspanel_name ~ ")") if nspanel_name != device_attr(nspanel_deviceid, "name") else "") }}**. + + - Current ESPHome version: {{ nspanel_event.esphome if nspanel_event.esphome is string and nspanel_event.esphome | length > 0 else oldest[1] }} + + - Expected version: {{ blueprint_version if newest[0] == "blueprint" else nspanel_event.tft }} + + **How to Resolve This Issue** + + 1. Go to your ESPHome Dashboard. + + 2. Locate the panel named {{ device_attr(nspanel_deviceid, "name") ~ ((" (" ~ nspanel_name ~ ")") if nspanel_name != device_attr(nspanel_deviceid, "name") else "") }}. + + 3. Click on the corresponding 3-dot menu. + + 4. Choose "**Clean Build Files**". + + 5. In the pop-up dialog, wait for the cleaning to finish, then click "**Install**". + + 6. Select "**Wirelessly**". + + + *For more detailed instructions, please refer to the online documentation: [How to Update ESPHome](https://github.com/Blackymas/NSPanel_HA_Blueprint/blob/main/docs/howto.md#update-esphome).* + continue_on_error: true + - alias: TFT is older + conditions: + - '{{ oldest[1] != newest[1] }}' + - '{{ oldest[0] == "tft" }}' + sequence: + - service: persistent_notification.create + data: + notification_id: 'NSPanel_HA_Blueprint_version_mismatch_{{ nspanel_name }}' + title: NSPanel TFT Display Needs Update + message: > + The TFT version on your NSPanel is outdated for the panel **{{ + device_attr(nspanel_deviceid, "name") ~ ((" (" ~ nspanel_name ~ ")") if nspanel_name != device_attr(nspanel_deviceid, "name") else "") }}**. + + - Current TFT version: {{ nspanel_event.tft if nspanel_event.tft is string and nspanel_event.tft | length > 0 else oldest[1] }} + + - Expected version: {{ blueprint_version if newest[0] == "blueprint" else nspanel_event.esphome }} + + **How to Resolve This Issue** + + 1. Navigate to the [device page](/config/devices/device/{{ nspanel_deviceid }}). + + 2. In the "**Configuration**" section, find the option labeled "**Update TFT Display - Model**". + + 3. Click "**Update TFT Display**" to initiate the update process. + + 4. Please wait patiently until your panel restarts, indicating the update is complete. + + + *For more detailed instructions, please refer to the online documentation: [How to Update TFT](https://github.com/Blackymas/NSPanel_HA_Blueprint/blob/main/docs/howto.md#update-tft).* + continue_on_error: true + - alias: Blueprint not detected + conditions: + - '{{ oldest[1] == newest[1] }}' + - '{{ nspanel_event.blueprint != blueprint_version }}' + sequence: + - service: persistent_notification.create + data: + notification_id: 'NSPanel_HA_Blueprint_version_mismatch_{{ nspanel_name }}' + title: NSPanel Blueprint Communication Issue + message: > + The ESPHome is unable to verify the Blueprint version for the NSPanel. + + - Panel Details: **{{ device_attr(nspanel_deviceid, "name") ~ (" (" ~ nspanel_name ~ ")") if nspanel_name != device_attr(nspanel_deviceid, "name") }}** + + - Installed Blueprint Version: {{ blueprint_version }} + + + Troubleshooting steps and more information are available in the online documentation: [Panel startup issues - Blueprint is not detected](https://github.com/Blackymas/NSPanel_HA_Blueprint/blob/main/docs/error_initializing.md#blueprint-is-not-detected). + continue_on_error: true + # yamllint enable rule:line-length + + ##### Notification changed ##### + - alias: Notification changed + conditions: + - '{{ nspanel_event.type == "notification_changed"}}' + sequence: + - *refresh_page_home_notification_button ##### Other events ##### - alias: Other events @@ -9932,6 +10346,8 @@ action: - automation_reloaded - ha_started sequence: + - variables: + nextion_inited: 'binary_sensor.{{ nspanel_name }}_nextion_display' - delay: > # Prevents all panels updating simultaneously in large systems {% set entities_list = states.binary_sensor | selectattr("entity_id", "search", "nextion_display") | map(attribute="entity_id") | list %} {{ (4 * entities_list.index(nextion_inited)) if (entities_list | count > 0 and nextion_inited in entities_list) else 0 }} @@ -9989,39 +10405,7 @@ action: - alias: 'Buttons entity updated' conditions: - condition: trigger - id: - - current_state_entity01 - - current_state_entity02 - - current_state_entity03 - - current_state_entity04 - - current_state_entity05 - - current_state_entity06 - - current_state_entity07 - - current_state_entity08 - - current_state_entity09 - - current_state_entity10 - - current_state_entity11 - - current_state_entity12 - - current_state_entity13 - - current_state_entity14 - - current_state_entity15 - - current_state_entity16 - - current_state_entity17 - - current_state_entity18 - - current_state_entity19 - - current_state_entity20 - - current_state_entity21 - - current_state_entity22 - - current_state_entity23 - - current_state_entity24 - - current_state_entity25 - - current_state_entity26 - - current_state_entity27 - - current_state_entity28 - - current_state_entity29 - - current_state_entity30 - - current_state_entity31 - - current_state_entity32 + id: trigger_buttonpage_state - '{{ trigger.to_state.state not in enum.states.unknown }}' - condition: or conditions: @@ -10086,11 +10470,7 @@ action: - alias: 'Update entity pages' conditions: - condition: trigger - id: - - trigger_entitypage01 - - trigger_entitypage02 - - trigger_entitypage03 - - trigger_entitypage04 + id: trigger_entitypage_state - '{{ pages.current in pages.entitypages }}' sequence: - *variables-entity_pages @@ -10110,11 +10490,7 @@ action: - alias: 'Update climate page values' conditions: - condition: trigger - id: - - climate_value01_state - - climate_value02_state - - climate_value03_state - - climate_value04_state + id: trigger_climatepage_value_state - '{{ pages.current == pages.climate }}' sequence: - *variables-climate_page @@ -10168,7 +10544,7 @@ action: list1: '{{ pages_utilities.groups | selectattr("value1", "defined") | selectattr("value1", "eq", trigger.entity_id) | list }}' list2: '{{ pages_utilities.groups | selectattr("value2", "defined") | selectattr("value2", "eq", trigger.entity_id) | list }}' list3: '{{ pages_utilities.groups | selectattr("line_ref", "defined") | selectattr("line_ref", "eq", trigger.entity_id) | list }}' - full_list: '{{ list1 + list2 }}' + full_list: '{{ list1 + list2 + list3 }}' groups: '{{ full_list | map(attribute="name") | unique | list }}' - repeat: for_each: '{{ pages_utilities.groups | selectattr("name", "in", groups) | list }}' @@ -10237,11 +10613,9 @@ action: conditions: - condition: trigger id: home_values_state - - '{{ pages.current == pages.home }}' sequence: - - *variables_home_page_values - repeat: - for_each: '{{ home_page_values | selectattr("entity", "defined") | selectattr("entity", "eq", trigger.event.data.entity_id) | list }}' + for_each: '{{ home_page.entity_value | selectattr("entity", "defined") | selectattr("entity", "eq", trigger.entity_id) | list }}' sequence: - *display_value @@ -10249,20 +10623,12 @@ action: - alias: Home page - status bar conditions: - condition: trigger - id: - - chip01_state - - chip02_state - - chip03_state - - chip04_state - - chip05_state - - chip06_state - - chip07_state + id: trigger_chip_state sequence: - - *variables_home_page_status_bar - repeat: for_each: > {{ - home_page_status_bar + home_page.chips | selectattr("entity", "defined") | selectattr("entity", "eq", trigger.event.data.entity_id) | list @@ -10270,40 +10636,46 @@ action: sequence: - *display_home_page_status_bar - ##### Home page - Notification changed ###### - - alias: Home page - Notification changed - conditions: - - condition: trigger - id: notification_changed - sequence: - - *variables_home_page_notify_button - ##### HW BUTTON - state ##### - alias: Hardware button - State conditions: - condition: trigger id: - left_button_state + - left_button_alt_state - right_button_state + - right_button_alt_state sequence: - *variables_hardware - variables: - button_name: '{{ "left" if trigger.id == "left_button_state" else "right" }}' - button_state: '{{ hardware.buttons[button_name].entity_is_valid and states(hardware.buttons[button_name].entity) | default("unavailable") in enum.states.on }}' + button_name: '{{ "left" if trigger.id in ["left_button_state", "left_button_alt_state"] else "right" }}' + button_state: &button_state_var > + {{ + ( + states(hardware.buttons[button_name].state_entity) | default("unavailable") + if hardware.buttons[button_name].state_entity_is_valid + else + ( + states(hardware.buttons[button_name].entity) | default("unavailable") + if hardware.buttons[button_name].entity_is_valid + else "unavailable" + ) + ) in enum.states.on + }} - service: 'esphome.{{ nspanel_name }}_hw_button_state' data: - button_mask: '{{ 1 if trigger.id == "left_button_state" else 2 }}' + button_mask: '{{ 1 if trigger.id in ["left_button_state", "left_button_alt_state"] else 2 }}' state: '{{ button_state }}' continue_on_error: true - delay: milliseconds: 250 - variables: - button_state_new: '{{ hardware.buttons[button_name].entity_is_valid and states(hardware.buttons[button_name].entity) | default("unavailable") in enum.states.on }}' + button_state_new: *button_state_var - if: '{{ button_state_new != button_state }}' then: - service: 'esphome.{{ nspanel_name }}_hw_button_state' data: - button_mask: '{{ 1 if trigger.id == "left_button_state" else 2 }}' + button_mask: '{{ 1 if trigger.id in ["left_button_state", "left_button_alt_state"] else 2 }}' state: '{{ button_state_new }}' continue_on_error: true @@ -10329,9 +10701,12 @@ action: ##### WEATHER STATE - change update ##### - alias: Weather - State changed conditions: - - condition: trigger - id: weather_state_change - - '{{ pages.current == pages.home and trigger.event.data.new_state.state not in enum.states.unknown }}' + - '{{ pages.current == pages.home }}' + - > + {{ + (trigger.id == "weather_state_change" and trigger.event.data.new_state.state not in enum.states.unknown) or + (trigger.id == "sun_state_change" and trigger.to_state.state not in enum.states.unknown) + }} sequence: - *refresh-page_home-outdoor_temp - *refresh-page_home-weather_pic @@ -10349,7 +10724,7 @@ action: url: "default" continue_on_error: true - #### TFT Upload Automation ##### + #### TFT Wake-up Automation ##### - alias: Wake-up conditions: - condition: trigger @@ -10359,8 +10734,4 @@ action: data: reset_timer: true continue_on_error: true - -############################################################# -##### CLOSE - Action ##### -############################################################# ...