Compare commits

..

4 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
9f79a1831e Fix linting issues and format code
Co-authored-by: chemelli74 <57354320+chemelli74@users.noreply.github.com>
2025-10-25 10:27:42 +00:00
copilot-swe-agent[bot]
b541934a75 Add comprehensive tests for VEDO PIN functionality
Co-authored-by: chemelli74 <57354320+chemelli74@users.noreply.github.com>
2025-10-25 10:24:59 +00:00
copilot-swe-agent[bot]
fa5c0c0bf2 Add optional VEDO PIN support to Comelit BRIDGE integration
Co-authored-by: chemelli74 <57354320+chemelli74@users.noreply.github.com>
2025-10-25 10:22:50 +00:00
copilot-swe-agent[bot]
1effbf3326 Initial plan 2025-10-25 10:07:33 +00:00
1568 changed files with 58167 additions and 65606 deletions

View File

@@ -69,7 +69,7 @@ jobs:
run: find ./homeassistant/components/*/translations -name "*.json" | tar zcvf translations.tar.gz -T -
- name: Upload translations
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: translations
path: translations.tar.gz
@@ -175,7 +175,7 @@ jobs:
sed -i "s|pykrakenapi|# pykrakenapi|g" requirements_all.txt
- name: Download translations
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
name: translations
@@ -464,7 +464,7 @@ jobs:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Download translations
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
name: translations

View File

@@ -535,7 +535,7 @@ jobs:
python --version
uv pip freeze >> pip_freeze.txt
- name: Upload pip_freeze artifact
uses: &actions-upload-artifact actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
uses: &actions-upload-artifact actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: pip-freeze-${{ matrix.python-version }}
path: pip_freeze.txt
@@ -867,7 +867,7 @@ jobs:
run: |
echo "::add-matcher::.github/workflows/matchers/pytest-slow.json"
- name: Download pytest_buckets
uses: &actions-download-artifact actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
uses: &actions-download-artifact actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
name: pytest_buckets
- &compile-english-translations

View File

@@ -24,11 +24,11 @@ jobs:
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Initialize CodeQL
uses: github/codeql-action/init@4e94bd11f71e507f7f87df81788dff88d1dacbfb # v4.31.0
uses: github/codeql-action/init@16140ae1a102900babc80a33c44059580f687047 # v4.30.9
with:
languages: python
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@4e94bd11f71e507f7f87df81788dff88d1dacbfb # v4.31.0
uses: github/codeql-action/analyze@16140ae1a102900babc80a33c44059580f687047 # v4.30.9
with:
category: "/language:python"

View File

@@ -92,7 +92,7 @@ jobs:
) > build_constraints.txt
- name: Upload env_file
uses: &actions-upload-artifact actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
uses: &actions-upload-artifact actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: env_file
path: ./.env_file
@@ -150,7 +150,7 @@ jobs:
- &download-env-file
name: Download env_file
uses: &actions-download-artifact actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
uses: &actions-download-artifact actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
name: env_file

View File

@@ -33,13 +33,10 @@ repos:
rev: v1.37.1
hooks:
- id: yamllint
- repo: https://github.com/rbubley/mirrors-prettier
rev: v3.6.2
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v3.0.3
hooks:
- id: prettier
additional_dependencies:
- prettier@3.6.2
- prettier-plugin-sort-json@4.1.1
- repo: https://github.com/cdce8p/python-typing-update
rev: v0.6.0
hooks:

View File

@@ -1,24 +0,0 @@
/** @type {import("prettier").Config} */
module.exports = {
overrides: [
{
files: "./homeassistant/**/*.json",
options: {
plugins: [require.resolve("prettier-plugin-sort-json")],
jsonRecursiveSort: true,
jsonSortOrder: JSON.stringify({ [/.*/]: "numeric" }),
},
},
{
files: ["manifest.json", "./**/brands/*.json"],
options: {
// domain and name should stay at the top
jsonSortOrder: JSON.stringify({
domain: null,
name: null,
[/.*/]: "numeric",
}),
},
},
],
};

View File

@@ -10,16 +10,16 @@
// Pyright is too pedantic for Home Assistant
"python.analysis.typeCheckingMode": "basic",
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.defaultFormatter": "charliermarsh.ruff"
},
"[json][jsonc][yaml]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"json.schemas": [
{
"fileMatch": ["homeassistant/components/*/manifest.json"],
// This value differs between working with devcontainer and locally, therefore this value should NOT be in sync!
"url": "./script/json_schemas/manifest_schema.json",
},
],
"url": "./script/json_schemas/manifest_schema.json"
}
]
}

2
CODEOWNERS generated
View File

@@ -1543,8 +1543,6 @@ build.json @home-assistant/supervisor
/tests/components/suez_water/ @ooii @jb101010-2
/homeassistant/components/sun/ @home-assistant/core
/tests/components/sun/ @home-assistant/core
/homeassistant/components/sunricher_dali_center/ @niracler
/tests/components/sunricher_dali_center/ @niracler
/homeassistant/components/supla/ @mwegrzynek
/homeassistant/components/surepetcare/ @benleb @danielhiversen
/tests/components/surepetcare/ @benleb @danielhiversen

View File

@@ -1,70 +1,70 @@
{
"config": {
"abort": {
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"invalid_mfa_code": "Invalid MFA code"
},
"step": {
"user": {
"title": "Fill in your Abode login information",
"data": {
"username": "[%key:common::config_flow::data::email%]",
"password": "[%key:common::config_flow::data::password%]"
}
},
"mfa": {
"title": "Enter your MFA code for Abode",
"data": {
"mfa_code": "MFA code (6-digits)"
},
"title": "Enter your MFA code for Abode"
}
},
"reauth_confirm": {
"title": "[%key:component::abode::config::step::user::title%]",
"data": {
"password": "[%key:common::config_flow::data::password%]",
"username": "[%key:common::config_flow::data::email%]"
},
"title": "[%key:component::abode::config::step::user::title%]"
},
"user": {
"data": {
"password": "[%key:common::config_flow::data::password%]",
"username": "[%key:common::config_flow::data::email%]"
},
"title": "Fill in your Abode login information"
"username": "[%key:common::config_flow::data::email%]",
"password": "[%key:common::config_flow::data::password%]"
}
}
},
"error": {
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_mfa_code": "Invalid MFA code"
},
"abort": {
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
}
},
"services": {
"capture_image": {
"name": "Capture image",
"description": "Requests a new image capture from a camera device.",
"fields": {
"entity_id": {
"description": "Entity ID of the camera to request an image from.",
"name": "Entity"
"name": "Entity",
"description": "Entity ID of the camera to request an image from."
}
},
"name": "Capture image"
}
},
"change_setting": {
"name": "Change setting",
"description": "Changes an Abode system setting.",
"fields": {
"setting": {
"description": "Setting to change.",
"name": "Setting"
"name": "Setting",
"description": "Setting to change."
},
"value": {
"description": "Value of the setting.",
"name": "Value"
"name": "Value",
"description": "Value of the setting."
}
},
"name": "Change setting"
}
},
"trigger_automation": {
"name": "Trigger automation",
"description": "Triggers an Abode automation.",
"fields": {
"entity_id": {
"description": "Entity ID of the automation to trigger.",
"name": "Entity"
"name": "Entity",
"description": "Entity ID of the automation to trigger."
}
},
"name": "Trigger automation"
}
}
}
}

View File

@@ -4,20 +4,20 @@
"timer_running": {
"default": "mdi:timer",
"state": {
"off": "mdi:timer-off",
"on": "mdi:timer-play"
"on": "mdi:timer-play",
"off": "mdi:timer-off"
}
}
},
"button": {
"tare": {
"default": "mdi:scale-balance"
},
"reset_timer": {
"default": "mdi:timer-refresh"
},
"start_stop": {
"default": "mdi:timer-play"
},
"tare": {
"default": "mdi:scale-balance"
}
}
}

View File

@@ -1,5 +1,6 @@
{
"config": {
"flow_title": "{name}",
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]",
@@ -9,19 +10,18 @@
"device_not_found": "Device could not be found.",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]"
},
"user": {
"description": "[%key:component::bluetooth::config::step::user::description%]",
"data": {
"address": "[%key:common::config_flow::data::device%]"
},
"data_description": {
"address": "Select Acaia scale you want to set up"
},
"description": "[%key:component::bluetooth::config::step::user::description%]"
}
}
}
},
@@ -32,14 +32,14 @@
}
},
"button": {
"tare": {
"name": "Tare"
},
"reset_timer": {
"name": "Reset timer"
},
"start_stop": {
"name": "Start/stop timer"
},
"tare": {
"name": "Tare"
}
}
}

View File

@@ -1,8 +1,25 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_location%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
"step": {
"user": {
"data": {
"name": "[%key:common::config_flow::data::name%]",
"api_key": "[%key:common::config_flow::data::api_key%]",
"latitude": "[%key:common::config_flow::data::latitude%]",
"longitude": "[%key:common::config_flow::data::longitude%]"
},
"data_description": {
"api_key": "API key generated in the AccuWeather APIs portal."
}
},
"reauth_confirm": {
"data": {
"api_key": "[%key:common::config_flow::data::api_key%]"
},
"data_description": {
"api_key": "[%key:component::accuweather::config::step::user::data_description::api_key%]"
}
}
},
"create_entry": {
"default": "Some sensors are not enabled by default. You can enable them in the entity registry after the integration configuration."
@@ -12,26 +29,9 @@
"invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]",
"requests_exceeded": "The allowed number of requests to the AccuWeather API has been exceeded. You have to wait or change the API key."
},
"step": {
"reauth_confirm": {
"data": {
"api_key": "[%key:common::config_flow::data::api_key%]"
},
"data_description": {
"api_key": "[%key:component::accuweather::config::step::user::data_description::api_key%]"
}
},
"user": {
"data": {
"api_key": "[%key:common::config_flow::data::api_key%]",
"latitude": "[%key:common::config_flow::data::latitude%]",
"longitude": "[%key:common::config_flow::data::longitude%]",
"name": "[%key:common::config_flow::data::name%]"
},
"data_description": {
"api_key": "API key generated in the AccuWeather APIs portal."
}
}
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_location%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
}
},
"entity": {
@@ -120,9 +120,9 @@
"pressure_tendency": {
"name": "Pressure tendency",
"state": {
"falling": "Falling",
"steady": "Steady",
"rising": "Rising",
"steady": "Steady"
"falling": "Falling"
},
"state_attributes": {
"options": {
@@ -227,6 +227,9 @@
"wet_bulb_temperature": {
"name": "Wet bulb temperature"
},
"wind_speed": {
"name": "[%key:component::weather::entity_component::_::state_attributes::wind_speed::name%]"
},
"wind_chill_temperature": {
"name": "Wind chill temperature"
},
@@ -239,9 +242,6 @@
"wind_gust_speed_night": {
"name": "Wind gust speed night {forecast_day}"
},
"wind_speed": {
"name": "[%key:component::weather::entity_component::_::state_attributes::wind_speed::name%]"
},
"wind_speed_day": {
"name": "Wind speed day {forecast_day}"
},

View File

@@ -1,15 +1,15 @@
{
"config": {
"abort": {
"no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]"
},
"step": {
"user": {
"title": "Pick a hub to add",
"data": {
"id": "Host ID"
},
"title": "Pick a hub to add"
}
}
},
"abort": {
"no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]"
}
}
}

View File

@@ -1,29 +1,29 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
"oauth2_error": "Failed to start OAuth2 flow"
},
"error": {
"oauth2_error": "Failed to start OAuth2 flow. Please try again later."
"step": {
"user": {
"title": "Actron Air OAuth2 Authorization"
},
"timeout": {
"title": "Authorization timeout",
"description": "The authorization process timed out. Please try again.",
"data": {}
},
"connection_error": {
"title": "Connection error",
"description": "Failed to connect to Actron Air. Please check your internet connection and try again.",
"data": {}
}
},
"progress": {
"wait_for_authorization": "To authenticate, open the following URL and login at Actron Air:\n{verification_uri}\nIf the code is not automatically copied, paste the following code to authorize the integration:\n\n```{user_code}```\n\n\nThe login attempt will time out after {expires_minutes} minutes."
},
"step": {
"connection_error": {
"data": {},
"description": "Failed to connect to Actron Air. Please check your internet connection and try again.",
"title": "Connection error"
},
"timeout": {
"data": {},
"description": "The authorization process timed out. Please try again.",
"title": "Authorization timeout"
},
"user": {
"title": "Actron Air OAuth2 Authorization"
}
"error": {
"oauth2_error": "Failed to start OAuth2 flow. Please try again later."
},
"abort": {
"oauth2_error": "Failed to start OAuth2 flow",
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]"
}
}
}

View File

@@ -1,34 +1,34 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"heater_not_available": "Heater not available. Try to reset the heater by pressing + and OK for some seconds.",
"heater_not_found": "Heater not found. Try to move the heater closer to Home Assistant computer.",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"step": {
"cloud": {
"data": {
"account_id": "Account ID",
"password": "[%key:common::config_flow::data::password%]"
}
},
"local": {
"data": {
"wifi_pswd": "Wi-Fi password",
"wifi_ssid": "Wi-Fi SSID"
},
"description": "Reset the heater by pressing + and OK until display shows 'Reset'. Then press and hold OK button on the heater until the blue LED starts blinking before pressing Submit. Configuring heater might take some minutes."
},
"user": {
"data": {
"connection_type": "Select connection type"
},
"description": "Select connection type. Local requires heaters with Bluetooth"
},
"local": {
"data": {
"wifi_ssid": "Wi-Fi SSID",
"wifi_pswd": "Wi-Fi password"
},
"description": "Reset the heater by pressing + and OK until display shows 'Reset'. Then press and hold OK button on the heater until the blue LED starts blinking before pressing Submit. Configuring heater might take some minutes."
},
"cloud": {
"data": {
"account_id": "Account ID",
"password": "[%key:common::config_flow::data::password%]"
}
}
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"heater_not_available": "Heater not available. Try to reset the heater by pressing + and OK for some seconds.",
"heater_not_found": "Heater not found. Try to move the heater closer to Home Assistant computer.",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]"
}
}
}

View File

@@ -1,9 +1,6 @@
{
"entity": {
"sensor": {
"average_processing_speed": {
"default": "mdi:speedometer"
},
"dns_queries": {
"default": "mdi:magnify"
},
@@ -16,18 +13,21 @@
"parental_control_blocked": {
"default": "mdi:human-male-girl"
},
"rules_count": {
"default": "mdi:counter"
},
"safe_browsing_blocked": {
"default": "mdi:shield-half-full"
},
"safe_searches_enforced": {
"default": "mdi:shield-search"
},
"average_processing_speed": {
"default": "mdi:speedometer"
},
"rules_count": {
"default": "mdi:counter"
}
},
"switch": {
"filtering": {
"protection": {
"default": "mdi:shield-check",
"state": {
"off": "mdi:shield-off"
@@ -39,13 +39,7 @@
"off": "mdi:shield-off"
}
},
"protection": {
"default": "mdi:shield-check",
"state": {
"off": "mdi:shield-off"
}
},
"query_log": {
"safe_search": {
"default": "mdi:shield-check",
"state": {
"off": "mdi:shield-off"
@@ -57,7 +51,13 @@
"off": "mdi:shield-off"
}
},
"safe_search": {
"filtering": {
"default": "mdi:shield-check",
"state": {
"off": "mdi:shield-off"
}
},
"query_log": {
"default": "mdi:shield-check",
"state": {
"off": "mdi:shield-off"
@@ -69,17 +69,17 @@
"add_url": {
"service": "mdi:link-plus"
},
"disable_url": {
"service": "mdi:link-variant-off"
"remove_url": {
"service": "mdi:link-off"
},
"enable_url": {
"service": "mdi:link-variant"
},
"disable_url": {
"service": "mdi:link-variant-off"
},
"refresh": {
"service": "mdi:refresh"
},
"remove_url": {
"service": "mdi:link-off"
}
}
}

View File

@@ -1,38 +1,35 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_service%]",
"existing_instance_updated": "Updated existing configuration."
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"step": {
"hassio_confirm": {
"description": "Do you want to configure Home Assistant to connect to the AdGuard Home provided by the add-on: {addon}?",
"title": "AdGuard Home via Home Assistant add-on"
},
"user": {
"description": "Set up your AdGuard Home instance to allow monitoring and control.",
"data": {
"host": "[%key:common::config_flow::data::host%]",
"password": "[%key:common::config_flow::data::password%]",
"port": "[%key:common::config_flow::data::port%]",
"ssl": "[%key:common::config_flow::data::ssl%]",
"username": "[%key:common::config_flow::data::username%]",
"ssl": "[%key:common::config_flow::data::ssl%]",
"verify_ssl": "[%key:common::config_flow::data::verify_ssl%]"
},
"data_description": {
"host": "The hostname or IP address of the device running your AdGuard Home."
},
"description": "Set up your AdGuard Home instance to allow monitoring and control."
}
},
"hassio_confirm": {
"title": "AdGuard Home via Home Assistant add-on",
"description": "Do you want to configure Home Assistant to connect to the AdGuard Home provided by the add-on: {addon}?"
}
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"abort": {
"existing_instance_updated": "Updated existing configuration.",
"already_configured": "[%key:common::config_flow::abort::already_configured_service%]"
}
},
"entity": {
"sensor": {
"average_processing_speed": {
"name": "Average processing speed"
},
"dns_queries": {
"name": "DNS queries"
},
@@ -45,91 +42,94 @@
"parental_control_blocked": {
"name": "Parental control blocked"
},
"rules_count": {
"name": "Rules count"
},
"safe_browsing_blocked": {
"name": "Safe browsing blocked"
},
"safe_searches_enforced": {
"name": "Safe searches enforced"
},
"average_processing_speed": {
"name": "Average processing speed"
},
"rules_count": {
"name": "Rules count"
}
},
"switch": {
"filtering": {
"name": "Filtering"
"protection": {
"name": "Protection"
},
"parental": {
"name": "Parental control"
},
"protection": {
"name": "Protection"
},
"query_log": {
"name": "Query log"
"safe_search": {
"name": "Safe search"
},
"safe_browsing": {
"name": "Safe browsing"
},
"safe_search": {
"name": "Safe search"
"filtering": {
"name": "Filtering"
},
"query_log": {
"name": "Query log"
}
}
},
"services": {
"add_url": {
"name": "Add URL",
"description": "Adds a new filter subscription to AdGuard Home.",
"fields": {
"name": {
"description": "The name of the filter subscription.",
"name": "[%key:common::config_flow::data::name%]"
"name": "[%key:common::config_flow::data::name%]",
"description": "The name of the filter subscription."
},
"url": {
"description": "The filter URL to subscribe to, containing the filter rules.",
"name": "[%key:common::config_flow::data::url%]"
"name": "[%key:common::config_flow::data::url%]",
"description": "The filter URL to subscribe to, containing the filter rules."
}
},
"name": "Add URL"
},
"disable_url": {
"description": "Disables a filter subscription in AdGuard Home.",
"fields": {
"url": {
"description": "The filter subscription URL to disable.",
"name": "[%key:common::config_flow::data::url%]"
}
},
"name": "Disable URL"
},
"enable_url": {
"description": "Enables a filter subscription in AdGuard Home.",
"fields": {
"url": {
"description": "The filter subscription URL to enable.",
"name": "[%key:common::config_flow::data::url%]"
}
},
"name": "Enable URL"
},
"refresh": {
"description": "Refreshes all filter subscriptions in AdGuard Home.",
"fields": {
"force": {
"description": "Force update (bypasses AdGuard Home throttling), omit for a regular refresh.",
"name": "Force"
}
},
"name": "Refresh"
}
},
"remove_url": {
"name": "Remove URL",
"description": "Removes a filter subscription from AdGuard Home.",
"fields": {
"url": {
"description": "The filter subscription URL to remove.",
"name": "[%key:common::config_flow::data::url%]"
"name": "[%key:common::config_flow::data::url%]",
"description": "The filter subscription URL to remove."
}
},
"name": "Remove URL"
}
},
"enable_url": {
"name": "Enable URL",
"description": "Enables a filter subscription in AdGuard Home.",
"fields": {
"url": {
"name": "[%key:common::config_flow::data::url%]",
"description": "The filter subscription URL to enable."
}
}
},
"disable_url": {
"name": "Disable URL",
"description": "Disables a filter subscription in AdGuard Home.",
"fields": {
"url": {
"name": "[%key:common::config_flow::data::url%]",
"description": "The filter subscription URL to disable."
}
}
},
"refresh": {
"name": "Refresh",
"description": "Refreshes all filter subscriptions in AdGuard Home.",
"fields": {
"force": {
"name": "Force",
"description": "Force update (bypasses AdGuard Home throttling), omit for a regular refresh."
}
}
}
}
}

View File

@@ -1,22 +1,22 @@
{
"services": {
"write_data_by_name": {
"name": "Write data by name",
"description": "Write a value to the connected ADS device.",
"fields": {
"adstype": {
"description": "The data type of the variable to write to.",
"name": "ADS type"
},
"adsvar": {
"description": "The name of the variable to write to.",
"name": "ADS variable"
"name": "ADS variable",
"description": "The name of the variable to write to."
},
"adstype": {
"name": "ADS type",
"description": "The data type of the variable to write to."
},
"value": {
"description": "The value to write to the variable.",
"name": "Value"
"name": "Value",
"description": "The value to write to the variable."
}
},
"name": "Write data by name"
}
}
}
}

View File

@@ -1,11 +1,11 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
},
"step": {
"user": {
"data": {
@@ -19,14 +19,14 @@
},
"services": {
"set_time_to": {
"name": "Set time to",
"description": "Controls timers to turn the system on or off after a set number of minutes.",
"fields": {
"minutes": {
"description": "Minutes until action.",
"name": "Minutes"
"name": "Minutes",
"description": "Minutes until action."
}
},
"name": "Set time to"
}
}
}
}

View File

@@ -1,57 +1,57 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"step": {
"user": {
"data": {
"api_key": "[%key:common::config_flow::data::api_key%]"
}
}
}
},
"issues": {
"deprecated_yaml_import_issue_cannot_connect": {
"description": "Configuring {integration_title} using YAML is being removed but there was a connection error importing your YAML configuration.\n\nEnsure connection to {integration_title} works and restart Home Assistant to try again or remove the {integration_title} YAML configuration from your configuration.yaml file and continue to [set up the integration]({url}) manually.",
"title": "The {integration_title} YAML configuration import failed"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
}
},
"services": {
"add_tracking": {
"name": "Add tracking",
"description": "Adds a new tracking number to Aftership.",
"fields": {
"slug": {
"description": "Slug (carrier) of the new tracking.",
"name": "Slug"
"tracking_number": {
"name": "Tracking number",
"description": "Tracking number for the new tracking."
},
"title": {
"description": "A custom title for the new tracking.",
"name": "Title"
"name": "Title",
"description": "A custom title for the new tracking."
},
"tracking_number": {
"description": "Tracking number for the new tracking.",
"name": "Tracking number"
"slug": {
"name": "Slug",
"description": "Slug (carrier) of the new tracking."
}
},
"name": "Add tracking"
}
},
"remove_tracking": {
"name": "Remove tracking",
"description": "Removes a tracking number from Aftership.",
"fields": {
"slug": {
"description": "Slug (carrier) of the tracking to remove.",
"name": "[%key:component::aftership::services::add_tracking::fields::slug::name%]"
},
"tracking_number": {
"description": "Tracking number of the tracking to remove.",
"name": "[%key:component::aftership::services::add_tracking::fields::tracking_number::name%]"
"name": "[%key:component::aftership::services::add_tracking::fields::tracking_number::name%]",
"description": "Tracking number of the tracking to remove."
},
"slug": {
"name": "[%key:component::aftership::services::add_tracking::fields::slug::name%]",
"description": "Slug (carrier) of the tracking to remove."
}
},
"name": "Remove tracking"
}
}
},
"issues": {
"deprecated_yaml_import_issue_cannot_connect": {
"title": "The {integration_title} YAML configuration import failed",
"description": "Configuring {integration_title} using YAML is being removed but there was a connection error importing your YAML configuration.\n\nEnsure connection to {integration_title} works and restart Home Assistant to try again or remove the {integration_title} YAML configuration from your configuration.yaml file and continue to [set up the integration]({url}) manually."
}
}
}

View File

@@ -1,19 +1,19 @@
{
"services": {
"disable_alerts": {
"service": "mdi:bell-off"
},
"enable_alerts": {
"service": "mdi:bell-alert"
},
"snapshot": {
"service": "mdi:camera"
},
"start_recording": {
"service": "mdi:record-rec"
},
"stop_recording": {
"service": "mdi:stop"
},
"enable_alerts": {
"service": "mdi:bell-alert"
},
"disable_alerts": {
"service": "mdi:bell-off"
},
"snapshot": {
"service": "mdi:camera"
}
}
}

View File

@@ -1,45 +1,45 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
},
"error": {
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"step": {
"user": {
"title": "Set up Agent DVR",
"data": {
"host": "[%key:common::config_flow::data::host%]",
"port": "[%key:common::config_flow::data::port%]"
},
"data_description": {
"host": "The IP address of the Agent DVR server."
},
"title": "Set up Agent DVR"
}
}
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
},
"error": {
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
}
},
"services": {
"disable_alerts": {
"description": "Disables alerts.",
"name": "Disable alerts"
},
"enable_alerts": {
"description": "Enables alerts.",
"name": "Enable alerts"
},
"snapshot": {
"description": "Takes a photo.",
"name": "Snapshot"
},
"start_recording": {
"description": "Enables continuous recording.",
"name": "Start recording"
"name": "Start recording",
"description": "Enables continuous recording."
},
"stop_recording": {
"description": "Disables continuous recording.",
"name": "Stop recording"
"name": "Stop recording",
"description": "Disables continuous recording."
},
"enable_alerts": {
"name": "Enable alerts",
"description": "Enables alerts."
},
"disable_alerts": {
"name": "Disable alerts",
"description": "Disables alerts."
},
"snapshot": {
"name": "Snapshot",
"description": "Takes a photo."
}
}
}

View File

@@ -1,52 +1,52 @@
{
"services": {
"generate_data": {
"name": "Generate data",
"description": "Uses AI to run a task that generates data.",
"fields": {
"attachments": {
"description": "List of files to attach for multi-modal AI analysis.",
"name": "Attachments"
},
"entity_id": {
"description": "Entity ID to run the task on. If not provided, the preferred entity will be used.",
"name": "Entity ID"
"task_name": {
"name": "Task name",
"description": "Name of the task."
},
"instructions": {
"description": "Instructions on what needs to be done.",
"name": "Instructions"
"name": "Instructions",
"description": "Instructions on what needs to be done."
},
"entity_id": {
"name": "Entity ID",
"description": "Entity ID to run the task on. If not provided, the preferred entity will be used."
},
"structure": {
"description": "When set, the AI Task will output fields with this in structure. The structure is a dictionary where the keys are the field names and the values contain a 'description', a 'selector', and an optional 'required' field.",
"name": "Structured output"
"name": "Structured output",
"description": "When set, the AI Task will output fields with this in structure. The structure is a dictionary where the keys are the field names and the values contain a 'description', a 'selector', and an optional 'required' field."
},
"task_name": {
"description": "Name of the task.",
"name": "Task name"
"attachments": {
"name": "Attachments",
"description": "List of files to attach for multi-modal AI analysis."
}
},
"name": "Generate data"
}
},
"generate_image": {
"name": "Generate image",
"description": "Uses AI to generate image.",
"fields": {
"attachments": {
"description": "List of files to attach for using as references.",
"name": "Attachments"
},
"entity_id": {
"description": "Entity ID to run the task on.",
"name": "Entity ID"
"task_name": {
"name": "Task name",
"description": "Name of the task."
},
"instructions": {
"description": "Instructions that explains the image to be generated.",
"name": "Instructions"
"name": "Instructions",
"description": "Instructions that explains the image to be generated."
},
"task_name": {
"description": "Name of the task.",
"name": "Task name"
"entity_id": {
"name": "Entity ID",
"description": "Entity ID to run the task on."
},
"attachments": {
"name": "Attachments",
"description": "List of files to attach for using as references."
}
},
"name": "Generate image"
}
}
}
}

View File

@@ -9,17 +9,14 @@
}
},
"number": {
"display_brightness": {
"led_bar_brightness": {
"default": "mdi:brightness-percent"
},
"led_bar_brightness": {
"display_brightness": {
"default": "mdi:brightness-percent"
}
},
"select": {
"co2_automatic_baseline_calibration": {
"default": "mdi:molecule-co2"
},
"configuration_control": {
"default": "mdi:cloud-cog"
},
@@ -34,11 +31,23 @@
},
"voc_index_learning_time_offset": {
"default": "mdi:clock-outline"
},
"co2_automatic_baseline_calibration": {
"default": "mdi:molecule-co2"
}
},
"sensor": {
"co2_automatic_baseline_calibration": {
"default": "mdi:molecule-co2"
"total_volatile_organic_component_index": {
"default": "mdi:molecule"
},
"nitrogen_index": {
"default": "mdi:molecule"
},
"pm003_count": {
"default": "mdi:blur"
},
"led_bar_brightness": {
"default": "mdi:brightness-percent"
},
"display_brightness": {
"default": "mdi:brightness-percent"
@@ -46,26 +55,17 @@
"display_temperature_unit": {
"default": "mdi:thermometer-lines"
},
"led_bar_brightness": {
"default": "mdi:brightness-percent"
},
"led_bar_mode": {
"default": "mdi:led-strip"
},
"nitrogen_index": {
"default": "mdi:molecule"
},
"nox_index_learning_time_offset": {
"default": "mdi:clock-outline"
},
"pm003_count": {
"default": "mdi:blur"
},
"total_volatile_organic_component_index": {
"default": "mdi:molecule"
},
"voc_index_learning_time_offset": {
"default": "mdi:clock-outline"
},
"co2_automatic_baseline_calibration": {
"default": "mdi:molecule-co2"
}
},
"switch": {

View File

@@ -1,5 +1,19 @@
{
"config": {
"flow_title": "{model}",
"step": {
"user": {
"data": {
"host": "[%key:common::config_flow::data::host%]"
},
"data_description": {
"host": "The hostname or IP address of the Airgradient device."
}
},
"discovery_confirm": {
"description": "Do you want to set up {model}?"
}
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
@@ -10,20 +24,6 @@
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"flow_title": "{model}",
"step": {
"discovery_confirm": {
"description": "Do you want to set up {model}?"
},
"user": {
"data": {
"host": "[%key:common::config_flow::data::host%]"
},
"data_description": {
"host": "The hostname or IP address of the Airgradient device."
}
}
}
},
"entity": {
@@ -36,25 +36,14 @@
}
},
"number": {
"display_brightness": {
"name": "Display brightness"
},
"led_bar_brightness": {
"name": "LED bar brightness"
},
"display_brightness": {
"name": "Display brightness"
}
},
"select": {
"co2_automatic_baseline_calibration": {
"name": "CO2 automatic baseline duration",
"state": {
"0": "[%key:common::state::off%]",
"1": "1 day",
"8": "8 days",
"30": "30 days",
"90": "90 days",
"180": "180 days"
}
},
"configuration_control": {
"name": "Configuration source",
"state": {
@@ -62,13 +51,6 @@
"local": "Local"
}
},
"display_pm_standard": {
"name": "Display PM standard",
"state": {
"ugm3": "μg/m³",
"us_aqi": "US AQI"
}
},
"display_temperature_unit": {
"name": "Display temperature unit",
"state": {
@@ -76,11 +58,18 @@
"f": "Fahrenheit"
}
},
"display_pm_standard": {
"name": "Display PM standard",
"state": {
"ugm3": "μg/m³",
"us_aqi": "US AQI"
}
},
"led_bar_mode": {
"name": "LED bar mode",
"state": {
"co2": "[%key:component::sensor::entity_component::carbon_dioxide::name%]",
"off": "[%key:common::state::off%]",
"co2": "[%key:component::sensor::entity_component::carbon_dioxide::name%]",
"pm": "Particulate matter"
}
},
@@ -103,14 +92,37 @@
"360": "[%key:component::airgradient::entity::select::nox_index_learning_time_offset::state::360%]",
"720": "[%key:component::airgradient::entity::select::nox_index_learning_time_offset::state::720%]"
}
},
"co2_automatic_baseline_calibration": {
"name": "CO2 automatic baseline duration",
"state": {
"1": "1 day",
"8": "8 days",
"30": "30 days",
"90": "90 days",
"180": "180 days",
"0": "[%key:common::state::off%]"
}
}
},
"sensor": {
"co2_automatic_baseline_calibration_days": {
"name": "Carbon dioxide automatic baseline calibration"
"total_volatile_organic_component_index": {
"name": "VOC index"
},
"display_brightness": {
"name": "[%key:component::airgradient::entity::number::display_brightness::name%]"
"nitrogen_index": {
"name": "NOx index"
},
"pm003_count": {
"name": "PM0.3"
},
"raw_total_volatile_organic_component": {
"name": "Raw VOC"
},
"raw_nitrogen": {
"name": "Raw NOx"
},
"raw_pm02": {
"name": "Raw PM2.5"
},
"display_pm_standard": {
"name": "[%key:component::airgradient::entity::select::display_pm_standard::name%]",
@@ -119,6 +131,26 @@
"us_aqi": "[%key:component::airgradient::entity::select::display_pm_standard::state::us_aqi%]"
}
},
"co2_automatic_baseline_calibration_days": {
"name": "Carbon dioxide automatic baseline calibration"
},
"nox_learning_offset": {
"name": "[%key:component::airgradient::entity::select::nox_index_learning_time_offset::name%]"
},
"tvoc_learning_offset": {
"name": "[%key:component::airgradient::entity::select::voc_index_learning_time_offset::name%]"
},
"led_bar_mode": {
"name": "[%key:component::airgradient::entity::select::led_bar_mode::name%]",
"state": {
"off": "[%key:common::state::off%]",
"co2": "[%key:component::sensor::entity_component::carbon_dioxide::name%]",
"pm": "[%key:component::airgradient::entity::select::led_bar_mode::state::pm%]"
}
},
"led_bar_brightness": {
"name": "[%key:component::airgradient::entity::number::led_bar_brightness::name%]"
},
"display_temperature_unit": {
"name": "[%key:component::airgradient::entity::select::display_temperature_unit::name%]",
"state": {
@@ -126,40 +158,8 @@
"f": "[%key:component::airgradient::entity::select::display_temperature_unit::state::f%]"
}
},
"led_bar_brightness": {
"name": "[%key:component::airgradient::entity::number::led_bar_brightness::name%]"
},
"led_bar_mode": {
"name": "[%key:component::airgradient::entity::select::led_bar_mode::name%]",
"state": {
"co2": "[%key:component::sensor::entity_component::carbon_dioxide::name%]",
"off": "[%key:common::state::off%]",
"pm": "[%key:component::airgradient::entity::select::led_bar_mode::state::pm%]"
}
},
"nitrogen_index": {
"name": "NOx index"
},
"nox_learning_offset": {
"name": "[%key:component::airgradient::entity::select::nox_index_learning_time_offset::name%]"
},
"pm003_count": {
"name": "PM0.3"
},
"raw_nitrogen": {
"name": "Raw NOx"
},
"raw_pm02": {
"name": "Raw PM2.5"
},
"raw_total_volatile_organic_component": {
"name": "Raw VOC"
},
"total_volatile_organic_component_index": {
"name": "VOC index"
},
"tvoc_learning_offset": {
"name": "[%key:component::airgradient::entity::select::voc_index_learning_time_offset::name%]"
"display_brightness": {
"name": "[%key:component::airgradient::entity::number::display_brightness::name%]"
}
},
"switch": {

View File

@@ -1,23 +1,30 @@
{
"config": {
"step": {
"user": {
"description": "To generate API key go to {developer_registration_url}",
"data": {
"name": "[%key:common::config_flow::data::name%]",
"api_key": "[%key:common::config_flow::data::api_key%]",
"latitude": "[%key:common::config_flow::data::latitude%]",
"longitude": "[%key:common::config_flow::data::longitude%]"
}
}
},
"error": {
"wrong_location": "No Airly measuring stations in this area.",
"invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_location%]",
"wrong_location": "[%key:component::airly::config::error::wrong_location%]"
},
"error": {
"invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]",
"wrong_location": "No Airly measuring stations in this area."
},
"step": {
"user": {
"data": {
"api_key": "[%key:common::config_flow::data::api_key%]",
"latitude": "[%key:common::config_flow::data::latitude%]",
"longitude": "[%key:common::config_flow::data::longitude%]",
"name": "[%key:common::config_flow::data::name%]"
},
"description": "To generate API key go to {developer_registration_url}"
}
}
},
"system_health": {
"info": {
"can_reach_server": "Reach Airly server",
"requests_remaining": "Remaining allowed requests",
"requests_per_day": "Allowed requests per day"
}
},
"entity": {
@@ -31,18 +38,11 @@
}
},
"exceptions": {
"no_station": {
"message": "An error occurred while retrieving data from the Airly API for {entry}: no measuring stations in this area"
},
"update_error": {
"message": "An error occurred while retrieving data from the Airly API for {entry}: {error}"
}
},
"system_health": {
"info": {
"can_reach_server": "Reach Airly server",
"requests_per_day": "Allowed requests per day",
"requests_remaining": "Remaining allowed requests"
},
"no_station": {
"message": "An error occurred while retrieving data from the Airly API for {entry}: no measuring stations in this area"
}
}
}

View File

@@ -4,15 +4,15 @@
"aqi": {
"default": "mdi:blur"
},
"o3": {
"default": "mdi:blur"
},
"pm10": {
"default": "mdi:blur"
},
"pm25": {
"default": "mdi:blur"
},
"o3": {
"default": "mdi:blur"
},
"station": {
"default": "mdi:blur"
}

View File

@@ -1,7 +1,15 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
"step": {
"user": {
"description": "To generate API key go to {api_key_url}",
"data": {
"api_key": "[%key:common::config_flow::data::api_key%]",
"latitude": "[%key:common::config_flow::data::latitude%]",
"longitude": "[%key:common::config_flow::data::longitude%]",
"radius": "Station radius (miles; optional)"
}
}
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
@@ -9,15 +17,16 @@
"invalid_location": "No results found for that location, try changing the location or station radius.",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
}
},
"options": {
"step": {
"user": {
"init": {
"data": {
"api_key": "[%key:common::config_flow::data::api_key%]",
"latitude": "[%key:common::config_flow::data::latitude%]",
"longitude": "[%key:common::config_flow::data::longitude%]",
"radius": "Station radius (miles; optional)"
},
"description": "To generate API key go to {api_key_url}"
"radius": "Station radius (miles)"
}
}
}
},
@@ -34,14 +43,5 @@
}
}
}
},
"options": {
"step": {
"init": {
"data": {
"radius": "Station radius (miles)"
}
}
}
}
}

View File

@@ -1,17 +1,5 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]",
"reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]",
"unique_id_mismatch": "Re-authentication should be used for the same device not a new one"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"key_data_missing": "Expected data not returned from the device, check the documentation for supported devices",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"flow_title": "Ubiquiti airOS device",
"step": {
"reauth_confirm": {
@@ -31,6 +19,7 @@
},
"sections": {
"advanced_settings": {
"name": "[%key:component::airos::config::step::user::sections::advanced_settings::name%]",
"data": {
"ssl": "[%key:component::airos::config::step::user::sections::advanced_settings::data::ssl%]",
"verify_ssl": "[%key:common::config_flow::data::verify_ssl%]"
@@ -38,24 +27,24 @@
"data_description": {
"ssl": "[%key:component::airos::config::step::user::sections::advanced_settings::data_description::ssl%]",
"verify_ssl": "[%key:component::airos::config::step::user::sections::advanced_settings::data_description::verify_ssl%]"
},
"name": "[%key:component::airos::config::step::user::sections::advanced_settings::name%]"
}
}
}
},
"user": {
"data": {
"host": "[%key:common::config_flow::data::host%]",
"password": "[%key:common::config_flow::data::password%]",
"username": "[%key:common::config_flow::data::username%]"
"username": "[%key:common::config_flow::data::username%]",
"password": "[%key:common::config_flow::data::password%]"
},
"data_description": {
"host": "IP address or hostname of the airOS device",
"password": "Password configured through the UISP app or web interface",
"username": "Administrator username for the airOS device, normally 'ubnt'"
"username": "Administrator username for the airOS device, normally 'ubnt'",
"password": "Password configured through the UISP app or web interface"
},
"sections": {
"advanced_settings": {
"name": "Advanced settings",
"data": {
"ssl": "Use HTTPS",
"verify_ssl": "[%key:common::config_flow::data::verify_ssl%]"
@@ -63,17 +52,28 @@
"data_description": {
"ssl": "Whether the connection should be encrypted (required for most devices)",
"verify_ssl": "Whether the certificate should be verified when using HTTPS. This should be off for self-signed certificates"
},
"name": "Advanced settings"
}
}
}
}
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"key_data_missing": "Expected data not returned from the device, check the documentation for supported devices",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]",
"reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]",
"unique_id_mismatch": "Re-authentication should be used for the same device not a new one"
}
},
"entity": {
"binary_sensor": {
"dhcp6_server": {
"name": "DHCPv6 server"
"port_forwarding": {
"name": "Port forwarding"
},
"dhcp_client": {
"name": "DHCP client"
@@ -81,8 +81,8 @@
"dhcp_server": {
"name": "DHCP server"
},
"port_forwarding": {
"name": "Port forwarding"
"dhcp6_server": {
"name": "DHCPv6 server"
},
"pppoe": {
"name": "PPPoE link"
@@ -99,27 +99,20 @@
"router": "Router"
}
},
"host_uptime": {
"name": "Uptime"
},
"wireless_antenna_gain": {
"name": "Antenna gain"
},
"wireless_distance": {
"name": "Wireless distance"
"wireless_frequency": {
"name": "Wireless frequency"
},
"wireless_essid": {
"name": "Wireless SSID"
},
"wireless_frequency": {
"name": "Wireless frequency"
"wireless_antenna_gain": {
"name": "Antenna gain"
},
"wireless_mode": {
"name": "Wireless mode",
"state": {
"point_to_multipoint": "Point-to-multipoint",
"point_to_point": "Point-to-point"
}
"wireless_throughput_tx": {
"name": "Throughput transmit (actual)"
},
"wireless_throughput_rx": {
"name": "Throughput receive (actual)"
},
"wireless_polling_dl_capacity": {
"name": "Download capacity"
@@ -130,6 +123,12 @@
"wireless_remote_hostname": {
"name": "Remote hostname"
},
"host_uptime": {
"name": "Uptime"
},
"wireless_distance": {
"name": "Wireless distance"
},
"wireless_role": {
"name": "Wireless role",
"state": {
@@ -137,26 +136,27 @@
"station": "Station"
}
},
"wireless_throughput_rx": {
"name": "Throughput receive (actual)"
},
"wireless_throughput_tx": {
"name": "Throughput transmit (actual)"
"wireless_mode": {
"name": "Wireless mode",
"state": {
"point_to_point": "Point-to-point",
"point_to_multipoint": "Point-to-multipoint"
}
}
}
},
"exceptions": {
"cannot_connect": {
"message": "[%key:common::config_flow::error::cannot_connect%]"
},
"error_data_missing": {
"message": "Data incomplete or missing"
},
"invalid_auth": {
"message": "[%key:common::config_flow::error::invalid_auth%]"
},
"cannot_connect": {
"message": "[%key:common::config_flow::error::cannot_connect%]"
},
"key_data_missing": {
"message": "Key data not returned from device"
},
"error_data_missing": {
"message": "Data incomplete or missing"
}
}
}

View File

@@ -1,21 +1,36 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
"step": {
"user": {
"title": "Identify the device",
"description": "Provide the IP address or mDNS of the device and its password",
"data": {
"ip_address": "[%key:common::config_flow::data::ip%]",
"password": "[%key:common::config_flow::data::password%]"
}
}
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"invalid_input": "[%key:common::config_flow::error::invalid_host%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
}
},
"options": {
"step": {
"user": {
"init": {
"title": "Configure air-Q integration",
"data": {
"ip_address": "[%key:common::config_flow::data::ip%]",
"password": "[%key:common::config_flow::data::password%]"
"return_average": "Show values averaged by the device",
"clip_negatives": "Clip negative values"
},
"description": "Provide the IP address or mDNS of the device and its password",
"title": "Identify the device"
"data_description": {
"return_average": "air-Q allows to poll both the noisy sensor readings as well as the values averaged on the device (default)",
"clip_negatives": "For baseline calibration purposes, certain sensor values may briefly become negative. The default behavior is to clip such values to 0"
}
}
}
},
@@ -38,11 +53,8 @@
"bromine": {
"name": "Bromine"
},
"carbon_disulfide": {
"name": "Carbon disulfide"
},
"carbon_monoxide": {
"name": "[%key:component::sensor::entity_component::carbon_monoxide::name%]"
"methanethiol": {
"name": "Methanethiol"
},
"chlorine": {
"name": "Chlorine"
@@ -50,6 +62,12 @@
"chlorine_dioxide": {
"name": "Chlorine dioxide"
},
"carbon_disulfide": {
"name": "Carbon disulfide"
},
"carbon_monoxide": {
"name": "[%key:component::sensor::entity_component::carbon_monoxide::name%]"
},
"dew_point": {
"name": "Dew point"
},
@@ -59,51 +77,36 @@
"ethylene": {
"name": "Ethylene"
},
"fluorine": {
"name": "Fluorine"
},
"formaldehyde": {
"name": "Formaldehyde"
},
"health_index": {
"name": "Health index"
"fluorine": {
"name": "Fluorine"
},
"hydrogen_sulfide": {
"name": "Hydrogen sulfide"
},
"hydrochloric_acid": {
"name": "Hydrochloric acid"
},
"hydrogen": {
"name": "Hydrogen"
},
"hydrogen_cyanide": {
"name": "Hydrogen cyanide"
},
"hydrogen_fluoride": {
"name": "Hydrogen fluoride"
},
"health_index": {
"name": "Health index"
},
"hydrogen": {
"name": "Hydrogen"
},
"hydrogen_peroxide": {
"name": "Hydrogen peroxide"
},
"hydrogen_phosphide": {
"name": "Hydrogen phosphide"
},
"hydrogen_sulfide": {
"name": "Hydrogen sulfide"
},
"industrial_volatile_organic_compounds": {
"name": "VOCs (industrial)"
},
"maximum_noise": {
"name": "Noise (maximum)"
},
"methane": {
"name": "Methane"
},
"methanethiol": {
"name": "Methanethiol"
},
"noise": {
"name": "Noise"
},
"organic_acid": {
"name": "Organic acid"
},
@@ -113,39 +116,36 @@
"performance_index": {
"name": "Performance index"
},
"propane": {
"name": "Propane"
},
"radon": {
"name": "Radon"
},
"refigerant": {
"name": "Refrigerant"
"hydrogen_phosphide": {
"name": "Hydrogen phosphide"
},
"relative_pressure": {
"name": "Relative pressure"
},
"propane": {
"name": "Propane"
},
"refigerant": {
"name": "Refrigerant"
},
"silicon_hydride": {
"name": "Silicon hydride"
},
"noise": {
"name": "Noise"
},
"maximum_noise": {
"name": "Noise (maximum)"
},
"radon": {
"name": "Radon"
},
"industrial_volatile_organic_compounds": {
"name": "VOCs (industrial)"
},
"virus_index": {
"name": "Virus index"
}
}
},
"options": {
"step": {
"init": {
"data": {
"clip_negatives": "Clip negative values",
"return_average": "Show values averaged by the device"
},
"data_description": {
"clip_negatives": "For baseline calibration purposes, certain sensor values may briefly become negative. The default behavior is to clip such values to 0",
"return_average": "air-Q allows to poll both the noisy sensor readings as well as the values averaged on the device (default)"
},
"title": "Configure air-Q integration"
}
}
}
}

View File

@@ -1,13 +1,5 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"step": {
"user": {
"data": {
@@ -16,21 +8,29 @@
},
"description": "Log in at {url} to find your credentials"
}
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]"
}
},
"entity": {
"sensor": {
"light": {
"name": "Light"
},
"mold": {
"name": "Mold"
},
"radon": {
"name": "Radon"
},
"light": {
"name": "Light"
},
"virus_risk": {
"name": "Virus Risk"
},
"mold": {
"name": "Mold"
}
}
}

View File

@@ -4,10 +4,10 @@
"radon_1day_avg": {
"default": "mdi:radioactive"
},
"radon_1day_level": {
"radon_longterm_avg": {
"default": "mdi:radioactive"
},
"radon_longterm_avg": {
"radon_1day_level": {
"default": "mdi:radioactive"
},
"radon_longterm_level": {

View File

@@ -1,49 +1,49 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"firmware_upgrade_required": "Your device requires a firmware upgrade. Please use the Airthings app (Android/iOS) to upgrade it.",
"no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]",
"unknown": "[%key:common::config_flow::error::unknown%]",
"unsupported_device": "Unsupported device"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]"
},
"user": {
"description": "[%key:component::bluetooth::config::step::user::description%]",
"data": {
"address": "[%key:common::config_flow::data::device%]"
},
"data_description": {
"address": "The Airthings devices discovered via Bluetooth."
},
"description": "[%key:component::bluetooth::config::step::user::description%]"
}
},
"bluetooth_confirm": {
"description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]"
}
},
"abort": {
"no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]",
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"firmware_upgrade_required": "Your device requires a firmware upgrade. Please use the Airthings app (Android/iOS) to upgrade it.",
"unsupported_device": "Unsupported device",
"unknown": "[%key:common::config_flow::error::unknown%]"
}
},
"entity": {
"sensor": {
"ambient_noise": {
"name": "Ambient noise"
},
"illuminance": {
"name": "[%key:component::sensor::entity_component::illuminance::name%]"
},
"radon_1day_avg": {
"name": "Radon 1-day average"
},
"radon_1day_level": {
"name": "Radon 1-day level"
},
"radon_longterm_avg": {
"name": "Radon longterm average"
},
"radon_1day_level": {
"name": "Radon 1-day level"
},
"radon_longterm_level": {
"name": "Radon longterm level"
},
"illuminance": {
"name": "[%key:component::sensor::entity_component::illuminance::name%]"
},
"ambient_noise": {
"name": "Ambient noise"
}
}
}

View File

@@ -9,13 +9,13 @@
},
"step": {
"user": {
"title": "Set up your AirTouch 4 connection details.",
"data": {
"host": "[%key:common::config_flow::data::host%]"
},
"data_description": {
"host": "The hostname or IP address of your AirTouch controller."
},
"title": "Set up your AirTouch 4 connection details."
}
}
}
}

View File

@@ -1,18 +1,18 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"step": {
"user": {
"data": {
"host": "[%key:common::config_flow::data::host%]"
}
}
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
}
},
"entity": {
@@ -21,8 +21,8 @@
"state_attributes": {
"fan_mode": {
"state": {
"intelligent_auto": "Intelligent Auto",
"turbo": "Turbo"
"turbo": "Turbo",
"intelligent_auto": "Intelligent Auto"
}
}
}

View File

@@ -1,11 +1,11 @@
{
"entity": {
"sensor": {
"pollutant_label": {
"default": "mdi:chemical-weapon"
},
"pollutant_level": {
"default": "mdi:gauge"
},
"pollutant_label": {
"default": "mdi:chemical-weapon"
}
}
}

View File

@@ -1,44 +1,54 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_location%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]",
"location_not_found": "Location not found",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"step": {
"geography_by_coords": {
"title": "Configure a geography",
"description": "Use the AirVisual cloud API to monitor a latitude/longitude.",
"data": {
"api_key": "[%key:common::config_flow::data::api_key%]",
"latitude": "[%key:common::config_flow::data::latitude%]",
"longitude": "[%key:common::config_flow::data::longitude%]"
},
"description": "Use the AirVisual cloud API to monitor a latitude/longitude.",
"title": "Configure a geography"
}
},
"geography_by_name": {
"title": "[%key:component::airvisual::config::step::geography_by_coords::title%]",
"description": "Use the AirVisual cloud API to monitor a city/state/country.",
"data": {
"api_key": "[%key:common::config_flow::data::api_key%]",
"city": "City",
"country": "[%key:common::config_flow::data::country%]",
"state": "State"
},
"description": "Use the AirVisual cloud API to monitor a city/state/country.",
"title": "[%key:component::airvisual::config::step::geography_by_coords::title%]"
"state": "State",
"country": "[%key:common::config_flow::data::country%]"
}
},
"reauth_confirm": {
"title": "Re-authenticate AirVisual",
"data": {
"api_key": "[%key:common::config_flow::data::api_key%]"
},
"title": "Re-authenticate AirVisual"
}
},
"user": {
"description": "Pick what type of AirVisual data you want to monitor.",
"title": "Configure AirVisual"
"title": "Configure AirVisual",
"description": "Pick what type of AirVisual data you want to monitor."
}
},
"error": {
"unknown": "[%key:common::config_flow::error::unknown%]",
"invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]",
"location_not_found": "Location not found",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_location%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
}
},
"options": {
"step": {
"init": {
"title": "[%key:component::airvisual::config::step::user::title%]",
"data": {
"show_on_map": "Show monitored geography on the map"
}
}
}
},
@@ -57,29 +67,19 @@
"pollutant_level": {
"state": {
"good": "Good",
"hazardous": "Hazardous",
"moderate": "Moderate",
"unhealthy": "Unhealthy",
"unhealthy_sensitive": "Unhealthy for sensitive groups",
"very_unhealthy": "Very unhealthy"
"very_unhealthy": "Very unhealthy",
"hazardous": "Hazardous"
}
}
}
},
"issues": {
"airvisual_pro_migration": {
"description": "AirVisual Pro units are now their own Home Assistant integration (as opposed to be included with the original AirVisual integration that uses the AirVisual cloud API). The Pro device located at `{ip_address}` has automatically been migrated.\n\nAs part of that migration, the Pro's device ID has changed from `{old_device_id}` to `{new_device_id}`. Please update these automations to use the new device ID: {device_automations_string}.",
"title": "{ip_address} is now part of the AirVisual Pro integration"
}
},
"options": {
"step": {
"init": {
"data": {
"show_on_map": "Show monitored geography on the map"
},
"title": "[%key:component::airvisual::config::step::user::title%]"
}
"title": "{ip_address} is now part of the AirVisual Pro integration",
"description": "AirVisual Pro units are now their own Home Assistant integration (as opposed to be included with the original AirVisual integration that uses the AirVisual cloud API). The Pro device located at `{ip_address}` has automatically been migrated.\n\nAs part of that migration, the Pro's device ID has changed from `{old_device_id}` to `{new_device_id}`. Please update these automations to use the new device ID: {device_automations_string}."
}
}
}

View File

@@ -1,40 +1,40 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"step": {
"reauth_confirm": {
"description": "[%key:component::airvisual_pro::config::step::user::description%]",
"data": {
"password": "[%key:common::config_flow::data::password%]"
},
"description": "[%key:component::airvisual_pro::config::step::user::description%]"
}
},
"user": {
"description": "The password can be retrieved from the AirVisual Pro's UI.",
"data": {
"ip_address": "[%key:common::config_flow::data::host%]",
"password": "[%key:common::config_flow::data::password%]"
},
"data_description": {
"ip_address": "The hostname or IP address of your AirVisual Pro device."
},
"description": "The password can be retrieved from the AirVisual Pro's UI."
}
}
},
"error": {
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
}
},
"entity": {
"sensor": {
"outdoor_air_quality_index": {
"name": "Outdoor air quality index"
},
"pm01": {
"name": "PM0.1"
},
"outdoor_air_quality_index": {
"name": "Outdoor air quality index"
}
}
}

View File

@@ -10,15 +10,15 @@
"step": {
"discovered_connection": {
"data": {
"host": "[%key:common::config_flow::data::host%]",
"id": "[%key:component::airzone::config::step::user::data::id%]",
"host": "[%key:common::config_flow::data::host%]",
"port": "[%key:common::config_flow::data::port%]"
}
},
"user": {
"data": {
"host": "[%key:common::config_flow::data::host%]",
"id": "System ID",
"host": "[%key:common::config_flow::data::host%]",
"port": "[%key:common::config_flow::data::port%]"
}
}
@@ -37,19 +37,19 @@
"grille_angles": {
"name": "Cold angle",
"state": {
"40deg": "40°",
"45deg": "45°",
"90deg": "90°",
"50deg": "50°",
"90deg": "90°"
"45deg": "45°",
"40deg": "40°"
}
},
"heat_angles": {
"name": "Heat angle",
"state": {
"40deg": "[%key:component::airzone::entity::select::grille_angles::state::40deg%]",
"45deg": "[%key:component::airzone::entity::select::grille_angles::state::45deg%]",
"90deg": "[%key:component::airzone::entity::select::grille_angles::state::90deg%]",
"50deg": "[%key:component::airzone::entity::select::grille_angles::state::50deg%]",
"90deg": "[%key:component::airzone::entity::select::grille_angles::state::90deg%]"
"45deg": "[%key:component::airzone::entity::select::grille_angles::state::45deg%]",
"40deg": "[%key:component::airzone::entity::select::grille_angles::state::40deg%]"
}
},
"modes": {
@@ -66,20 +66,20 @@
"q_adapt": {
"name": "Q-Adapt",
"state": {
"maximum": "Maximum",
"minimum": "Minimum",
"standard": "Standard",
"power": "Power",
"silence": "Silence",
"standard": "Standard"
"minimum": "Minimum",
"maximum": "Maximum"
}
},
"sleep_times": {
"name": "Sleep",
"state": {
"off": "[%key:common::state::off%]",
"30m": "30 minutes",
"60m": "60 minutes",
"90m": "90 minutes",
"off": "[%key:common::state::off%]"
"90m": "90 minutes"
}
}
},

View File

@@ -10,8 +10,8 @@
"user": {
"data": {
"id": "Installation",
"password": "[%key:common::config_flow::data::password%]",
"username": "[%key:common::config_flow::data::username%]"
"username": "[%key:common::config_flow::data::username%]",
"password": "[%key:common::config_flow::data::password%]"
}
}
}
@@ -32,9 +32,9 @@
"air_quality": {
"name": "Air Quality mode",
"state": {
"auto": "[%key:common::state::auto%]",
"off": "[%key:common::state::off%]",
"on": "[%key:common::state::on%]"
"on": "[%key:common::state::on%]",
"auto": "[%key:common::state::auto%]"
}
},
"modes": {

View File

@@ -1,34 +1,34 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
"authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]",
"cloud_not_enabled": "Please make sure you run Home Assistant with `{default_config}` enabled in your configuration.yaml.",
"missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]",
"no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]",
"oauth_error": "[%key:common::config_flow::abort::oauth2_error%]",
"oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]",
"oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]",
"oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]",
"user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]",
"wrong_account": "You are authenticated with a different account than the one set up. Please authenticate with the configured account."
},
"create_entry": {
"default": "[%key:common::config_flow::create_entry::authenticated%]"
},
"step": {
"oauth_discovery": {
"description": "Home Assistant has found an Aladdin Connect device on your network. Press **Submit** to continue setting up Aladdin Connect."
},
"pick_implementation": {
"title": "[%key:common::config_flow::title::oauth2_pick_implementation%]"
},
"reauth_confirm": {
"description": "Aladdin Connect needs to re-authenticate your account",
"title": "[%key:common::config_flow::title::reauth%]"
"title": "[%key:common::config_flow::title::reauth%]",
"description": "Aladdin Connect needs to re-authenticate your account"
},
"oauth_discovery": {
"description": "Home Assistant has found an Aladdin Connect device on your network. Press **Submit** to continue setting up Aladdin Connect."
}
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
"oauth_error": "[%key:common::config_flow::abort::oauth2_error%]",
"oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]",
"oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]",
"oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]",
"missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]",
"authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]",
"no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]",
"user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]",
"wrong_account": "You are authenticated with a different account than the one set up. Please authenticate with the configured account.",
"cloud_not_enabled": "Please make sure you run Home Assistant with `{default_config}` enabled in your configuration.yaml."
},
"create_entry": {
"default": "[%key:common::config_flow::create_entry::authenticated%]"
}
}
}

View File

@@ -18,23 +18,23 @@
"alarm_arm_away": {
"service": "mdi:shield-lock"
},
"alarm_arm_custom_bypass": {
"service": "mdi:security"
},
"alarm_arm_home": {
"service": "mdi:shield-home"
},
"alarm_arm_night": {
"service": "mdi:shield-moon"
},
"alarm_arm_vacation": {
"service": "mdi:shield-airplane"
"alarm_arm_custom_bypass": {
"service": "mdi:security"
},
"alarm_disarm": {
"service": "mdi:shield-off"
},
"alarm_trigger": {
"service": "mdi:bell-ring"
},
"alarm_arm_vacation": {
"service": "mdi:shield-airplane"
}
}
}

View File

@@ -1,4 +1,5 @@
{
"title": "Alarm control panel",
"device_automation": {
"action_type": {
"arm_away": "Arm {entity_name} away",
@@ -9,24 +10,24 @@
"trigger": "Trigger {entity_name}"
},
"condition_type": {
"is_armed_away": "{entity_name} is armed away",
"is_armed_home": "{entity_name} is armed home",
"is_armed_night": "{entity_name} is armed night",
"is_armed_vacation": "{entity_name} is armed vacation",
"is_triggered": "{entity_name} is triggered",
"is_disarmed": "{entity_name} is disarmed",
"is_triggered": "{entity_name} is triggered"
"is_armed_home": "{entity_name} is armed home",
"is_armed_away": "{entity_name} is armed away",
"is_armed_night": "{entity_name} is armed night",
"is_armed_vacation": "{entity_name} is armed vacation"
},
"extra_fields": {
"code": "Code",
"for": "[%key:common::device_automation::extra_fields::for%]"
},
"trigger_type": {
"armed_away": "{entity_name} armed away",
"armed_home": "{entity_name} armed home",
"armed_night": "{entity_name} armed night",
"armed_vacation": "{entity_name} armed vacation",
"triggered": "{entity_name} triggered",
"disarmed": "{entity_name} disarmed",
"triggered": "{entity_name} triggered"
"armed_home": "{entity_name} armed home",
"armed_away": "{entity_name} armed away",
"armed_night": "{entity_name} armed night",
"armed_vacation": "{entity_name} armed vacation"
}
},
"entity_component": {
@@ -34,114 +35,113 @@
"name": "[%key:component::alarm_control_panel::title%]",
"state": {
"armed": "Armed",
"armed_away": "Armed away",
"armed_custom_bypass": "Armed custom bypass",
"disarmed": "Disarmed",
"armed_home": "Armed home",
"armed_away": "Armed away",
"armed_night": "Armed night",
"armed_vacation": "Armed vacation",
"arming": "Arming",
"disarmed": "Disarmed",
"disarming": "Disarming",
"armed_custom_bypass": "Armed custom bypass",
"pending": "Pending",
"arming": "Arming",
"disarming": "Disarming",
"triggered": "Triggered"
},
"state_attributes": {
"code_format": {
"name": "Code format",
"state": {
"text": "Text",
"number": "Number"
}
},
"changed_by": {
"name": "Changed by"
},
"code_arm_required": {
"name": "Code for arming",
"state": {
"false": "Not required",
"true": "Required"
}
},
"code_format": {
"name": "Code format",
"state": {
"number": "Number",
"text": "Text"
"true": "Required",
"false": "Not required"
}
}
}
}
},
"services": {
"alarm_disarm": {
"name": "Disarm",
"description": "Disarms the alarm.",
"fields": {
"code": {
"name": "Code",
"description": "Code to disarm the alarm."
}
}
},
"alarm_arm_custom_bypass": {
"name": "Arm with custom bypass",
"description": "Arms the alarm while allowing to bypass a custom area.",
"fields": {
"code": {
"name": "[%key:component::alarm_control_panel::services::alarm_disarm::fields::code::name%]",
"description": "Code to arm the alarm."
}
}
},
"alarm_arm_home": {
"name": "Arm home",
"description": "Arms the alarm in the home mode.",
"fields": {
"code": {
"name": "[%key:component::alarm_control_panel::services::alarm_disarm::fields::code::name%]",
"description": "[%key:component::alarm_control_panel::services::alarm_arm_custom_bypass::fields::code::description%]"
}
}
},
"alarm_arm_away": {
"name": "Arm away",
"description": "Arms the alarm in the away mode.",
"fields": {
"code": {
"name": "[%key:component::alarm_control_panel::services::alarm_disarm::fields::code::name%]",
"description": "[%key:component::alarm_control_panel::services::alarm_arm_custom_bypass::fields::code::description%]"
}
}
},
"alarm_arm_night": {
"name": "Arm night",
"description": "Arms the alarm in the night mode.",
"fields": {
"code": {
"name": "[%key:component::alarm_control_panel::services::alarm_disarm::fields::code::name%]",
"description": "[%key:component::alarm_control_panel::services::alarm_arm_custom_bypass::fields::code::description%]"
}
}
},
"alarm_arm_vacation": {
"name": "Arm vacation",
"description": "Arms the alarm in the vacation mode.",
"fields": {
"code": {
"name": "[%key:component::alarm_control_panel::services::alarm_disarm::fields::code::name%]",
"description": "[%key:component::alarm_control_panel::services::alarm_arm_custom_bypass::fields::code::description%]"
}
}
},
"alarm_trigger": {
"name": "Trigger",
"description": "Triggers the alarm manually.",
"fields": {
"code": {
"name": "[%key:component::alarm_control_panel::services::alarm_disarm::fields::code::name%]",
"description": "[%key:component::alarm_control_panel::services::alarm_arm_custom_bypass::fields::code::description%]"
}
}
}
},
"exceptions": {
"code_arm_required": {
"message": "Arming requires a code but none was given for {entity_id}."
}
},
"services": {
"alarm_arm_away": {
"description": "Arms the alarm in the away mode.",
"fields": {
"code": {
"description": "[%key:component::alarm_control_panel::services::alarm_arm_custom_bypass::fields::code::description%]",
"name": "[%key:component::alarm_control_panel::services::alarm_disarm::fields::code::name%]"
}
},
"name": "Arm away"
},
"alarm_arm_custom_bypass": {
"description": "Arms the alarm while allowing to bypass a custom area.",
"fields": {
"code": {
"description": "Code to arm the alarm.",
"name": "[%key:component::alarm_control_panel::services::alarm_disarm::fields::code::name%]"
}
},
"name": "Arm with custom bypass"
},
"alarm_arm_home": {
"description": "Arms the alarm in the home mode.",
"fields": {
"code": {
"description": "[%key:component::alarm_control_panel::services::alarm_arm_custom_bypass::fields::code::description%]",
"name": "[%key:component::alarm_control_panel::services::alarm_disarm::fields::code::name%]"
}
},
"name": "Arm home"
},
"alarm_arm_night": {
"description": "Arms the alarm in the night mode.",
"fields": {
"code": {
"description": "[%key:component::alarm_control_panel::services::alarm_arm_custom_bypass::fields::code::description%]",
"name": "[%key:component::alarm_control_panel::services::alarm_disarm::fields::code::name%]"
}
},
"name": "Arm night"
},
"alarm_arm_vacation": {
"description": "Arms the alarm in the vacation mode.",
"fields": {
"code": {
"description": "[%key:component::alarm_control_panel::services::alarm_arm_custom_bypass::fields::code::description%]",
"name": "[%key:component::alarm_control_panel::services::alarm_disarm::fields::code::name%]"
}
},
"name": "Arm vacation"
},
"alarm_disarm": {
"description": "Disarms the alarm.",
"fields": {
"code": {
"description": "Code to disarm the alarm.",
"name": "Code"
}
},
"name": "Disarm"
},
"alarm_trigger": {
"description": "Triggers the alarm manually.",
"fields": {
"code": {
"description": "[%key:component::alarm_control_panel::services::alarm_arm_custom_bypass::fields::code::description%]",
"name": "[%key:component::alarm_control_panel::services::alarm_disarm::fields::code::name%]"
}
},
"name": "Trigger"
}
},
"title": "Alarm control panel"
}
}

View File

@@ -1,101 +1,101 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
},
"create_entry": {
"default": "Successfully connected to AlarmDecoder."
"step": {
"user": {
"title": "Choose AlarmDecoder protocol",
"data": {
"protocol": "Protocol"
}
},
"protocol": {
"title": "Configure connection settings",
"data": {
"host": "[%key:common::config_flow::data::host%]",
"port": "[%key:common::config_flow::data::port%]",
"device_baudrate": "Device baud rate",
"device_path": "Device path"
},
"data_description": {
"host": "The hostname or IP address of the AlarmDecoder device that is connected to your alarm panel.",
"port": "The port on which AlarmDecoder is accessible (for example, 10000)"
}
}
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"step": {
"protocol": {
"data": {
"device_baudrate": "Device baud rate",
"device_path": "Device path",
"host": "[%key:common::config_flow::data::host%]",
"port": "[%key:common::config_flow::data::port%]"
},
"data_description": {
"host": "The hostname or IP address of the AlarmDecoder device that is connected to your alarm panel.",
"port": "The port on which AlarmDecoder is accessible (for example, 10000)"
},
"title": "Configure connection settings"
},
"user": {
"data": {
"protocol": "Protocol"
},
"title": "Choose AlarmDecoder protocol"
}
"create_entry": {
"default": "Successfully connected to AlarmDecoder."
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
}
},
"options": {
"error": {
"int": "The field below must be an integer.",
"loop_range": "'RF loop' must be an integer between 1 and 4.",
"loop_rfid": "'RF loop' cannot be used without 'RF serial'.",
"relay_inclusive": "'Relay address' and 'Relay channel' are codependent and must be included together."
},
"step": {
"arm_settings": {
"data": {
"alt_night_mode": "Alternative night mode",
"auto_bypass": "Auto-bypass on arm",
"code_arm_required": "Code required for arming"
},
"title": "[%key:component::alarmdecoder::options::step::init::title%]"
},
"init": {
"title": "Configure AlarmDecoder",
"description": "What would you like to edit?",
"data": {
"edit_selection": "Edit"
},
"description": "What would you like to edit?",
"title": "Configure AlarmDecoder"
}
},
"zone_details": {
"arm_settings": {
"title": "[%key:component::alarmdecoder::options::step::init::title%]",
"data": {
"zone_loop": "RF loop",
"zone_name": "Zone name",
"zone_relayaddr": "Relay address",
"zone_relaychan": "Relay channel",
"zone_rfid": "RF serial",
"zone_type": "Zone type"
},
"description": "Enter details for zone {zone_number}. To delete zone {zone_number}, leave 'Zone name' blank.",
"title": "[%key:component::alarmdecoder::options::step::init::title%]"
"auto_bypass": "Auto-bypass on arm",
"code_arm_required": "Code required for arming",
"alt_night_mode": "Alternative night mode"
}
},
"zone_select": {
"title": "[%key:component::alarmdecoder::options::step::init::title%]",
"description": "Enter the zone number you'd like to to add, edit, or remove.",
"data": {
"zone_number": "Zone number"
},
"description": "Enter the zone number you'd like to to add, edit, or remove.",
"title": "[%key:component::alarmdecoder::options::step::init::title%]"
}
},
"zone_details": {
"title": "[%key:component::alarmdecoder::options::step::init::title%]",
"description": "Enter details for zone {zone_number}. To delete zone {zone_number}, leave 'Zone name' blank.",
"data": {
"zone_name": "Zone name",
"zone_type": "Zone type",
"zone_rfid": "RF serial",
"zone_loop": "RF loop",
"zone_relayaddr": "Relay address",
"zone_relaychan": "Relay channel"
}
}
},
"error": {
"relay_inclusive": "'Relay address' and 'Relay channel' are codependent and must be included together.",
"int": "The field below must be an integer.",
"loop_rfid": "'RF loop' cannot be used without 'RF serial'.",
"loop_range": "'RF loop' must be an integer between 1 and 4."
}
},
"services": {
"alarm_keypress": {
"name": "Key press",
"description": "Sends custom keypresses to the alarm.",
"fields": {
"keypress": {
"description": "String to send to the alarm panel.",
"name": "[%key:component::alarmdecoder::services::alarm_keypress::name%]"
"name": "[%key:component::alarmdecoder::services::alarm_keypress::name%]",
"description": "String to send to the alarm panel."
}
},
"name": "Key press"
}
},
"alarm_toggle_chime": {
"name": "Toggle chime",
"description": "Sends the alarm the toggle chime command.",
"fields": {
"code": {
"description": "Code to toggle the alarm control panel chime with.",
"name": "Code"
"name": "Code",
"description": "Code to toggle the alarm control panel chime with."
}
},
"name": "Toggle chime"
}
}
}
}

View File

@@ -1,4 +1,5 @@
{
"title": "Alert",
"entity_component": {
"_": {
"name": "[%key:component::alert::title%]",
@@ -11,17 +12,16 @@
},
"services": {
"toggle": {
"description": "Toggles alert's notifications.",
"name": "[%key:common::action::toggle%]"
"name": "[%key:common::action::toggle%]",
"description": "Toggles alert's notifications."
},
"turn_off": {
"description": "Silences alert's notifications.",
"name": "[%key:common::action::turn_off%]"
"name": "[%key:common::action::turn_off%]",
"description": "Silences alert's notifications."
},
"turn_on": {
"description": "Resets alert's notifications.",
"name": "[%key:common::action::turn_on%]"
"name": "[%key:common::action::turn_on%]",
"description": "Resets alert's notifications."
}
},
"title": "Alert"
}
}

View File

@@ -1,12 +1,47 @@
{
"common": {
"data_code": "One-time password (OTP code)",
"data_description_code": "The one-time password to log in to your account. Currently, only tokens from OTP applications are supported.",
"data_description_password": "The password of your Amazon account.",
"data_description_username": "The email address of your Amazon account.",
"data_description_password": "The password of your Amazon account.",
"data_description_code": "The one-time password to log in to your account. Currently, only tokens from OTP applications are supported.",
"device_id_description": "The ID of the device to send the command to."
},
"config": {
"flow_title": "{username}",
"step": {
"user": {
"data": {
"username": "[%key:common::config_flow::data::username%]",
"password": "[%key:common::config_flow::data::password%]",
"code": "[%key:component::alexa_devices::common::data_code%]"
},
"data_description": {
"username": "[%key:component::alexa_devices::common::data_description_username%]",
"password": "[%key:component::alexa_devices::common::data_description_password%]",
"code": "[%key:component::alexa_devices::common::data_description_code%]"
}
},
"reauth_confirm": {
"data": {
"password": "[%key:common::config_flow::data::password%]",
"code": "[%key:component::alexa_devices::common::data_code%]"
},
"data_description": {
"password": "[%key:component::alexa_devices::common::data_description_password%]",
"code": "[%key:component::alexa_devices::common::data_description_code%]"
}
},
"reconfigure": {
"data": {
"password": "[%key:common::config_flow::data::password%]",
"code": "[%key:component::alexa_devices::common::data_code%]"
},
"data_description": {
"password": "[%key:component::alexa_devices::common::data_description_password%]",
"code": "[%key:component::alexa_devices::common::data_description_code%]"
}
}
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_service%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
@@ -20,50 +55,15 @@
"cannot_retrieve_data": "Unable to retrieve data from Amazon. Please try again later.",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"flow_title": "{username}",
"step": {
"reauth_confirm": {
"data": {
"code": "[%key:component::alexa_devices::common::data_code%]",
"password": "[%key:common::config_flow::data::password%]"
},
"data_description": {
"code": "[%key:component::alexa_devices::common::data_description_code%]",
"password": "[%key:component::alexa_devices::common::data_description_password%]"
}
},
"reconfigure": {
"data": {
"code": "[%key:component::alexa_devices::common::data_code%]",
"password": "[%key:common::config_flow::data::password%]"
},
"data_description": {
"code": "[%key:component::alexa_devices::common::data_description_code%]",
"password": "[%key:component::alexa_devices::common::data_description_password%]"
}
},
"user": {
"data": {
"code": "[%key:component::alexa_devices::common::data_code%]",
"password": "[%key:common::config_flow::data::password%]",
"username": "[%key:common::config_flow::data::username%]"
},
"data_description": {
"code": "[%key:component::alexa_devices::common::data_description_code%]",
"password": "[%key:component::alexa_devices::common::data_description_password%]",
"username": "[%key:component::alexa_devices::common::data_description_username%]"
}
}
}
},
"entity": {
"notify": {
"announce": {
"name": "Announce"
},
"speak": {
"name": "Speak"
},
"announce": {
"name": "Announce"
}
},
"switch": {
@@ -72,24 +72,34 @@
}
}
},
"exceptions": {
"cannot_connect_with_error": {
"message": "Error connecting: {error}"
"services": {
"send_sound": {
"name": "Send sound",
"description": "Sends a sound to a device",
"fields": {
"device_id": {
"name": "Device",
"description": "[%key:component::alexa_devices::common::device_id_description%]"
},
"sound": {
"name": "Alexa Skill sound file",
"description": "The sound file to play."
}
}
},
"cannot_retrieve_data_with_error": {
"message": "Error retrieving data: {error}"
},
"device_serial_number_missing": {
"message": "Device serial number missing: {device_id}"
},
"entry_not_loaded": {
"message": "Entry not loaded: {entry}"
},
"invalid_device_id": {
"message": "Invalid device ID specified: {device_id}"
},
"invalid_sound_value": {
"message": "Invalid sound {sound} specified"
"send_text_command": {
"name": "Send text command",
"description": "Sends a text command to a device",
"fields": {
"text_command": {
"name": "Alexa text command",
"description": "The text command to send."
},
"device_id": {
"name": "Device",
"description": "[%key:component::alexa_devices::common::device_id_description%]"
}
}
}
},
"selector": {
@@ -139,34 +149,24 @@
}
}
},
"services": {
"send_sound": {
"description": "Sends a sound to a device",
"fields": {
"device_id": {
"description": "[%key:component::alexa_devices::common::device_id_description%]",
"name": "Device"
},
"sound": {
"description": "The sound file to play.",
"name": "Alexa Skill sound file"
}
},
"name": "Send sound"
"exceptions": {
"cannot_connect_with_error": {
"message": "Error connecting: {error}"
},
"send_text_command": {
"description": "Sends a text command to a device",
"fields": {
"device_id": {
"description": "[%key:component::alexa_devices::common::device_id_description%]",
"name": "Device"
},
"text_command": {
"description": "The text command to send.",
"name": "Alexa text command"
}
},
"name": "Send text command"
"cannot_retrieve_data_with_error": {
"message": "Error retrieving data: {error}"
},
"device_serial_number_missing": {
"message": "Device serial number missing: {device_id}"
},
"invalid_device_id": {
"message": "Invalid device ID specified: {device_id}"
},
"invalid_sound_value": {
"message": "Invalid sound {sound} specified"
},
"entry_not_loaded": {
"message": "Entry not loaded: {entry}"
}
}
}

View File

@@ -1,12 +1,5 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]"
},
"error": {
"no_device_found": "[%key:common::config_flow::error::cannot_connect%]"
},
"flow_title": "{name}",
"step": {
"discovery_confirm": {
@@ -21,30 +14,37 @@
},
"description": "Fill in Altruist IP address or hostname in your local network"
}
},
"abort": {
"no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]",
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
},
"error": {
"no_device_found": "[%key:common::config_flow::error::cannot_connect%]"
}
},
"entity": {
"sensor": {
"co2": {
"name": "{sensor_name} CO2"
},
"humidity": {
"name": "{sensor_name} humidity"
},
"noise_avg": {
"name": "Average noise"
},
"noise_max": {
"name": "Maximum noise"
},
"pressure": {
"name": "{sensor_name} pressure"
},
"radiation": {
"name": "Radiation level"
},
"temperature": {
"name": "{sensor_name} temperature"
},
"noise_max": {
"name": "Maximum noise"
},
"noise_avg": {
"name": "Average noise"
},
"co2": {
"name": "{sensor_name} CO2"
},
"radiation": {
"name": "Radiation level"
}
}
}

View File

@@ -1,26 +1,26 @@
{
"entity": {
"binary_sensor": {
"demand_window": {
"default": "mdi:meter-electric",
"state": {
"off": "mdi:meter-electric-outline"
}
}
},
"sensor": {
"general": {
"default": "mdi:transmission-tower"
},
"controlled_load": {
"default": "mdi:clock-outline"
},
"feed_in": {
"default": "mdi:solar-power"
},
"general": {
"default": "mdi:transmission-tower"
},
"renewables": {
"default": "mdi:solar-power"
}
},
"binary_sensor": {
"demand_window": {
"default": "mdi:meter-electric",
"state": {
"off": "mdi:meter-electric-outline"
}
}
}
},
"services": {

View File

@@ -22,40 +22,40 @@
}
}
},
"services": {
"get_forecasts": {
"name": "Get price forecasts",
"description": "Retrieves price forecasts from Amber Electric for a site.",
"fields": {
"config_entry_id": {
"description": "The config entry of the site to get forecasts for.",
"name": "Config entry"
},
"channel_type": {
"name": "Channel type",
"description": "The channel to get forecasts for."
}
}
}
},
"exceptions": {
"channel_not_found": {
"message": "There is no {channel_type} channel at this site."
},
"integration_not_found": {
"message": "Config entry \"{target}\" not found in registry."
},
"not_loaded": {
"message": "{target} is not loaded."
},
"channel_not_found": {
"message": "There is no {channel_type} channel at this site."
}
},
"selector": {
"channel_type": {
"options": {
"general": "General",
"controlled_load": "Controlled load",
"feed_in": "Feed-in",
"general": "General"
"feed_in": "Feed-in"
}
}
},
"services": {
"get_forecasts": {
"description": "Retrieves price forecasts from Amber Electric for a site.",
"fields": {
"channel_type": {
"description": "The channel to get forecasts for.",
"name": "Channel type"
},
"config_entry_id": {
"description": "The config entry of the site to get forecasts for.",
"name": "Config entry"
}
},
"name": "Get price forecasts"
}
}
}

View File

@@ -4,15 +4,15 @@
"last_rain": {
"default": "mdi:water"
},
"lightning_distance": {
"default": "mdi:lightning-bolt"
},
"lightning_strikes_per_day": {
"default": "mdi:lightning-bolt"
},
"lightning_strikes_per_hour": {
"default": "mdi:lightning-bolt"
},
"lightning_distance": {
"default": "mdi:lightning-bolt"
},
"wind_direction": {
"default": "mdi:compass-outline"
}

View File

@@ -1,30 +1,42 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
"step": {
"user": {
"title": "Select region",
"description": "Choose the region you want to survey in order to locate Ambient personal weather stations."
},
"station": {
"title": "Select station",
"description": "Select the weather station you want to add to Home Assistant.",
"data": {
"station": "Station"
}
}
},
"error": {
"no_stations_found": "Did not find any stations in the selected region."
},
"step": {
"station": {
"data": {
"station": "Station"
},
"description": "Select the weather station you want to add to Home Assistant.",
"title": "Select station"
},
"user": {
"description": "Choose the region you want to survey in order to locate Ambient personal weather stations.",
"title": "Select region"
}
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
}
},
"entity": {
"sensor": {
"pm25_24h_average": {
"name": "PM2.5 (24 hour average)"
},
"pm25_aqi": {
"name": "PM2.5 AQI"
},
"pm25_aqi_24h_average": {
"name": "PM2.5 AQI (24 hour average)"
},
"absolute_pressure": {
"name": "Absolute pressure"
},
"relative_pressure": {
"name": "Relative pressure"
},
"daily_rain": {
"name": "Daily rain"
},
@@ -40,33 +52,21 @@
"last_rain": {
"name": "Last rain"
},
"lightning_distance": {
"name": "Lightning distance"
},
"lightning_strikes_per_day": {
"name": "Lightning strikes per day"
},
"lightning_strikes_per_hour": {
"name": "Lightning strikes per hour"
},
"lightning_distance": {
"name": "Lightning distance"
},
"max_daily_gust": {
"name": "Max daily gust"
},
"monthly_rain": {
"name": "Monthly rain"
},
"pm25_24h_average": {
"name": "PM2.5 (24 hour average)"
},
"pm25_aqi": {
"name": "PM2.5 AQI"
},
"pm25_aqi_24h_average": {
"name": "PM2.5 AQI (24 hour average)"
},
"relative_pressure": {
"name": "Relative pressure"
},
"uv_index": {
"name": "UV index"
},

View File

@@ -1,20 +1,20 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_service%]"
"step": {
"user": {
"title": "Fill in your information",
"data": {
"api_key": "[%key:common::config_flow::data::api_key%]",
"app_key": "Application Key"
}
}
},
"error": {
"invalid_key": "[%key:common::config_flow::error::invalid_api_key%]",
"no_devices": "No devices found in account"
},
"step": {
"user": {
"data": {
"api_key": "[%key:common::config_flow::data::api_key%]",
"app_key": "Application Key"
},
"title": "Fill in your information"
}
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_service%]"
}
},
"entity": {
@@ -22,9 +22,6 @@
"battery_1": {
"name": "Battery 1"
},
"battery_10": {
"name": "Battery 10"
},
"battery_2": {
"name": "Battery 2"
},
@@ -49,24 +46,12 @@
"battery_9": {
"name": "Battery 9"
},
"co2_battery": {
"name": "Carbon dioxide battery"
"battery_10": {
"name": "Battery 10"
},
"interior_battery": {
"name": "Interior battery"
},
"leak_detector_1": {
"name": "Leak detector 1"
},
"leak_detector_2": {
"name": "Leak detector 2"
},
"leak_detector_3": {
"name": "Leak detector 3"
},
"leak_detector_4": {
"name": "Leak detector 4"
},
"leak_detector_battery_1": {
"name": "Leak detector battery 1"
},
@@ -79,21 +64,63 @@
"leak_detector_battery_4": {
"name": "Leak detector battery 4"
},
"soil_monitor_battery_1": {
"name": "Soil monitor battery 1"
},
"soil_monitor_battery_2": {
"name": "Soil monitor battery 2"
},
"soil_monitor_battery_3": {
"name": "Soil monitor battery 3"
},
"soil_monitor_battery_4": {
"name": "Soil monitor battery 4"
},
"soil_monitor_battery_5": {
"name": "Soil monitor battery 5"
},
"soil_monitor_battery_6": {
"name": "Soil monitor battery 6"
},
"soil_monitor_battery_7": {
"name": "Soil monitor battery 7"
},
"soil_monitor_battery_8": {
"name": "Soil monitor battery 8"
},
"soil_monitor_battery_9": {
"name": "Soil monitor battery 9"
},
"soil_monitor_battery_10": {
"name": "Soil monitor battery 10"
},
"co2_battery": {
"name": "Carbon dioxide battery"
},
"lightning_detector_battery": {
"name": "Lightning detector battery"
},
"pm25_battery": {
"name": "PM25 battery"
"leak_detector_1": {
"name": "Leak detector 1"
},
"leak_detector_2": {
"name": "Leak detector 2"
},
"leak_detector_3": {
"name": "Leak detector 3"
},
"leak_detector_4": {
"name": "Leak detector 4"
},
"pm25_indoor_battery": {
"name": "PM25 indoor battery"
},
"pm25_battery": {
"name": "PM25 battery"
},
"relay_1": {
"name": "Relay 1"
},
"relay_10": {
"name": "Relay 10"
},
"relay_2": {
"name": "Relay 2"
},
@@ -118,44 +145,32 @@
"relay_9": {
"name": "Relay 9"
},
"soil_monitor_battery_1": {
"name": "Soil monitor battery 1"
},
"soil_monitor_battery_10": {
"name": "Soil monitor battery 10"
},
"soil_monitor_battery_2": {
"name": "Soil monitor battery 2"
},
"soil_monitor_battery_3": {
"name": "Soil monitor battery 3"
},
"soil_monitor_battery_4": {
"name": "Soil monitor battery 4"
},
"soil_monitor_battery_5": {
"name": "Soil monitor battery 5"
},
"soil_monitor_battery_6": {
"name": "Soil monitor battery 6"
},
"soil_monitor_battery_7": {
"name": "Soil monitor battery 7"
},
"soil_monitor_battery_8": {
"name": "Soil monitor battery 8"
},
"soil_monitor_battery_9": {
"name": "Soil monitor battery 9"
"relay_10": {
"name": "Relay 10"
}
},
"sensor": {
"24_hour_rain": {
"name": "Rain 24 hours"
},
"pm25_aqi": {
"name": "PM2.5 AQI"
},
"pm25_aqi_24h_average": {
"name": "PM2.5 AQI 24 hour average"
},
"pm25_indoor_aqi": {
"name": "PM2.5 indoor AQI"
},
"pm25_indoor_aqi_24h_average": {
"name": "PM2.5 indoor AQI"
},
"absolute_pressure": {
"name": "Absolute pressure"
},
"relative_pressure": {
"name": "Relative pressure"
},
"daily_rain": {
"name": "Daily rain"
},
@@ -171,9 +186,6 @@
"humidity_1": {
"name": "Humidity 1"
},
"humidity_10": {
"name": "Humidity 10"
},
"humidity_2": {
"name": "Humidity 2"
},
@@ -198,11 +210,14 @@
"humidity_9": {
"name": "Humidity 9"
},
"humidity_10": {
"name": "Humidity 10"
},
"humidity_indoor": {
"name": "Humidity indoor"
},
"inside_temperature": {
"name": "Inside temperature"
"last_rain": {
"name": "Last rain"
},
"last_lightning_strike": {
"name": "Last Lightning strike"
@@ -210,12 +225,6 @@
"last_lightning_strike_distance": {
"name": "Last Lightning strike distance"
},
"last_rain": {
"name": "Last rain"
},
"lifetime_rain": {
"name": "Lifetime rain"
},
"lightning_strikes_per_day": {
"name": "Lightning strikes per day"
},
@@ -231,33 +240,15 @@
"pm25_24h_average": {
"name": "PM2.5 24 hour average"
},
"pm25_aqi": {
"name": "PM2.5 AQI"
},
"pm25_aqi_24h_average": {
"name": "PM2.5 AQI 24 hour average"
},
"pm25_indoor": {
"name": "PM2.5 indoor"
},
"pm25_indoor_24h_average": {
"name": "PM2.5 indoor 24 hour average"
},
"pm25_indoor_aqi": {
"name": "PM2.5 indoor AQI"
},
"pm25_indoor_aqi_24h_average": {
"name": "PM2.5 indoor AQI"
},
"relative_pressure": {
"name": "Relative pressure"
},
"soil_humidity_1": {
"name": "Soil humidity 1"
},
"soil_humidity_10": {
"name": "Soil humidity 10"
},
"soil_humidity_2": {
"name": "Soil humidity 2"
},
@@ -282,12 +273,12 @@
"soil_humidity_9": {
"name": "Soil humidity 9"
},
"soil_humidity_10": {
"name": "Soil humidity 10"
},
"soil_temperature_1": {
"name": "Soil temperature 1"
},
"soil_temperature_10": {
"name": "Soil temperature 10"
},
"soil_temperature_2": {
"name": "Soil temperature 2"
},
@@ -312,12 +303,12 @@
"soil_temperature_9": {
"name": "Soil temperature 9"
},
"soil_temperature_10": {
"name": "Soil temperature 10"
},
"temperature_1": {
"name": "Temperature 1"
},
"temperature_10": {
"name": "Temperature 10"
},
"temperature_2": {
"name": "Temperature 2"
},
@@ -342,18 +333,21 @@
"temperature_9": {
"name": "Temperature 9"
},
"temperature_10": {
"name": "Temperature 10"
},
"inside_temperature": {
"name": "Inside temperature"
},
"lifetime_rain": {
"name": "Lifetime rain"
},
"uv_index": {
"name": "UV index"
},
"weekly_rain": {
"name": "Weekly rain"
},
"wind_average_10m": {
"name": "Wind average 10 minutes"
},
"wind_average_2m": {
"name": "Wind average 2 minutes"
},
"wind_direction": {
"name": "Wind direction"
},
@@ -363,11 +357,17 @@
"wind_direction_average_2m": {
"name": "Wind direction average 2 minutes"
},
"wind_gust_direction": {
"name": "Wind gust direction"
},
"wind_gust": {
"name": "Wind gust"
},
"wind_gust_direction": {
"name": "Wind gust direction"
"wind_average_10m": {
"name": "Wind average 10 minutes"
},
"wind_average_2m": {
"name": "Wind average 2 minutes"
},
"yearly_rain": {
"name": "Yearly rain"

View File

@@ -1,10 +1,7 @@
{
"services": {
"disable_audio": {
"service": "mdi:volume-off"
},
"disable_motion_recording": {
"service": "mdi:motion-sensor-off"
"enable_recording": {
"service": "mdi:record-rec"
},
"disable_recording": {
"service": "mdi:stop"
@@ -12,18 +9,18 @@
"enable_audio": {
"service": "mdi:volume-high"
},
"disable_audio": {
"service": "mdi:volume-off"
},
"enable_motion_recording": {
"service": "mdi:motion-sensor"
},
"enable_recording": {
"service": "mdi:record-rec"
"disable_motion_recording": {
"service": "mdi:motion-sensor-off"
},
"goto_preset": {
"service": "mdi:pan"
},
"ptz_control": {
"service": "mdi:pan"
},
"set_color_bw": {
"service": "mdi:palette"
},
@@ -32,6 +29,9 @@
},
"stop_tour": {
"service": "mdi:panorama-outline"
},
"ptz_control": {
"service": "mdi:pan"
}
}
}

View File

@@ -1,130 +1,130 @@
{
"services": {
"disable_audio": {
"description": "Disables audio stream.",
"fields": {
"entity_id": {
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]",
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]"
}
},
"name": "Disable audio"
},
"disable_motion_recording": {
"description": "Disables recording a clip to camera storage when motion is detected.",
"fields": {
"entity_id": {
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]",
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]"
}
},
"name": "Disable motion recording"
},
"disable_recording": {
"description": "Disables continuous recording to camera storage.",
"fields": {
"entity_id": {
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]",
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]"
}
},
"name": "Disable recording"
},
"enable_audio": {
"description": "Enables audio stream.",
"fields": {
"entity_id": {
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]",
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]"
}
},
"name": "Enable audio"
},
"enable_motion_recording": {
"description": "Enables recording a clip to camera storage when motion is detected.",
"fields": {
"entity_id": {
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]",
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]"
}
},
"name": "Enable motion recording"
},
"enable_recording": {
"name": "Enable recording",
"description": "Enables continuous recording to camera storage.",
"fields": {
"entity_id": {
"description": "Name(s) of the cameras, or 'all' for all cameras.",
"name": "Entity"
"name": "Entity",
"description": "Name(s) of the cameras, or 'all' for all cameras."
}
},
"name": "Enable recording"
}
},
"disable_recording": {
"name": "Disable recording",
"description": "Disables continuous recording to camera storage.",
"fields": {
"entity_id": {
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]"
}
}
},
"enable_audio": {
"name": "Enable audio",
"description": "Enables audio stream.",
"fields": {
"entity_id": {
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]"
}
}
},
"disable_audio": {
"name": "Disable audio",
"description": "Disables audio stream.",
"fields": {
"entity_id": {
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]"
}
}
},
"enable_motion_recording": {
"name": "Enable motion recording",
"description": "Enables recording a clip to camera storage when motion is detected.",
"fields": {
"entity_id": {
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]"
}
}
},
"disable_motion_recording": {
"name": "Disable motion recording",
"description": "Disables recording a clip to camera storage when motion is detected.",
"fields": {
"entity_id": {
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]"
}
}
},
"goto_preset": {
"name": "Go to preset",
"description": "Moves camera to PTZ preset.",
"fields": {
"entity_id": {
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]",
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]"
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]"
},
"preset": {
"description": "Preset number.",
"name": "Preset"
"name": "Preset",
"description": "Preset number."
}
},
"name": "Go to preset"
},
"ptz_control": {
"description": "Moves (pan/tilt) and/or zoom a PTZ camera.",
"fields": {
"entity_id": {
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]",
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]"
},
"movement": {
"description": "Direction to move the camera.",
"name": "Movement"
},
"travel_time": {
"description": "Travel time in fractional seconds: from 0 to 1.",
"name": "Travel time"
}
},
"name": "PTZ control"
}
},
"set_color_bw": {
"name": "Set color",
"description": "Sets camera color mode.",
"fields": {
"color_bw": {
"description": "Color mode.",
"name": "Color"
},
"entity_id": {
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]",
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]"
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]"
},
"color_bw": {
"name": "Color",
"description": "Color mode."
}
},
"name": "Set color"
}
},
"start_tour": {
"name": "Start tour",
"description": "Starts camera's PTZ tour function.",
"fields": {
"entity_id": {
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]",
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]"
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]"
}
},
"name": "Start tour"
}
},
"stop_tour": {
"name": "Stop tour",
"description": "Stops camera's PTZ tour function.",
"fields": {
"entity_id": {
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]",
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]"
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]"
}
},
"name": "Stop tour"
}
},
"ptz_control": {
"name": "PTZ control",
"description": "Moves (pan/tilt) and/or zoom a PTZ camera.",
"fields": {
"entity_id": {
"name": "[%key:component::amcrest::services::enable_recording::fields::entity_id::name%]",
"description": "[%key:component::amcrest::services::enable_recording::fields::entity_id::description%]"
},
"movement": {
"name": "Movement",
"description": "Direction to move the camera."
},
"travel_time": {
"name": "Travel time",
"description": "Travel time in fractional seconds: from 0 to 1."
}
}
}
}
}

View File

@@ -1,25 +1,47 @@
{
"config": {
"step": {
"user": {
"data": {
"tracked_addons": "Add-ons",
"tracked_integrations": "Integrations",
"tracked_custom_integrations": "Custom integrations"
},
"data_description": {
"tracked_addons": "Select the add-ons you want to track",
"tracked_integrations": "Select the integrations you want to track",
"tracked_custom_integrations": "Select the custom integrations you want to track"
}
}
},
"abort": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"error": {
"no_integrations_selected": "You must select at least one integration to track"
},
}
},
"options": {
"step": {
"user": {
"init": {
"data": {
"tracked_addons": "Add-ons",
"tracked_custom_integrations": "Custom integrations",
"tracked_integrations": "Integrations"
"tracked_addons": "[%key:component::analytics_insights::config::step::user::data::tracked_addons%]",
"tracked_integrations": "[%key:component::analytics_insights::config::step::user::data::tracked_integrations%]",
"tracked_custom_integrations": "[%key:component::analytics_insights::config::step::user::data::tracked_custom_integrations%]"
},
"data_description": {
"tracked_addons": "Select the add-ons you want to track",
"tracked_custom_integrations": "Select the custom integrations you want to track",
"tracked_integrations": "Select the integrations you want to track"
"tracked_addons": "[%key:component::analytics_insights::config::step::user::data_description::tracked_addons%]",
"tracked_integrations": "[%key:component::analytics_insights::config::step::user::data_description::tracked_integrations%]",
"tracked_custom_integrations": "[%key:component::analytics_insights::config::step::user::data_description::tracked_custom_integrations%]"
}
}
},
"abort": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"error": {
"no_integrations_selected": "[%key:component::analytics_insights::config::error::no_integrations_selected%]"
}
},
"entity": {
@@ -34,27 +56,5 @@
"name": "Total reported integrations"
}
}
},
"options": {
"abort": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"error": {
"no_integrations_selected": "[%key:component::analytics_insights::config::error::no_integrations_selected%]"
},
"step": {
"init": {
"data": {
"tracked_addons": "[%key:component::analytics_insights::config::step::user::data::tracked_addons%]",
"tracked_custom_integrations": "[%key:component::analytics_insights::config::step::user::data::tracked_custom_integrations%]",
"tracked_integrations": "[%key:component::analytics_insights::config::step::user::data::tracked_integrations%]"
},
"data_description": {
"tracked_addons": "[%key:component::analytics_insights::config::step::user::data_description::tracked_addons%]",
"tracked_custom_integrations": "[%key:component::analytics_insights::config::step::user::data_description::tracked_custom_integrations%]",
"tracked_integrations": "[%key:component::analytics_insights::config::step::user::data_description::tracked_integrations%]"
}
}
}
}
}

View File

@@ -51,11 +51,11 @@
"torch": {
"default": "mdi:white-balance-sunny"
},
"video_recording": {
"default": "mdi:record-rec"
},
"whitebalance_lock": {
"default": "mdi:white-balance-auto"
},
"video_recording": {
"default": "mdi:record-rec"
}
}
}

View File

@@ -1,24 +1,24 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]"
},
"step": {
"user": {
"data": {
"host": "[%key:common::config_flow::data::host%]",
"password": "[%key:common::config_flow::data::password%]",
"port": "[%key:common::config_flow::data::port%]",
"username": "[%key:common::config_flow::data::username%]"
"username": "[%key:common::config_flow::data::username%]",
"password": "[%key:common::config_flow::data::password%]"
},
"data_description": {
"host": "The IP address of the device running the Android IP Webcam app. The IP address is shown in the app once you start the server."
}
}
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
}
}
}

View File

@@ -6,11 +6,11 @@
"download": {
"service": "mdi:download"
},
"learn_sendevent": {
"service": "mdi:remote"
},
"upload": {
"service": "mdi:upload"
},
"learn_sendevent": {
"service": "mdi:remote"
}
}
}

View File

@@ -1,112 +1,112 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"invalid_unique_id": "Impossible to determine a valid unique ID for the device"
},
"error": {
"adbkey_not_file": "ADB key file not found",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_host": "[%key:common::config_flow::error::invalid_host%]",
"key_and_server": "Only provide ADB Key or ADB Server",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"step": {
"user": {
"data": {
"host": "[%key:common::config_flow::data::host%]",
"adbkey": "Path to your ADB key file (leave empty to auto generate)",
"adb_server_ip": "IP address of the ADB server (leave empty to not use)",
"adb_server_port": "Port of the ADB server",
"adbkey": "Path to your ADB key file (leave empty to auto generate)",
"device_class": "The type of device",
"host": "[%key:common::config_flow::data::host%]",
"port": "[%key:common::config_flow::data::port%]"
}
}
}
},
"exceptions": {
"failed_send": {
"message": "Failed to send command {cmd}"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_host": "[%key:common::config_flow::error::invalid_host%]",
"adbkey_not_file": "ADB key file not found",
"key_and_server": "Only provide ADB Key or ADB Server",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"invalid_unique_id": "Impossible to determine a valid unique ID for the device"
}
},
"options": {
"error": {
"invalid_det_rules": "Invalid state detection rules"
},
"step": {
"apps": {
"data": {
"app_delete": "Check to delete this application",
"app_id": "Application ID",
"app_name": "Application name"
},
"description": "Configure application ID {app_id}",
"title": "Configure Android apps"
},
"init": {
"data": {
"apps": "Configure applications list",
"exclude_unnamed_apps": "Exclude apps with unknown name from the sources list",
"get_sources": "Retrieve the running apps as the list of sources",
"exclude_unnamed_apps": "Exclude apps with unknown name from the sources list",
"screencap_interval": "Interval in minutes between screen capture for album art (set 0 to disable)",
"state_detection_rules": "Configure state detection rules",
"turn_off_command": "ADB shell turn off command (leave empty for default)",
"turn_on_command": "ADB shell turn on command (leave empty for default)"
}
},
"rules": {
"apps": {
"title": "Configure Android apps",
"description": "Configure application ID {app_id}",
"data": {
"rule_delete": "Check to delete this rule",
"rule_id": "[%key:component::androidtv::options::step::apps::data::app_id%]",
"rule_values": "List of state detection rules (see documentation)"
},
"app_name": "Application name",
"app_id": "Application ID",
"app_delete": "Check to delete this application"
}
},
"rules": {
"title": "Configure Android state detection rules",
"description": "Configure detection rule for application ID {rule_id}",
"title": "Configure Android state detection rules"
"data": {
"rule_id": "[%key:component::androidtv::options::step::apps::data::app_id%]",
"rule_values": "List of state detection rules (see documentation)",
"rule_delete": "Check to delete this rule"
}
}
},
"error": {
"invalid_det_rules": "Invalid state detection rules"
}
},
"services": {
"adb_command": {
"name": "ADB command",
"description": "Sends an ADB command to an Android / Fire TV device.",
"fields": {
"command": {
"description": "Either a key command or an ADB shell command.",
"name": "Command"
"name": "Command",
"description": "Either a key command or an ADB shell command."
}
},
"name": "ADB command"
}
},
"download": {
"name": "Download",
"description": "Downloads a file from your Android / Fire TV device to your Home Assistant instance.",
"fields": {
"device_path": {
"description": "The filepath on the Android / Fire TV device.",
"name": "Device path"
"name": "Device path",
"description": "The filepath on the Android / Fire TV device."
},
"local_path": {
"description": "The filepath on your Home Assistant instance.",
"name": "Local path"
"name": "Local path",
"description": "The filepath on your Home Assistant instance."
}
},
"name": "Download"
},
"learn_sendevent": {
"description": "Translates a key press on a remote into ADB 'sendevent' commands. You must press one button on the remote within 8 seconds of performing this action.",
"name": "Learn sendevent"
}
},
"upload": {
"name": "Upload",
"description": "Uploads a file from your Home Assistant instance to an Android / Fire TV device.",
"fields": {
"device_path": {
"description": "[%key:component::androidtv::services::download::fields::device_path::description%]",
"name": "[%key:component::androidtv::services::download::fields::device_path::name%]"
"name": "[%key:component::androidtv::services::download::fields::device_path::name%]",
"description": "[%key:component::androidtv::services::download::fields::device_path::description%]"
},
"local_path": {
"description": "[%key:component::androidtv::services::download::fields::local_path::description%]",
"name": "[%key:component::androidtv::services::download::fields::local_path::name%]"
"name": "[%key:component::androidtv::services::download::fields::local_path::name%]",
"description": "[%key:component::androidtv::services::download::fields::local_path::description%]"
}
},
"name": "Upload"
}
},
"learn_sendevent": {
"name": "Learn sendevent",
"description": "Translates a key press on a remote into ADB 'sendevent' commands. You must press one button on the remote within 8 seconds of performing this action."
}
},
"exceptions": {
"failed_send": {
"message": "Failed to send command {cmd}"
}
}
}

View File

@@ -1,11 +1,42 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]",
"reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]",
"unique_id_mismatch": "Please ensure you reconfigure against the same device."
"flow_title": "{name}",
"step": {
"user": {
"description": "Enter the IP address of the Android TV you want to add to Home Assistant. It will turn on and a pairing code will be displayed on it that you will need to enter in the next screen.",
"data": {
"host": "[%key:common::config_flow::data::host%]"
},
"data_description": {
"host": "The hostname or IP address of the Android TV device."
}
},
"reconfigure": {
"description": "Update the IP address of this previously configured Android TV device.",
"data": {
"host": "[%key:common::config_flow::data::host%]"
},
"data_description": {
"host": "The hostname or IP address of the Android TV device."
}
},
"zeroconf_confirm": {
"title": "Discovered Android TV",
"description": "Do you want to add the Android TV ({name}) to Home Assistant? It will turn on and a pairing code will be displayed on it that you will need to enter in the next screen."
},
"pair": {
"description": "Enter the pairing code displayed on the Android TV ({name}).",
"data": {
"pin": "[%key:common::config_flow::data::pin%]"
},
"data_description": {
"pin": "Pairing code displayed on the Android TV device."
}
},
"reauth_confirm": {
"title": "[%key:common::config_flow::title::reauth%]",
"description": "You need to pair again with the Android TV ({name}). It will turn on and a pairing code will be displayed on it that you will need to enter in the next screen."
}
},
"error": {
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
@@ -13,42 +44,41 @@
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"flow_title": "{name}",
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]",
"reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]",
"unique_id_mismatch": "Please ensure you reconfigure against the same device."
}
},
"options": {
"step": {
"pair": {
"init": {
"data": {
"pin": "[%key:common::config_flow::data::pin%]"
"apps": "Configure applications list",
"enable_ime": "Enable IME"
},
"data_description": {
"pin": "Pairing code displayed on the Android TV device."
},
"description": "Enter the pairing code displayed on the Android TV ({name})."
"apps": "Here you can define the list of applications, specify names and icons that will be displayed in the UI.",
"enable_ime": "Enable this option to be able to get the current app name and send text as keyboard input. Disable it for devices that show 'Use keyboard on mobile device screen' instead of the on-screen keyboard."
}
},
"reauth_confirm": {
"description": "You need to pair again with the Android TV ({name}). It will turn on and a pairing code will be displayed on it that you will need to enter in the next screen.",
"title": "[%key:common::config_flow::title::reauth%]"
},
"reconfigure": {
"apps": {
"title": "Configure Android apps",
"description": "Configure application ID {app_id}",
"data": {
"host": "[%key:common::config_flow::data::host%]"
"app_name": "Application name",
"app_id": "Application ID",
"app_icon": "Application icon",
"app_delete": "Check to delete this application"
},
"data_description": {
"host": "The hostname or IP address of the Android TV device."
},
"description": "Update the IP address of this previously configured Android TV device."
},
"user": {
"data": {
"host": "[%key:common::config_flow::data::host%]"
},
"data_description": {
"host": "The hostname or IP address of the Android TV device."
},
"description": "Enter the IP address of the Android TV you want to add to Home Assistant. It will turn on and a pairing code will be displayed on it that you will need to enter in the next screen."
},
"zeroconf_confirm": {
"description": "Do you want to add the Android TV ({name}) to Home Assistant? It will turn on and a pairing code will be displayed on it that you will need to enter in the next screen.",
"title": "Discovered Android TV"
"app_name": "Name of the application as you would like it to be displayed in Home Assistant.",
"app_id": "E.g. {example_app_id} for {example_app_play_store_url}",
"app_icon": "Image URL. From the Play Store app page, right click on the icon and select 'Copy image address' and then paste it here. Alternatively, download the image, upload it under /config/www/ and use the URL /local/filename",
"app_delete": "Check this box to delete the application from the list."
}
}
}
},
@@ -63,36 +93,6 @@
"message": "Invalid media type: {media_type}"
}
},
"options": {
"step": {
"apps": {
"data": {
"app_delete": "Check to delete this application",
"app_icon": "Application icon",
"app_id": "Application ID",
"app_name": "Application name"
},
"data_description": {
"app_delete": "Check this box to delete the application from the list.",
"app_icon": "Image URL. From the Play Store app page, right click on the icon and select 'Copy image address' and then paste it here. Alternatively, download the image, upload it under /config/www/ and use the URL /local/filename",
"app_id": "E.g. {example_app_id} for {example_app_play_store_url}",
"app_name": "Name of the application as you would like it to be displayed in Home Assistant."
},
"description": "Configure application ID {app_id}",
"title": "Configure Android apps"
},
"init": {
"data": {
"apps": "Configure applications list",
"enable_ime": "Enable IME"
},
"data_description": {
"apps": "Here you can define the list of applications, specify names and icons that will be displayed in the UI.",
"enable_ime": "Enable this option to be able to get the current app name and send text as keyboard input. Disable it for devices that show 'Use keyboard on mobile device screen' instead of the on-screen keyboard."
}
}
}
},
"selector": {
"apps": {
"options": {

View File

@@ -4,15 +4,15 @@
"cook_time": {
"default": "mdi:clock-outline"
},
"target_temperature": {
"default": "mdi:thermometer"
},
"cook_time_remaining": {
"default": "mdi:clock-outline"
},
"heater_temperature": {
"default": "mdi:thermometer"
},
"target_temperature": {
"default": "mdi:thermometer"
},
"triac_temperature": {
"default": "mdi:thermometer"
},

View File

@@ -1,19 +1,19 @@
{
"config": {
"step": {
"user": {
"data": {
"username": "[%key:common::config_flow::data::email%]",
"password": "[%key:common::config_flow::data::password%]"
}
},
"confirm": {
"description": "[%key:common::config_flow::description::confirm_setup%]"
}
},
"error": {
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"step": {
"confirm": {
"description": "[%key:common::config_flow::description::confirm_setup%]"
},
"user": {
"data": {
"password": "[%key:common::config_flow::data::password%]",
"username": "[%key:common::config_flow::data::email%]"
}
}
}
},
"entity": {
@@ -21,39 +21,39 @@
"cook_time": {
"name": "Cook time"
},
"state": {
"name": "State",
"state": {
"preheating": "Preheating",
"cooking": "Cooking",
"maintaining": "Maintaining",
"timer_expired": "Timer expired",
"set_timer": "Set timer",
"no_state": "No state"
}
},
"mode": {
"name": "[%key:common::config_flow::data::mode%]",
"state": {
"startup": "Startup",
"idle": "[%key:common::state::idle%]",
"cook": "Cooking",
"low_water": "Low water",
"ota": "OTA update",
"provisioning": "Provisioning",
"high_temp": "High temperature",
"device_failure": "Device failure"
}
},
"target_temperature": {
"name": "Target temperature"
},
"cook_time_remaining": {
"name": "Cook time remaining"
},
"heater_temperature": {
"name": "Heater temperature"
},
"mode": {
"name": "[%key:common::config_flow::data::mode%]",
"state": {
"cook": "Cooking",
"device_failure": "Device failure",
"high_temp": "High temperature",
"idle": "[%key:common::state::idle%]",
"low_water": "Low water",
"ota": "OTA update",
"provisioning": "Provisioning",
"startup": "Startup"
}
},
"state": {
"name": "State",
"state": {
"cooking": "Cooking",
"maintaining": "Maintaining",
"no_state": "No state",
"preheating": "Preheating",
"set_timer": "Set timer",
"timer_expired": "Timer expired"
}
},
"target_temperature": {
"name": "Target temperature"
},
"triac_temperature": {
"name": "Triac temperature"
},

View File

@@ -1,12 +1,5 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"cannot_receive_deviceinfo": "Failed to retrieve MAC address. Make sure the device is turned on"
},
"step": {
"user": {
"data": {
@@ -14,6 +7,13 @@
"port": "[%key:common::config_flow::data::port%]"
}
}
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"cannot_receive_deviceinfo": "Failed to retrieve MAC address. Make sure the device is turned on"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
}
}
}

View File

@@ -1,61 +1,61 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_service%]"
},
"error": {
"authentication_error": "[%key:common::config_flow::error::invalid_auth%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"timeout_connect": "[%key:common::config_flow::error::timeout_connect%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"step": {
"user": {
"data": {
"api_key": "[%key:common::config_flow::data::api_key%]"
}
}
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"timeout_connect": "[%key:common::config_flow::error::timeout_connect%]",
"authentication_error": "[%key:common::config_flow::error::invalid_auth%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_service%]"
}
},
"config_subentries": {
"conversation": {
"abort": {
"entry_not_loaded": "Cannot add things while the configuration is disabled.",
"reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]"
"initiate_flow": {
"user": "Add conversation agent",
"reconfigure": "Reconfigure conversation agent"
},
"entry_type": "Conversation agent",
"error": {
"thinking_budget_too_large": "Maximum tokens must be greater than the thinking budget.",
"web_search_unsupported_model": "Web search is not supported by the selected model. Please choose a compatible model or disable web search."
},
"initiate_flow": {
"reconfigure": "Reconfigure conversation agent",
"user": "Add conversation agent"
},
"step": {
"set_options": {
"data": {
"chat_model": "[%key:common::generic::model%]",
"llm_hass_api": "[%key:common::config_flow::data::llm_hass_api%]",
"max_tokens": "Maximum tokens to return in response",
"name": "[%key:common::config_flow::data::name%]",
"prompt": "[%key:common::config_flow::data::prompt%]",
"recommended": "Recommended model settings",
"chat_model": "[%key:common::generic::model%]",
"max_tokens": "Maximum tokens to return in response",
"temperature": "Temperature",
"llm_hass_api": "[%key:common::config_flow::data::llm_hass_api%]",
"recommended": "Recommended model settings",
"thinking_budget": "Thinking budget",
"user_location": "Include home location",
"web_search": "Enable web search",
"web_search_max_uses": "Maximum web searches"
"web_search_max_uses": "Maximum web searches",
"user_location": "Include home location"
},
"data_description": {
"prompt": "Instruct how the LLM should respond. This can be a template.",
"thinking_budget": "The number of tokens the model can use to think about the response out of the total maximum number of tokens. Set to 1024 or greater to enable extended thinking.",
"user_location": "Localize search results based on home location",
"web_search": "The web search tool gives Claude direct access to real-time web content, allowing it to answer questions with up-to-date information beyond its knowledge cutoff",
"web_search_max_uses": "Limit the number of searches performed per response"
"web_search_max_uses": "Limit the number of searches performed per response",
"user_location": "Localize search results based on home location"
}
}
},
"abort": {
"reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]",
"entry_not_loaded": "Cannot add things while the configuration is disabled."
},
"error": {
"thinking_budget_too_large": "Maximum tokens must be greater than the thinking budget.",
"web_search_unsupported_model": "Web search is not supported by the selected model. Please choose a compatible model or disable web search."
}
}
}

View File

@@ -5,5 +5,5 @@
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/aosmith",
"iot_class": "cloud_polling",
"requirements": ["py-aosmith==1.0.15"]
"requirements": ["py-aosmith==1.0.14"]
}

View File

@@ -1,28 +1,28 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
},
"error": {
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"step": {
"reauth_confirm": {
"data": {
"password": "[%key:common::config_flow::data::password%]"
},
"description": "Please update your password for {email}",
"title": "[%key:common::config_flow::title::reauth%]"
},
"user": {
"data": {
"email": "[%key:common::config_flow::data::email%]",
"password": "[%key:common::config_flow::data::password%]"
},
"description": "Please enter your A. O. Smith credentials."
},
"reauth_confirm": {
"description": "Please update your password for {email}",
"title": "[%key:common::config_flow::title::reauth%]",
"data": {
"password": "[%key:common::config_flow::data::password%]"
}
}
},
"error": {
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
}
},
"entity": {
@@ -30,19 +30,19 @@
"hot_water_plus_level": {
"name": "Hot Water+ level",
"state": {
"off": "[%key:common::state::off%]",
"level1": "Level 1",
"level2": "Level 2",
"level3": "Level 3",
"off": "[%key:common::state::off%]"
"level3": "Level 3"
}
}
},
"sensor": {
"energy_usage": {
"name": "Energy usage"
},
"hot_water_availability": {
"name": "Hot water availability"
},
"energy_usage": {
"name": "Energy usage"
}
}
}

View File

@@ -9,14 +9,11 @@
"alarm_delay": {
"default": "mdi:alarm"
},
"apc_model": {
"default": "mdi:information-outline"
},
"apc_status": {
"default": "mdi:information-outline"
},
"apparent_power": {
"default": "mdi:gauge"
"apc_model": {
"default": "mdi:information-outline"
},
"bad_batteries": {
"default": "mdi:information-outline"
@@ -30,18 +27,30 @@
"cable_type": {
"default": "mdi:ethernet-cable"
},
"date": {
"default": "mdi:calendar-clock"
"total_time_on_battery": {
"default": "mdi:timer-outline"
},
"date_and_time": {
"date": {
"default": "mdi:calendar-clock"
},
"dip_switch_settings": {
"default": "mdi:information-outline"
},
"low_battery_signal": {
"default": "mdi:clock-alert"
},
"driver": {
"default": "mdi:information-outline"
},
"shutdown_delay": {
"default": "mdi:timer-outline"
},
"wake_delay": {
"default": "mdi:timer-outline"
},
"date_and_time": {
"default": "mdi:calendar-clock"
},
"external_batteries": {
"default": "mdi:information-outline"
},
@@ -63,8 +72,8 @@
"load_capacity": {
"default": "mdi:gauge"
},
"low_battery_signal": {
"default": "mdi:clock-alert"
"apparent_power": {
"default": "mdi:gauge"
},
"manufacture_date": {
"default": "mdi:calendar"
@@ -72,20 +81,20 @@
"master_update": {
"default": "mdi:information-outline"
},
"max_battery_charge": {
"default": "mdi:battery-alert"
},
"max_time": {
"default": "mdi:timer-off-outline"
},
"max_battery_charge": {
"default": "mdi:battery-alert"
},
"min_time": {
"default": "mdi:timer-outline"
},
"model": {
"default": "mdi:information-outline"
},
"online_status": {
"default": "mdi:information-outline"
"transfer_count": {
"default": "mdi:counter"
},
"register_1_fault": {
"default": "mdi:information-outline"
@@ -99,9 +108,6 @@
"restore_capacity": {
"default": "mdi:battery-alert"
},
"self_test_interval": {
"default": "mdi:information-outline"
},
"self_test_result": {
"default": "mdi:information-outline"
},
@@ -111,33 +117,24 @@
"serial_number": {
"default": "mdi:information-outline"
},
"shutdown_delay": {
"default": "mdi:timer-outline"
},
"startup_time": {
"default": "mdi:calendar-clock"
},
"online_status": {
"default": "mdi:information-outline"
},
"status": {
"default": "mdi:information-outline"
},
"self_test_interval": {
"default": "mdi:information-outline"
},
"time_left": {
"default": "mdi:clock-alert"
},
"time_on_battery": {
"default": "mdi:timer-outline"
},
"total_time_on_battery": {
"default": "mdi:timer-outline"
},
"transfer_count": {
"default": "mdi:counter"
},
"transfer_from_battery": {
"default": "mdi:transfer"
},
"transfer_to_battery": {
"default": "mdi:transfer"
},
"ups_mode": {
"default": "mdi:information-outline"
},
@@ -147,8 +144,11 @@
"version": {
"default": "mdi:information-outline"
},
"wake_delay": {
"default": "mdi:timer-outline"
"transfer_from_battery": {
"default": "mdi:transfer"
},
"transfer_to_battery": {
"default": "mdi:transfer"
}
}
}

View File

@@ -2,24 +2,13 @@
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]",
"wrong_apcupsd_daemon": "The reconfigured APC UPS Daemon is not the same as the one already configured."
"wrong_apcupsd_daemon": "The reconfigured APC UPS Daemon is not the same as the one already configured.",
"reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"step": {
"reconfigure": {
"data": {
"host": "[%key:common::config_flow::data::host%]",
"port": "[%key:common::config_flow::data::port%]"
},
"data_description": {
"host": "[%key:component::apcupsd::config::step::user::data_description::host%]",
"port": "[%key:component::apcupsd::config::step::user::data_description::port%]"
},
"description": "[%key:component::apcupsd::config::step::user::description%]"
},
"user": {
"data": {
"host": "[%key:common::config_flow::data::host%]",
@@ -30,6 +19,17 @@
"port": "The port the APC UPS Daemon is listening on"
},
"description": "Enter the host and port on which the apcupsd NIS is being served."
},
"reconfigure": {
"data": {
"host": "[%key:common::config_flow::data::host%]",
"port": "[%key:common::config_flow::data::port%]"
},
"data_description": {
"host": "[%key:component::apcupsd::config::step::user::data_description::host%]",
"port": "[%key:component::apcupsd::config::step::user::data_description::port%]"
},
"description": "[%key:component::apcupsd::config::step::user::description%]"
}
}
},
@@ -46,21 +46,15 @@
"ambient_temperature": {
"name": "Ambient temperature"
},
"apc_model": {
"name": "Model"
},
"apc_status": {
"name": "Status data"
},
"apparent_power": {
"name": "Load apparent power"
"apc_model": {
"name": "Model"
},
"bad_batteries": {
"name": "Bad batteries"
},
"battery_nominal_voltage": {
"name": "Battery nominal voltage"
},
"battery_replacement_date": {
"name": "Battery replaced"
},
@@ -73,36 +67,45 @@
"cable_type": {
"name": "Cable type"
},
"total_time_on_battery": {
"name": "Total time on battery"
},
"date": {
"name": "Status date"
},
"date_and_time": {
"name": "Date and time"
},
"dip_switch_settings": {
"name": "DIP switch settings"
},
"low_battery_signal": {
"name": "Low battery signal"
},
"driver": {
"name": "Driver"
},
"shutdown_delay": {
"name": "Shutdown delay"
},
"wake_delay": {
"name": "Wake delay"
},
"date_and_time": {
"name": "Date and time"
},
"external_batteries": {
"name": "External batteries"
},
"firmware_version": {
"name": "Firmware version"
},
"transfer_high": {
"name": "Transfer high"
},
"hostname": {
"name": "Hostname"
},
"humidity": {
"name": "Ambient humidity"
},
"input_voltage_high": {
"name": "Input voltage high"
},
"input_voltage_low": {
"name": "Input voltage low"
},
"internal_temperature": {
"name": "Internal temperature"
},
@@ -124,8 +127,11 @@
"load_capacity": {
"name": "Load"
},
"low_battery_signal": {
"name": "Low battery signal"
"apparent_power": {
"name": "Load apparent power"
},
"transfer_low": {
"name": "Transfer low"
},
"manufacture_date": {
"name": "Manufacture date"
@@ -133,32 +139,41 @@
"master_update": {
"name": "Master update"
},
"max_battery_charge": {
"name": "Battery shutdown"
"input_voltage_high": {
"name": "Input voltage high"
},
"max_time": {
"name": "Battery timeout"
},
"max_battery_charge": {
"name": "Battery shutdown"
},
"input_voltage_low": {
"name": "Input voltage low"
},
"min_time": {
"name": "Shutdown time"
},
"model": {
"name": "Model"
},
"nominal_apparent_power": {
"name": "Nominal apparent power"
"battery_nominal_voltage": {
"name": "Battery nominal voltage"
},
"nominal_input_voltage": {
"name": "Nominal input voltage"
},
"nominal_output_power": {
"name": "Nominal output power"
},
"nominal_output_voltage": {
"name": "Nominal output voltage"
},
"online_status": {
"name": "Status flag"
"nominal_output_power": {
"name": "Nominal output power"
},
"nominal_apparent_power": {
"name": "Nominal apparent power"
},
"transfer_count": {
"name": "Transfer count"
},
"output_current": {
"name": "Output current"
@@ -178,9 +193,6 @@
"restore_capacity": {
"name": "Restore requirement"
},
"self_test_interval": {
"name": "Self-test interval"
},
"self_test_result": {
"name": "Self-test result"
},
@@ -190,39 +202,24 @@
"serial_number": {
"name": "Serial number"
},
"shutdown_delay": {
"name": "Shutdown delay"
},
"startup_time": {
"name": "Startup time"
},
"online_status": {
"name": "Status flag"
},
"status": {
"name": "Status"
},
"self_test_interval": {
"name": "Self-test interval"
},
"time_left": {
"name": "Time left"
},
"time_on_battery": {
"name": "Time on battery"
},
"total_time_on_battery": {
"name": "Total time on battery"
},
"transfer_count": {
"name": "Transfer count"
},
"transfer_from_battery": {
"name": "Transfer from battery"
},
"transfer_high": {
"name": "Transfer high"
},
"transfer_low": {
"name": "Transfer low"
},
"transfer_to_battery": {
"name": "Transfer to battery"
},
"ups_mode": {
"name": "Mode"
},
@@ -232,8 +229,11 @@
"version": {
"name": "Daemon version"
},
"wake_delay": {
"name": "Wake delay"
"transfer_from_battery": {
"name": "Transfer from battery"
},
"transfer_to_battery": {
"name": "Transfer to battery"
}
}
},

View File

@@ -17,40 +17,40 @@
"_appletv-v2._tcp.local.",
"_hscp._tcp.local.",
{
"type": "_airplay._tcp.local.",
"properties": {
"model": "appletv*"
},
"type": "_airplay._tcp.local."
}
},
{
"type": "_airplay._tcp.local.",
"properties": {
"model": "audioaccessory*"
},
"type": "_airplay._tcp.local."
}
},
{
"type": "_airplay._tcp.local.",
"properties": {
"am": "airport*"
},
"type": "_airplay._tcp.local."
}
},
{
"type": "_raop._tcp.local.",
"properties": {
"am": "appletv*"
},
"type": "_raop._tcp.local."
}
},
{
"type": "_raop._tcp.local.",
"properties": {
"am": "audioaccessory*"
},
"type": "_raop._tcp.local."
}
},
{
"type": "_raop._tcp.local.",
"properties": {
"am": "airport*"
},
"type": "_raop._tcp.local."
}
}
]
}

View File

@@ -1,74 +1,74 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
"backoff": "Device does not accept pairing requests at this time (you might have entered an invalid PIN code too many times), try again later.",
"device_did_not_pair": "No attempt to finish pairing process was made from the device.",
"device_not_found": "Device was not found during discovery, please try adding it again.",
"inconsistent_device": "Expected protocols were not found during discovery. This normally indicates a problem with multicast DNS (Zeroconf). Please try adding the device again.",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"ipv6_not_supported": "IPv6 is not supported.",
"no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]",
"setup_failed": "Failed to set up device.",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"error": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"flow_title": "{name} ({type})",
"step": {
"confirm": {
"description": "You are about to add `{name}` of type `{type}` to Home Assistant.\n\n**To complete the process, you may have to enter multiple PIN codes.**\n\nPlease note that you will *not* be able to power off your Apple TV with this integration. Only the media player in Home Assistant will turn off!",
"title": "Confirm adding Apple TV"
},
"pair_no_pin": {
"description": "Pairing is required for the `{protocol}` service. Please enter PIN {pin} on your device to continue.",
"title": "Pairing"
},
"pair_with_pin": {
"data": {
"pin": "[%key:common::config_flow::data::pin%]"
},
"description": "Pairing is required for the `{protocol}` protocol. Please enter the PIN code displayed on screen. Leading zeros shall be omitted, i.e. enter 123 if the displayed code is 0123.",
"title": "Pairing"
},
"password": {
"description": "A password is required by `{protocol}`. This is not yet supported, please disable password to continue.",
"title": "Password required"
},
"protocol_disabled": {
"description": "Pairing is required for `{protocol}` but it is disabled on the device. Please review potential access restrictions (e.g. allow all devices on the local network to connect) on the device.\n\nYou may continue without pairing this protocol, but some functionality will be limited.",
"title": "Pairing not possible"
},
"restore_device": {
"description": "Reconfigure this device to restore its functionality.",
"title": "Device reconfiguration"
},
"service_problem": {
"description": "A problem occurred while pairing protocol `{protocol}`. It will be ignored.",
"title": "Failed to add service"
},
"user": {
"title": "Set up a new Apple TV",
"description": "Start by entering the device name (e.g. Kitchen or Bedroom) or IP address of the Apple TV you want to add.\n\nIf you cannot see your device or experience any issues, try specifying the device IP address.",
"data": {
"device_input": "[%key:common::config_flow::data::device%]"
},
"description": "Start by entering the device name (e.g. Kitchen or Bedroom) or IP address of the Apple TV you want to add.\n\nIf you cannot see your device or experience any issues, try specifying the device IP address.",
"title": "Set up a new Apple TV"
}
},
"restore_device": {
"title": "Device reconfiguration",
"description": "Reconfigure this device to restore its functionality."
},
"pair_with_pin": {
"title": "Pairing",
"description": "Pairing is required for the `{protocol}` protocol. Please enter the PIN code displayed on screen. Leading zeros shall be omitted, i.e. enter 123 if the displayed code is 0123.",
"data": {
"pin": "[%key:common::config_flow::data::pin%]"
}
},
"pair_no_pin": {
"title": "Pairing",
"description": "Pairing is required for the `{protocol}` service. Please enter PIN {pin} on your device to continue."
},
"protocol_disabled": {
"title": "Pairing not possible",
"description": "Pairing is required for `{protocol}` but it is disabled on the device. Please review potential access restrictions (e.g. allow all devices on the local network to connect) on the device.\n\nYou may continue without pairing this protocol, but some functionality will be limited."
},
"confirm": {
"title": "Confirm adding Apple TV",
"description": "You are about to add `{name}` of type `{type}` to Home Assistant.\n\n**To complete the process, you may have to enter multiple PIN codes.**\n\nPlease note that you will *not* be able to power off your Apple TV with this integration. Only the media player in Home Assistant will turn off!"
},
"service_problem": {
"title": "Failed to add service",
"description": "A problem occurred while pairing protocol `{protocol}`. It will be ignored."
},
"password": {
"title": "Password required",
"description": "A password is required by `{protocol}`. This is not yet supported, please disable password to continue."
}
},
"error": {
"no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]",
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"unknown": "[%key:common::config_flow::error::unknown%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]"
},
"abort": {
"ipv6_not_supported": "IPv6 is not supported.",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]",
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"device_did_not_pair": "No attempt to finish pairing process was made from the device.",
"backoff": "Device does not accept pairing requests at this time (you might have entered an invalid PIN code too many times), try again later.",
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
"unknown": "[%key:common::config_flow::error::unknown%]",
"setup_failed": "Failed to set up device.",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]",
"device_not_found": "Device was not found during discovery, please try adding it again.",
"inconsistent_device": "Expected protocols were not found during discovery. This normally indicates a problem with multicast DNS (Zeroconf). Please try adding the device again."
}
},
"options": {
"step": {
"init": {
"description": "Configure general device settings",
"data": {
"start_off": "Do not turn device on when starting Home Assistant"
},
"description": "Configure general device settings"
}
}
}
}

View File

@@ -1,11 +1,5 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
},
"error": {
"connection_failed": "Connection failed. Please check that the host and port is correct."
},
"step": {
"user": {
"data": {
@@ -16,6 +10,12 @@
"port": "Usually 7000 or 8000"
}
}
},
"error": {
"connection_failed": "Connection failed. Please check that the host and port is correct."
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
}
},
"entity": {
@@ -25,96 +25,96 @@
}
},
"humidifier": {
"dehumidifier": {
"name": "[%key:component::humidifier::entity_component::dehumidifier::name%]"
},
"humidifier": {
"name": "[%key:component::humidifier::title%]"
},
"dehumidifier": {
"name": "[%key:component::humidifier::entity_component::dehumidifier::name%]"
}
},
"select": {
"air_cleaning_event": {
"name": "Air cleaning event",
"state": {
"allergies": "Allergies (24 hour)",
"off": "[%key:common::state::off%]",
"event_clean": "Event clean (3 hour)",
"off": "[%key:common::state::off%]"
"allergies": "Allergies (24 hour)"
}
},
"air_cleaning_mode": {
"name": "Air cleaning mode",
"state": {
"automatic": "Automatic",
"off": "[%key:common::state::off%]",
"constant_clean": "Constant clean",
"off": "[%key:common::state::off%]"
"automatic": "Automatic"
}
},
"fresh_air_event": {
"name": "Fresh air event",
"state": {
"off": "[%key:common::state::off%]",
"3hour": "3 hour event",
"24hour": "24 hour event",
"off": "[%key:common::state::off%]"
"24hour": "24 hour event"
}
},
"fresh_air_mode": {
"name": "Fresh air mode",
"state": {
"automatic": "[%key:component::aprilaire::entity::select::air_cleaning_mode::state::automatic%]",
"off": "[%key:common::state::off%]"
"off": "[%key:common::state::off%]",
"automatic": "[%key:component::aprilaire::entity::select::air_cleaning_mode::state::automatic%]"
}
}
},
"sensor": {
"air_cleaning_status": {
"name": "Air cleaning status",
"state": {
"idle": "[%key:common::state::idle%]",
"off": "[%key:common::state::off%]",
"on": "[%key:common::state::on%]"
}
"indoor_humidity_controlling_sensor": {
"name": "Indoor humidity controlling sensor"
},
"outdoor_humidity_controlling_sensor": {
"name": "Outdoor humidity controlling sensor"
},
"indoor_temperature_controlling_sensor": {
"name": "Indoor temperature controlling sensor"
},
"outdoor_temperature_controlling_sensor": {
"name": "Outdoor temperature controlling sensor"
},
"dehumidification_status": {
"name": "Dehumidification status",
"state": {
"idle": "[%key:common::state::idle%]",
"off": "[%key:common::state::off%]",
"on": "[%key:common::state::on%]"
}
},
"fan_status": {
"name": "Fan status",
"state": {
"off": "[%key:common::state::off%]",
"on": "[%key:common::state::on%]"
"on": "[%key:common::state::on%]",
"off": "[%key:common::state::off%]"
}
},
"humidification_status": {
"name": "Humidification status",
"state": {
"idle": "[%key:common::state::idle%]",
"off": "[%key:common::state::off%]",
"on": "[%key:common::state::on%]"
"on": "[%key:common::state::on%]",
"off": "[%key:common::state::off%]"
}
},
"indoor_humidity_controlling_sensor": {
"name": "Indoor humidity controlling sensor"
},
"indoor_temperature_controlling_sensor": {
"name": "Indoor temperature controlling sensor"
},
"outdoor_humidity_controlling_sensor": {
"name": "Outdoor humidity controlling sensor"
},
"outdoor_temperature_controlling_sensor": {
"name": "Outdoor temperature controlling sensor"
},
"ventilation_status": {
"name": "Ventilation status",
"state": {
"idle": "[%key:common::state::idle%]",
"off": "[%key:common::state::off%]",
"on": "[%key:common::state::on%]"
"on": "[%key:common::state::on%]",
"off": "[%key:common::state::off%]"
}
},
"air_cleaning_status": {
"name": "Air cleaning status",
"state": {
"idle": "[%key:common::state::idle%]",
"on": "[%key:common::state::on%]",
"off": "[%key:common::state::off%]"
}
},
"fan_status": {
"name": "Fan status",
"state": {
"on": "[%key:common::state::on%]",
"off": "[%key:common::state::off%]"
}
}
}

View File

@@ -1,11 +1,5 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"step": {
"user": {
"data": {
@@ -16,29 +10,39 @@
"port": "The integration will default to 8050, if not set, which should be suitable for most installs"
}
}
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
}
},
"entity": {
"binary_sensor": {
"off_grid_status": {
"name": "Off-grid status"
},
"dc_1_short_circuit_error_status": {
"name": "DC 1 short circuit error status"
},
"dc_2_short_circuit_error_status": {
"name": "DC 2 short circuit error status"
},
"off_grid_status": {
"name": "Off-grid status"
},
"output_fault_status": {
"name": "Output fault status"
}
},
"number": {
"max_output": {
"name": "Max output"
}
},
"sensor": {
"total_power": {
"name": "Total power"
},
"total_power_p1": {
"name": "Power of P1"
},
"total_power_p2": {
"name": "Power of P2"
},
"lifetime_production": {
"name": "Total lifetime production"
},
@@ -56,15 +60,11 @@
},
"today_production_p2": {
"name": "Production of today from P2"
},
"total_power": {
"name": "Total power"
},
"total_power_p1": {
"name": "Power of P1"
},
"total_power_p2": {
"name": "Power of P2"
}
},
"number": {
"max_output": {
"name": "Max output"
}
},
"switch": {

View File

@@ -13,9 +13,9 @@
"wi_fi_strength": {
"default": "mdi:wifi",
"state": {
"high": "mdi:wifi-strength-4",
"low": "mdi:wifi-strength-1",
"medium": "mdi:wifi-strength-2"
"medium": "mdi:wifi-strength-2",
"high": "mdi:wifi-strength-4"
}
}
}

View File

@@ -1,22 +1,22 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
"step": {
"user": {
"description": "Select the brand of the softener and fill in your softener mobile app credentials",
"data": {
"brand": "Brand",
"email": "[%key:common::config_flow::data::email%]",
"password": "[%key:common::config_flow::data::password%]"
}
}
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"step": {
"user": {
"data": {
"brand": "Brand",
"email": "[%key:common::config_flow::data::email%]",
"password": "[%key:common::config_flow::data::password%]"
},
"description": "Select the brand of the softener and fill in your softener mobile app credentials"
}
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
}
},
"entity": {
@@ -27,21 +27,21 @@
"salt_left_side_percentage": {
"name": "Salt left side percentage"
},
"salt_left_side_time_remaining": {
"name": "Salt left side time remaining"
},
"salt_right_side_percentage": {
"name": "Salt right side percentage"
},
"salt_left_side_time_remaining": {
"name": "Salt left side time remaining"
},
"salt_right_side_time_remaining": {
"name": "Salt right side time remaining"
},
"wi_fi_strength": {
"name": "Wi-Fi strength",
"state": {
"high": "[%key:common::state::high%]",
"low": "[%key:common::state::low%]",
"medium": "[%key:common::state::medium%]"
"medium": "[%key:common::state::medium%]",
"high": "[%key:common::state::high%]"
}
}
}

View File

@@ -1,10 +1,10 @@
{
"entity": {
"sensor": {
"radiation_rate": {
"radiation_total": {
"default": "mdi:radioactive"
},
"radiation_total": {
"radiation_rate": {
"default": "mdi:radioactive"
},
"radon_concentration": {

View File

@@ -3,14 +3,14 @@
"name": "Aranet",
"bluetooth": [
{
"connectable": false,
"manufacturer_id": 1794,
"service_uuid": "f0cd1400-95da-4f4b-9ac8-aa55d312af0c"
"service_uuid": "f0cd1400-95da-4f4b-9ac8-aa55d312af0c",
"connectable": false
},
{
"connectable": false,
"manufacturer_id": 1794,
"service_uuid": "0000fce0-0000-1000-8000-00805f9b34fb"
"service_uuid": "0000fce0-0000-1000-8000-00805f9b34fb",
"connectable": false
}
],
"codeowners": ["@aschmitz", "@thecode", "@anrijs"],

View File

@@ -1,25 +1,25 @@
{
"config": {
"step": {
"user": {
"description": "[%key:component::bluetooth::config::step::user::description%]",
"data": {
"address": "[%key:common::config_flow::data::device%]"
}
},
"bluetooth_confirm": {
"description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]"
}
},
"flow_title": "{name}",
"error": {
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"integrations_disabled": "This device doesn't have integrations enabled. Please enable smart home integrations using the app and try again.",
"no_devices_found": "No unconfigured Aranet devices found.",
"outdated_version": "This device is using outdated firmware. Please update it to at least v1.2.0 and try again."
},
"error": {
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"flow_title": "{name}",
"step": {
"bluetooth_confirm": {
"description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]"
},
"user": {
"data": {
"address": "[%key:common::config_flow::data::device%]"
},
"description": "[%key:component::bluetooth::config::step::user::description%]"
}
}
},
"entity": {
@@ -28,8 +28,8 @@
"state": {
"error": "[%key:common::state::error%]",
"green": "Green",
"red": "Red",
"yellow": "Yellow"
"yellow": "Yellow",
"red": "Red"
}
}
}

View File

@@ -1,19 +1,19 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
"step": {
"user": {
"description": "Set up your Arve device",
"data": {
"access_token": "Arve token",
"client_secret": "Arve customer token"
}
}
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"step": {
"user": {
"data": {
"access_token": "Arve token",
"client_secret": "Arve customer token"
},
"description": "Set up your Arve device"
}
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
}
},
"entity": {

View File

@@ -1,28 +1,28 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]",
"unique_id_mismatch": "The user identifier does not match the previous identifier"
"step": {
"user": {
"data": {
"email": "[%key:common::config_flow::data::email%]",
"password": "[%key:common::config_flow::data::password%]"
}
},
"reauth_confirm": {
"data": {
"email": "[%key:common::config_flow::data::email%]",
"password": "[%key:common::config_flow::data::password%]"
}
}
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"step": {
"reauth_confirm": {
"data": {
"email": "[%key:common::config_flow::data::email%]",
"password": "[%key:common::config_flow::data::password%]"
}
},
"user": {
"data": {
"email": "[%key:common::config_flow::data::email%]",
"password": "[%key:common::config_flow::data::password%]"
}
}
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]",
"unique_id_mismatch": "The user identifier does not match the previous identifier"
}
},
"entity": {

View File

@@ -15,8 +15,8 @@
"vad_sensitivity": {
"name": "Finished speaking detection",
"state": {
"aggressive": "Aggressive",
"default": "Default",
"aggressive": "Aggressive",
"relaxed": "Relaxed"
}
}
@@ -24,14 +24,14 @@
},
"issues": {
"assist_in_progress_deprecated": {
"title": "{integration_name} in progress binary sensors are deprecated",
"fix_flow": {
"step": {
"confirm_disable_entity": {
"description": "The {integration_name} in progress binary sensor `{entity_id}` is deprecated.\n\nMigrate your configuration to use the corresponding `{assist_satellite_domain}` entity and then click SUBMIT to disable the in progress binary sensor and fix this issue."
}
}
},
"title": "{integration_name} in progress binary sensors are deprecated"
}
}
}
}

View File

@@ -8,11 +8,11 @@
"announce": {
"service": "mdi:bullhorn"
},
"ask_question": {
"service": "mdi:microphone-question"
},
"start_conversation": {
"service": "mdi:forum"
},
"ask_question": {
"service": "mdi:microphone-question"
}
}
}

View File

@@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/assist_satellite",
"integration_type": "entity",
"quality_scale": "internal",
"requirements": ["hassil==3.3.0"]
"requirements": ["hassil==3.2.0"]
}

View File

@@ -1,12 +1,93 @@
{
"title": "Assist satellite",
"entity_component": {
"_": {
"name": "Assist satellite",
"state": {
"idle": "[%key:common::state::idle%]",
"listening": "Listening",
"processing": "Processing",
"responding": "Responding"
"responding": "Responding",
"processing": "Processing"
}
}
},
"services": {
"announce": {
"name": "Announce",
"description": "Lets a satellite announce a message.",
"fields": {
"message": {
"name": "Message",
"description": "The message to announce."
},
"media_id": {
"name": "Media ID",
"description": "The media ID to announce instead of using text-to-speech."
},
"preannounce": {
"name": "Preannounce",
"description": "Play a sound before the announcement."
},
"preannounce_media_id": {
"name": "Preannounce media ID",
"description": "Custom media ID to play before the announcement."
}
}
},
"start_conversation": {
"name": "Start conversation",
"description": "Starts a conversation from a satellite.",
"fields": {
"start_message": {
"name": "Message",
"description": "The message to start with."
},
"start_media_id": {
"name": "Media ID",
"description": "The media ID to start with instead of using text-to-speech."
},
"extra_system_prompt": {
"name": "Extra system prompt",
"description": "Provide background information to the AI about the request."
},
"preannounce": {
"name": "Preannounce",
"description": "Play a sound before the start message or media."
},
"preannounce_media_id": {
"name": "Preannounce media ID",
"description": "Custom media ID to play before the start message or media."
}
}
},
"ask_question": {
"name": "Ask question",
"description": "Asks a question and gets the user's response.",
"fields": {
"entity_id": {
"name": "Entity",
"description": "Assist satellite entity to ask the question on."
},
"question": {
"name": "Question",
"description": "The question to ask."
},
"question_media_id": {
"name": "Question media ID",
"description": "The media ID of the question to use instead of text-to-speech."
},
"preannounce": {
"name": "Preannounce",
"description": "Play a sound before the start message or media."
},
"preannounce_media_id": {
"name": "Preannounce media ID",
"description": "Custom media ID to play before the start message or media."
},
"answers": {
"name": "Answers",
"description": "Possible answers to the question."
}
}
}
},
@@ -17,86 +98,5 @@
"sentences": "Sentences"
}
}
},
"services": {
"announce": {
"description": "Lets a satellite announce a message.",
"fields": {
"media_id": {
"description": "The media ID to announce instead of using text-to-speech.",
"name": "Media ID"
},
"message": {
"description": "The message to announce.",
"name": "Message"
},
"preannounce": {
"description": "Play a sound before the announcement.",
"name": "Preannounce"
},
"preannounce_media_id": {
"description": "Custom media ID to play before the announcement.",
"name": "Preannounce media ID"
}
},
"name": "Announce"
},
"ask_question": {
"description": "Asks a question and gets the user's response.",
"fields": {
"answers": {
"description": "Possible answers to the question.",
"name": "Answers"
},
"entity_id": {
"description": "Assist satellite entity to ask the question on.",
"name": "Entity"
},
"preannounce": {
"description": "Play a sound before the start message or media.",
"name": "Preannounce"
},
"preannounce_media_id": {
"description": "Custom media ID to play before the start message or media.",
"name": "Preannounce media ID"
},
"question": {
"description": "The question to ask.",
"name": "Question"
},
"question_media_id": {
"description": "The media ID of the question to use instead of text-to-speech.",
"name": "Question media ID"
}
},
"name": "Ask question"
},
"start_conversation": {
"description": "Starts a conversation from a satellite.",
"fields": {
"extra_system_prompt": {
"description": "Provide background information to the AI about the request.",
"name": "Extra system prompt"
},
"preannounce": {
"description": "Play a sound before the start message or media.",
"name": "Preannounce"
},
"preannounce_media_id": {
"description": "Custom media ID to play before the start message or media.",
"name": "Preannounce media ID"
},
"start_media_id": {
"description": "The media ID to start with instead of using text-to-speech.",
"name": "Media ID"
},
"start_message": {
"description": "The message to start with.",
"name": "Message"
}
},
"name": "Start conversation"
}
},
"title": "Assist satellite"
}
}

View File

@@ -1,23 +1,20 @@
{
"entity": {
"sensor": {
"cpu_core_usage": {
"default": "mdi:cpu-32-bit"
},
"cpu_usage": {
"default": "mdi:cpu-32-bit"
},
"devices_connected": {
"default": "mdi:router-network"
},
"download": {
"default": "mdi:download"
},
"download_speed": {
"default": "mdi:download-network"
},
"load_avg_15m": {
"default": "mdi:cpu-32-bit"
"upload_speed": {
"default": "mdi:upload-network"
},
"download": {
"default": "mdi:download"
},
"upload": {
"default": "mdi:upload"
},
"load_avg_1m": {
"default": "mdi:cpu-32-bit"
@@ -25,20 +22,23 @@
"load_avg_5m": {
"default": "mdi:cpu-32-bit"
},
"memory_free": {
"default": "mdi:memory"
"load_avg_15m": {
"default": "mdi:cpu-32-bit"
},
"cpu_usage": {
"default": "mdi:cpu-32-bit"
},
"cpu_core_usage": {
"default": "mdi:cpu-32-bit"
},
"memory_usage": {
"default": "mdi:memory"
},
"memory_used": {
"memory_free": {
"default": "mdi:memory"
},
"upload": {
"default": "mdi:upload"
},
"upload_speed": {
"default": "mdi:upload-network"
"memory_used": {
"default": "mdi:memory"
}
}
}

View File

@@ -1,8 +1,26 @@
{
"config": {
"abort": {
"invalid_unique_id": "Impossible to determine a valid unique ID for the device",
"no_unique_id": "A device without a valid unique ID is already configured. Configuration of multiple instances is not possible"
"step": {
"user": {
"description": "Set required parameter to connect to your router",
"data": {
"host": "[%key:common::config_flow::data::host%]",
"username": "[%key:common::config_flow::data::username%]",
"password": "[%key:common::config_flow::data::password%]",
"ssh_key": "Path to your SSH key file (instead of password)",
"protocol": "Communication protocol to use",
"port": "Port (leave empty for protocol default)"
},
"data_description": {
"host": "The hostname or IP address of your ASUSWRT router."
}
},
"legacy": {
"description": "Set required parameters to connect to your router",
"data": {
"mode": "Router operating mode"
}
}
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
@@ -12,91 +30,9 @@
"ssh_not_file": "SSH key file not found",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"step": {
"legacy": {
"data": {
"mode": "Router operating mode"
},
"description": "Set required parameters to connect to your router"
},
"user": {
"data": {
"host": "[%key:common::config_flow::data::host%]",
"password": "[%key:common::config_flow::data::password%]",
"port": "Port (leave empty for protocol default)",
"protocol": "Communication protocol to use",
"ssh_key": "Path to your SSH key file (instead of password)",
"username": "[%key:common::config_flow::data::username%]"
},
"data_description": {
"host": "The hostname or IP address of your ASUSWRT router."
},
"description": "Set required parameter to connect to your router"
}
}
},
"entity": {
"sensor": {
"5ghz_2_temperature": {
"name": "5GHz temperature (Radio 2)"
},
"5ghz_temperature": {
"name": "5GHz temperature"
},
"6ghz_temperature": {
"name": "6GHz temperature"
},
"24ghz_temperature": {
"name": "2.4GHz temperature"
},
"cpu_core_usage": {
"name": "CPU core {core_id} usage"
},
"cpu_temperature": {
"name": "CPU temperature"
},
"cpu_usage": {
"name": "CPU usage"
},
"devices_connected": {
"name": "Devices connected"
},
"download": {
"name": "Download"
},
"download_speed": {
"name": "Download speed"
},
"last_boot": {
"name": "Last boot"
},
"load_avg_15m": {
"name": "Average load (15 min)"
},
"load_avg_1m": {
"name": "Average load (1 min)"
},
"load_avg_5m": {
"name": "Average load (5 min)"
},
"memory_free": {
"name": "Memory free"
},
"memory_usage": {
"name": "Memory usage"
},
"memory_used": {
"name": "Memory used"
},
"upload": {
"name": "Upload"
},
"upload_speed": {
"name": "Upload speed"
},
"uptime": {
"name": "Uptime"
}
"abort": {
"invalid_unique_id": "Impossible to determine a valid unique ID for the device",
"no_unique_id": "A device without a valid unique ID is already configured. Configuration of multiple instances is not possible"
}
},
"options": {
@@ -104,19 +40,83 @@
"init": {
"data": {
"consider_home": "Seconds to wait before considering a device away",
"dnsmasq": "The location of the dnsmasq.leases file in the router",
"track_unknown": "Track unknown / unnamed devices",
"interface": "The interface that you want statistics from (e.g. eth0, eth1 etc)",
"require_ip": "Devices must have IP (for access point mode)",
"track_unknown": "Track unknown / unnamed devices"
"dnsmasq": "The location of the dnsmasq.leases file in the router",
"require_ip": "Devices must have IP (for access point mode)"
}
}
}
},
"entity": {
"sensor": {
"devices_connected": {
"name": "Devices connected"
},
"download_speed": {
"name": "Download speed"
},
"upload_speed": {
"name": "Upload speed"
},
"download": {
"name": "Download"
},
"upload": {
"name": "Upload"
},
"load_avg_1m": {
"name": "Average load (1 min)"
},
"load_avg_5m": {
"name": "Average load (5 min)"
},
"load_avg_15m": {
"name": "Average load (15 min)"
},
"24ghz_temperature": {
"name": "2.4GHz temperature"
},
"5ghz_temperature": {
"name": "5GHz temperature"
},
"cpu_temperature": {
"name": "CPU temperature"
},
"5ghz_2_temperature": {
"name": "5GHz temperature (Radio 2)"
},
"6ghz_temperature": {
"name": "6GHz temperature"
},
"cpu_usage": {
"name": "CPU usage"
},
"cpu_core_usage": {
"name": "CPU core {core_id} usage"
},
"memory_usage": {
"name": "Memory usage"
},
"memory_free": {
"name": "Memory free"
},
"memory_used": {
"name": "Memory used"
},
"last_boot": {
"name": "Last boot"
},
"uptime": {
"name": "Uptime"
}
}
},
"selector": {
"protocols": {
"options": {
"http": "HTTP",
"https": "HTTPS",
"http": "HTTP",
"ssh": "SSH",
"telnet": "Telnet"
}

View File

@@ -1,23 +1,23 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"unauthorized": "Pairing denied, check device for auth request"
},
"step": {
"user": {
"description": "Connect to the device",
"data": {
"host": "[%key:common::config_flow::data::host%]",
"port": "[%key:common::config_flow::data::port%]"
},
"data_description": {
"host": "The hostname or IP address of the Atag device."
},
"description": "Connect to the device"
}
}
},
"error": {
"unauthorized": "Pairing denied, check device for auth request",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
}
}
}

View File

@@ -1,33 +1,39 @@
{
"issues": {
"yale_brand_migration": {
"title": "Yale Home has a new integration",
"description": "Add the [Yale integration]({migrate_url}), and remove the August integration as soon as possible to avoid an interruption in service. The Yale Home brand will stop working with the August integration soon and will be removed in a future release."
}
},
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
"authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]",
"missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]",
"missing_credentials": "[%key:common::config_flow::abort::oauth2_missing_credentials%]",
"no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]",
"oauth_error": "[%key:common::config_flow::abort::oauth2_error%]",
"oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]",
"oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]",
"oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]",
"reauth_invalid_user": "Reauthenticate must use the same account.",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]",
"user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]"
},
"create_entry": {
"default": "[%key:common::config_flow::create_entry::authenticated%]"
},
"step": {
"pick_implementation": {
"title": "[%key:common::config_flow::title::oauth2_pick_implementation%]",
"data": {
"implementation": "[%key:common::config_flow::data::implementation%]"
},
"data_description": {
"implementation": "[%key:common::config_flow::description::implementation%]"
},
"title": "[%key:common::config_flow::title::oauth2_pick_implementation%]"
}
}
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
"oauth_error": "[%key:common::config_flow::abort::oauth2_error%]",
"missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]",
"missing_credentials": "[%key:common::config_flow::abort::oauth2_missing_credentials%]",
"authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]",
"no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]",
"user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]",
"oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]",
"oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]",
"oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]",
"reauth_invalid_user": "Reauthenticate must use the same account."
},
"create_entry": {
"default": "[%key:common::config_flow::create_entry::authenticated%]"
}
},
"entity": {
@@ -49,6 +55,11 @@
"name": "[%key:component::camera::title%]"
}
},
"sensor": {
"operator": {
"name": "Operator"
}
},
"event": {
"doorbell": {
"state_attributes": {
@@ -68,17 +79,6 @@
}
}
}
},
"sensor": {
"operator": {
"name": "Operator"
}
}
},
"issues": {
"yale_brand_migration": {
"description": "Add the [Yale integration]({migrate_url}), and remove the August integration as soon as possible to avoid an interruption in service. The Yale Home brand will stop working with the August integration soon and will be removed in a future release.",
"title": "Yale Home has a new integration"
}
}
}

View File

@@ -1,18 +1,28 @@
{
"title": "NOAA Aurora Sensor",
"config": {
"step": {
"user": {
"data": {
"name": "[%key:common::config_flow::data::name%]",
"longitude": "[%key:common::config_flow::data::longitude%]",
"latitude": "[%key:common::config_flow::data::latitude%]"
}
}
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_service%]"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
}
},
"options": {
"step": {
"user": {
"init": {
"data": {
"latitude": "[%key:common::config_flow::data::latitude%]",
"longitude": "[%key:common::config_flow::data::longitude%]",
"name": "[%key:common::config_flow::data::name%]"
"forecast_threshold": "Threshold (%)"
}
}
}
@@ -28,15 +38,5 @@
"name": "Visibility"
}
}
},
"options": {
"step": {
"init": {
"data": {
"forecast_threshold": "Threshold (%)"
}
}
}
},
"title": "NOAA Aurora Sensor"
}
}

View File

@@ -1,11 +1,11 @@
{
"entity": {
"sensor": {
"alarm": {
"default": "mdi:alert-octagon"
},
"r_iso": {
"default": "mdi:omega"
},
"alarm": {
"default": "mdi:alert-octagon"
}
}
}

View File

@@ -1,34 +1,37 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"no_serial_ports": "No com ports found. The integration needs a valid RS485 device to communicate."
"step": {
"user": {
"description": "The inverter must be connected via an RS485 adaptor, please select serial port and the inverter's address as configured on the LCD panel",
"data": {
"port": "RS485 or USB-RS485 adaptor port",
"address": "Inverter address"
}
}
},
"error": {
"cannot_connect": "Unable to connect, please check serial port, address, electrical connection and that inverter is on (in daylight)",
"cannot_open_serial_port": "Cannot open serial port, please check and try again",
"invalid_serial_port": "Serial port is not a valid device or could not be opened"
"invalid_serial_port": "Serial port is not a valid device or could not be opened",
"cannot_open_serial_port": "Cannot open serial port, please check and try again"
},
"step": {
"user": {
"data": {
"address": "Inverter address",
"port": "RS485 or USB-RS485 adaptor port"
},
"description": "The inverter must be connected via an RS485 adaptor, please select serial port and the inverter's address as configured on the LCD panel"
}
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"no_serial_ports": "No com ports found. The integration needs a valid RS485 device to communicate."
}
},
"entity": {
"sensor": {
"alarm": {
"name": "Alarm status"
"grid_voltage": {
"name": "Grid voltage"
},
"grid_current": {
"name": "Grid current"
},
"grid_voltage": {
"name": "Grid voltage"
"alarm": {
"name": "Alarm status"
},
"power_output": {
"name": "Power output"
},
"i_leak_dcdc": {
"name": "DC-DC leak current"
@@ -36,14 +39,11 @@
"i_leak_inverter": {
"name": "Inverter leak current"
},
"power_output": {
"name": "Power output"
"total_energy": {
"name": "Total energy"
},
"r_iso": {
"name": "Isolation resistance"
},
"total_energy": {
"name": "Total energy"
}
}
}

View File

@@ -1,38 +1,38 @@
{
"entity": {
"sensor": {
"billing_cycle_length": {
"default": "mdi:calendar-range"
},
"billing_cycle_remaining": {
"default": "mdi:calendar-clock"
},
"data_used": {
"default": "mdi:network"
},
"downloaded": {
"default": "mdi:download-network"
},
"international_calls": {
"default": "mdi:phone-plus"
"uploaded": {
"default": "mdi:upload-network"
},
"national_calls": {
"default": "mdi:phone"
},
"mobile_calls": {
"default": "mdi:phone"
},
"national_calls": {
"international_calls": {
"default": "mdi:phone-plus"
},
"sms_sent": {
"default": "mdi:message-processing"
},
"voicemail_calls": {
"default": "mdi:phone"
},
"other_calls": {
"default": "mdi:phone"
},
"sms_sent": {
"default": "mdi:message-processing"
"billing_cycle_length": {
"default": "mdi:calendar-range"
},
"uploaded": {
"default": "mdi:upload-network"
},
"voicemail_calls": {
"default": "mdi:phone"
"billing_cycle_remaining": {
"default": "mdi:calendar-clock"
}
}
}

View File

@@ -1,86 +1,86 @@
{
"config": {
"step": {
"user": {
"data": {
"username": "[%key:common::config_flow::data::username%]",
"password": "[%key:common::config_flow::data::password%]"
}
},
"service": {
"title": "Select Services",
"data": {
"services": "Services"
}
},
"reauth_confirm": {
"title": "[%key:common::config_flow::title::reauth%]",
"description": "Update password for {username}",
"data": {
"password": "[%key:common::config_flow::data::password%]"
}
}
},
"error": {
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
"no_services_found": "No services were found for this account",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
}
},
"options": {
"step": {
"reauth_confirm": {
"init": {
"title": "[%key:component::aussie_broadband::config::step::service::title%]",
"data": {
"password": "[%key:common::config_flow::data::password%]"
},
"description": "Update password for {username}",
"title": "[%key:common::config_flow::title::reauth%]"
},
"service": {
"data": {
"services": "Services"
},
"title": "Select Services"
},
"user": {
"data": {
"password": "[%key:common::config_flow::data::password%]",
"username": "[%key:common::config_flow::data::username%]"
"services": "[%key:component::aussie_broadband::config::step::service::data::services%]"
}
}
},
"abort": {
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
}
},
"entity": {
"sensor": {
"billing_cycle_length": {
"name": "Billing cycle length"
},
"billing_cycle_remaining": {
"name": "Billing cycle remaining"
},
"data_used": {
"name": "Data used"
},
"downloaded": {
"name": "Downloaded"
},
"international_calls": {
"name": "International calls"
},
"mobile_calls": {
"name": "Mobile calls"
"uploaded": {
"name": "Uploaded"
},
"national_calls": {
"name": "National calls"
},
"other_calls": {
"name": "Other calls"
"mobile_calls": {
"name": "Mobile calls"
},
"international_calls": {
"name": "International calls"
},
"sms_sent": {
"name": "SMS sent"
},
"uploaded": {
"name": "Uploaded"
},
"voicemail_calls": {
"name": "Voicemail calls"
}
}
},
"options": {
"abort": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"step": {
"init": {
"data": {
"services": "[%key:component::aussie_broadband::config::step::service::data::services%]"
},
"title": "[%key:component::aussie_broadband::config::step::service::title%]"
},
"other_calls": {
"name": "Other calls"
},
"billing_cycle_length": {
"name": "Billing cycle length"
},
"billing_cycle_remaining": {
"name": "Billing cycle remaining"
}
}
}

View File

@@ -1,47 +1,47 @@
{
"entity": {
"sensor": {
"charged_month": {
"default": "mdi:battery-arrow-up"
},
"charged_today": {
"default": "mdi:battery-arrow-up"
},
"charged_total": {
"default": "mdi:battery-arrow-up"
},
"discharged_month": {
"default": "mdi:battery-arrow-down"
},
"discharged_today": {
"default": "mdi:battery-arrow-down"
},
"discharged_total": {
"default": "mdi:battery-arrow-down"
},
"energy_production_month": {
"default": "mdi:solar-power"
"power_production": {
"default": "mdi:flash"
},
"energy_production_today": {
"default": "mdi:solar-power"
},
"energy_production_month": {
"default": "mdi:solar-power"
},
"energy_production_total": {
"default": "mdi:solar-power"
},
"flow_now": {
"out_ac_power": {
"default": "mdi:flash"
},
"out_ac_energy_total": {
"default": "mdi:solar-power"
},
"out_ac_power": {
"default": "mdi:flash"
},
"power_production": {
"flow_now": {
"default": "mdi:flash"
},
"state_of_charge": {
"default": "mdi:home-battery"
},
"discharged_today": {
"default": "mdi:battery-arrow-down"
},
"discharged_month": {
"default": "mdi:battery-arrow-down"
},
"discharged_total": {
"default": "mdi:battery-arrow-down"
},
"charged_today": {
"default": "mdi:battery-arrow-up"
},
"charged_month": {
"default": "mdi:battery-arrow-up"
},
"charged_total": {
"default": "mdi:battery-arrow-up"
}
}
}

View File

@@ -1,25 +1,8 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]"
},
"step": {
"reauth_confirm": {
"data": {
"password": "[%key:common::config_flow::data::password%]"
},
"data_description": {
"password": "[%key:component::autarco::config::step::user::data_description::password%]"
},
"description": "The password for {email} is no longer valid.",
"title": "[%key:common::config_flow::title::reauth%]"
},
"user": {
"description": "Connect to your Autarco account, to get information about your sites.",
"data": {
"email": "[%key:common::config_flow::data::email%]",
"password": "[%key:common::config_flow::data::password%]"
@@ -27,54 +10,71 @@
"data_description": {
"email": "The email address of your Autarco account.",
"password": "The password of your Autarco account."
}
},
"reauth_confirm": {
"title": "[%key:common::config_flow::title::reauth%]",
"description": "The password for {email} is no longer valid.",
"data": {
"password": "[%key:common::config_flow::data::password%]"
},
"description": "Connect to your Autarco account, to get information about your sites."
"data_description": {
"password": "[%key:component::autarco::config::step::user::data_description::password%]"
}
}
},
"error": {
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
}
},
"entity": {
"sensor": {
"charged_month": {
"name": "Charged month"
"flow_now": {
"name": "Flow now"
},
"charged_today": {
"name": "Charged today"
},
"charged_total": {
"name": "Charged total"
},
"discharged_month": {
"name": "Discharged month"
"state_of_charge": {
"name": "State of charge"
},
"discharged_today": {
"name": "Discharged today"
},
"discharged_month": {
"name": "Discharged month"
},
"discharged_total": {
"name": "Discharged total"
},
"energy_production_month": {
"name": "Energy production month"
"charged_today": {
"name": "Charged today"
},
"energy_production_today": {
"name": "Energy production today"
"charged_month": {
"name": "Charged month"
},
"energy_production_total": {
"name": "Energy production total"
},
"flow_now": {
"name": "Flow now"
},
"out_ac_energy_total": {
"name": "Energy AC output total"
},
"out_ac_power": {
"name": "Power AC output"
"charged_total": {
"name": "Charged total"
},
"power_production": {
"name": "Power production"
},
"state_of_charge": {
"name": "State of charge"
"energy_production_today": {
"name": "Energy production today"
},
"energy_production_month": {
"name": "Energy production month"
},
"energy_production_total": {
"name": "Energy production total"
},
"out_ac_power": {
"name": "Power AC output"
},
"out_ac_energy_total": {
"name": "Energy AC output total"
}
}
}

View File

@@ -1,52 +1,52 @@
{
"exceptions": {
"user_not_found": {
"message": "User not found"
},
"username_already_exists": {
"message": "Username \"{username}\" already exists"
},
"username_not_normalized": {
"message": "Username \"{new_username}\" is not normalized. Please make sure the username is lowercase and does not contain any whitespace."
}
},
"issues": {
"homeassistant_provider_not_normalized_usernames": {
"description": "The Home Assistant auth provider is running in legacy mode because we detected not normalized usernames. The legacy mode is deprecated and will be removed. Please change the following usernames:\n\n{usernames}\n\nNormalized usernames are case folded (lower case) and stripped of whitespaces.",
"title": "Not normalized usernames detected"
}
},
"mfa_setup": {
"totp": {
"title": "TOTP",
"step": {
"init": {
"title": "Set up two-factor authentication using TOTP",
"description": "To activate two-factor authentication using time-based one-time passwords, scan the QR code with your authentication app. If you don't have one, we recommend either [Google Authenticator]({google_authenticator_url}) or [Authy]({authy_url}).\n\n{qr_code}\n\nAfter scanning the code, enter the six-digit code from your app to verify the setup. If you have problems scanning the QR code, do a manual setup with code **`{code}`**."
}
},
"error": {
"invalid_code": "Invalid code, please try again. If you get this error consistently, please make sure the clock of your Home Assistant system is accurate."
}
},
"notify": {
"title": "Notify one-time password",
"step": {
"init": {
"title": "Set up one-time password delivered by notify component",
"description": "Please select one of the notification services:"
},
"setup": {
"title": "Verify setup",
"description": "A one-time password has been sent via **notify.{notify_service}**. Please enter it below:"
}
},
"abort": {
"no_available_service": "No notification services available."
},
"error": {
"invalid_code": "Invalid code, please try again."
},
"step": {
"init": {
"description": "Please select one of the notification services:",
"title": "Set up one-time password delivered by notify component"
},
"setup": {
"description": "A one-time password has been sent via **notify.{notify_service}**. Please enter it below:",
"title": "Verify setup"
}
},
"title": "Notify one-time password"
}
}
},
"exceptions": {
"username_already_exists": {
"message": "Username \"{username}\" already exists"
},
"totp": {
"error": {
"invalid_code": "Invalid code, please try again. If you get this error consistently, please make sure the clock of your Home Assistant system is accurate."
},
"step": {
"init": {
"description": "To activate two-factor authentication using time-based one-time passwords, scan the QR code with your authentication app. If you don't have one, we recommend either [Google Authenticator]({google_authenticator_url}) or [Authy]({authy_url}).\n\n{qr_code}\n\nAfter scanning the code, enter the six-digit code from your app to verify the setup. If you have problems scanning the QR code, do a manual setup with code **`{code}`**.",
"title": "Set up two-factor authentication using TOTP"
}
},
"title": "TOTP"
"username_not_normalized": {
"message": "Username \"{new_username}\" is not normalized. Please make sure the username is lowercase and does not contain any whitespace."
},
"user_not_found": {
"message": "User not found"
}
},
"issues": {
"homeassistant_provider_not_normalized_usernames": {
"title": "Not normalized usernames detected",
"description": "The Home Assistant auth provider is running in legacy mode because we detected not normalized usernames. The legacy mode is deprecated and will be removed. Please change the following usernames:\n\n{usernames}\n\nNormalized usernames are case folded (lower case) and stripped of whitespaces."
}
}
}

View File

@@ -9,8 +9,11 @@
}
},
"services": {
"reload": {
"service": "mdi:reload"
"turn_on": {
"service": "mdi:robot"
},
"turn_off": {
"service": "mdi:robot-off"
},
"toggle": {
"service": "mdi:robot"
@@ -18,11 +21,8 @@
"trigger": {
"service": "mdi:robot"
},
"turn_off": {
"service": "mdi:robot-off"
},
"turn_on": {
"service": "mdi:robot"
"reload": {
"service": "mdi:reload"
}
}
}

View File

@@ -2,6 +2,7 @@
"common": {
"validation_failed_title": "Automation {name} failed to set up"
},
"title": "Automation",
"entity_component": {
"_": {
"name": "[%key:component::automation::title%]",
@@ -36,70 +37,69 @@
},
"issues": {
"service_not_found": {
"title": "{name} uses an unknown action",
"fix_flow": {
"step": {
"confirm": {
"description": "The automation \"{name}\" (`{entity_id}`) has an unknown action: `{service}`.\n\nThis error prevents the automation from running correctly. Maybe this action is no longer available, or perhaps a typo caused it.\n\nTo fix this error, [edit the automation]({edit}) and remove this action.\n\nSelect **Submit** below to confirm you have fixed this automation.",
"title": "[%key:component::automation::issues::service_not_found::title%]"
"title": "[%key:component::automation::issues::service_not_found::title%]",
"description": "The automation \"{name}\" (`{entity_id}`) has an unknown action: `{service}`.\n\nThis error prevents the automation from running correctly. Maybe this action is no longer available, or perhaps a typo caused it.\n\nTo fix this error, [edit the automation]({edit}) and remove this action.\n\nSelect **Submit** below to confirm you have fixed this automation."
}
}
},
"title": "{name} uses an unknown action"
}
},
"validation_failed_actions": {
"description": "The automation \"{name}\" (`{entity_id}`) is not active because its actions could not be set up.\n\nError:`{error}`.\n\nTo fix this error, [edit the automation]({edit}) to correct it, then save and reload the automation configuration.",
"title": "[%key:component::automation::common::validation_failed_title%]"
"title": "[%key:component::automation::common::validation_failed_title%]",
"description": "The automation \"{name}\" (`{entity_id}`) is not active because its actions could not be set up.\n\nError:`{error}`.\n\nTo fix this error, [edit the automation]({edit}) to correct it, then save and reload the automation configuration."
},
"validation_failed_blueprint": {
"description": "The blueprinted automation \"{name}\" (`{entity_id}`) failed to set up.\n\nError:`{error}`.\n\nTo fix this error, [edit the automation]({edit}) to correct it, then save and reload the automation configuration.",
"title": "[%key:component::automation::common::validation_failed_title%]"
"title": "[%key:component::automation::common::validation_failed_title%]",
"description": "The blueprinted automation \"{name}\" (`{entity_id}`) failed to set up.\n\nError:`{error}`.\n\nTo fix this error, [edit the automation]({edit}) to correct it, then save and reload the automation configuration."
},
"validation_failed_conditions": {
"description": "The automation \"{name}\" (`{entity_id}`) is not active because its conditions could not be set up.\n\nError:`{error}`.\n\nTo fix this error, [edit the automation]({edit}) to correct it, then save and reload the automation configuration.",
"title": "[%key:component::automation::common::validation_failed_title%]"
"title": "[%key:component::automation::common::validation_failed_title%]",
"description": "The automation \"{name}\" (`{entity_id}`) is not active because its conditions could not be set up.\n\nError:`{error}`.\n\nTo fix this error, [edit the automation]({edit}) to correct it, then save and reload the automation configuration."
},
"validation_failed_schema": {
"description": "The automation \"{name}\" (`{entity_id}`) is not active because the configuration has errors.\n\nError:`{error}`.\n\nTo fix this error, [edit the automation]({edit}) to correct it, then save and reload the automation configuration.",
"title": "[%key:component::automation::common::validation_failed_title%]"
"title": "[%key:component::automation::common::validation_failed_title%]",
"description": "The automation \"{name}\" (`{entity_id}`) is not active because the configuration has errors.\n\nError:`{error}`.\n\nTo fix this error, [edit the automation]({edit}) to correct it, then save and reload the automation configuration."
},
"validation_failed_triggers": {
"description": "The automation \"{name}\" (`{entity_id}`) is not active because its triggers could not be set up.\n\nError:`{error}`.\n\nTo fix this error, [edit the automation]({edit}) to correct it, then save and reload the automation configuration.",
"title": "[%key:component::automation::common::validation_failed_title%]"
"title": "[%key:component::automation::common::validation_failed_title%]",
"description": "The automation \"{name}\" (`{entity_id}`) is not active because its triggers could not be set up.\n\nError:`{error}`.\n\nTo fix this error, [edit the automation]({edit}) to correct it, then save and reload the automation configuration."
}
},
"services": {
"reload": {
"description": "Reloads the automation configuration.",
"name": "[%key:common::action::reload%]"
},
"toggle": {
"description": "Toggles (enable / disable) an automation.",
"name": "[%key:common::action::toggle%]"
},
"trigger": {
"description": "Triggers the actions of an automation.",
"fields": {
"skip_condition": {
"description": "Defines whether or not the conditions will be skipped.",
"name": "Skip conditions"
}
},
"name": "Trigger"
"turn_on": {
"name": "[%key:common::action::turn_on%]",
"description": "Enables an automation."
},
"turn_off": {
"name": "[%key:common::action::turn_off%]",
"description": "Disables an automation.",
"fields": {
"stop_actions": {
"description": "Stops currently running actions.",
"name": "Stop actions"
"name": "Stop actions",
"description": "Stops currently running actions."
}
},
"name": "[%key:common::action::turn_off%]"
}
},
"turn_on": {
"description": "Enables an automation.",
"name": "[%key:common::action::turn_on%]"
"toggle": {
"name": "[%key:common::action::toggle%]",
"description": "Toggles (enable / disable) an automation."
},
"trigger": {
"name": "Trigger",
"description": "Triggers the actions of an automation.",
"fields": {
"skip_condition": {
"name": "Skip conditions",
"description": "Defines whether or not the conditions will be skipped."
}
}
},
"reload": {
"name": "[%key:common::action::reload%]",
"description": "Reloads the automation configuration."
}
},
"title": "Automation"
}
}

View File

@@ -9,8 +9,8 @@
"requirements": ["python-awair==0.2.4"],
"zeroconf": [
{
"name": "awair*",
"type": "_http._tcp.local."
"type": "_http._tcp.local.",
"name": "awair*"
}
]
}

View File

@@ -1,29 +1,12 @@
{
"config": {
"abort": {
"already_configured_account": "[%key:common::config_flow::abort::already_configured_account%]",
"already_configured_device": "[%key:common::config_flow::abort::already_configured_device%]",
"no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]",
"unknown": "[%key:common::config_flow::error::unknown%]",
"unreachable": "[%key:common::config_flow::error::cannot_connect%]"
},
"error": {
"invalid_access_token": "[%key:common::config_flow::error::invalid_access_token%]",
"unknown": "[%key:common::config_flow::error::unknown%]",
"unreachable": "[%key:common::config_flow::error::cannot_connect%]"
},
"flow_title": "{model} ({device_id})",
"step": {
"cloud": {
"description": "You must register for an Awair developer access token at: {url}",
"data": {
"access_token": "[%key:common::config_flow::data::access_token%]",
"email": "[%key:common::config_flow::data::email%]"
},
"description": "You must register for an Awair developer access token at: {url}"
},
"discovery_confirm": {
"description": "Do you want to set up {model} ({device_id})?"
}
},
"local": {
"description": "Follow [these instructions]({url}) on how to enable the Awair Local API.\n\nSelect **Submit** when done."
@@ -35,31 +18,48 @@
}
},
"reauth_confirm": {
"description": "Please re-enter your Awair developer access token.",
"data": {
"access_token": "[%key:common::config_flow::data::access_token%]",
"email": "[%key:common::config_flow::data::email%]"
},
"description": "Please re-enter your Awair developer access token."
}
},
"discovery_confirm": {
"description": "Do you want to set up {model} ({device_id})?"
},
"user": {
"description": "Pick local for the best experience. Only use cloud if the device is not connected to the same network as Home Assistant, or if you have a legacy device.",
"menu_options": {
"cloud": "Connect via the cloud",
"local": "Connect locally (preferred)"
}
},
"description": "Pick local for the best experience. Only use cloud if the device is not connected to the same network as Home Assistant, or if you have a legacy device."
}
}
},
"error": {
"invalid_access_token": "[%key:common::config_flow::error::invalid_access_token%]",
"unknown": "[%key:common::config_flow::error::unknown%]",
"unreachable": "[%key:common::config_flow::error::cannot_connect%]"
},
"abort": {
"already_configured_account": "[%key:common::config_flow::abort::already_configured_account%]",
"already_configured_device": "[%key:common::config_flow::abort::already_configured_device%]",
"no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]",
"unknown": "[%key:common::config_flow::error::unknown%]",
"unreachable": "[%key:common::config_flow::error::cannot_connect%]"
},
"flow_title": "{model} ({device_id})"
},
"entity": {
"sensor": {
"dew_point": {
"name": "Dew point"
},
"score": {
"name": "Score"
},
"sound_level": {
"name": "Sound level"
},
"dew_point": {
"name": "Dew point"
}
}
}

View File

@@ -1,7 +1,21 @@
{
"config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
"step": {
"user": {
"data": {
"access_key_id": "Access key ID",
"secret_access_key": "Secret access key",
"bucket": "Bucket name",
"endpoint_url": "Endpoint URL"
},
"data_description": {
"access_key_id": "Access key ID to connect to AWS S3 API",
"secret_access_key": "Secret access key to connect to AWS S3 API",
"bucket": "Bucket must already exist and be writable by the provided credentials.",
"endpoint_url": "Endpoint URL provided to [Boto3 Session]({boto3_docs_url}). Region-specific [AWS S3 endpoints]({aws_s3_docs_url}) are available in their docs."
},
"title": "Add AWS S3 bucket"
}
},
"error": {
"cannot_connect": "[%key:component::aws_s3::exceptions::cannot_connect::message%]",
@@ -9,22 +23,8 @@
"invalid_credentials": "[%key:component::aws_s3::exceptions::invalid_credentials::message%]",
"invalid_endpoint_url": "Invalid endpoint URL. Please make sure it's a valid AWS S3 endpoint URL."
},
"step": {
"user": {
"data": {
"access_key_id": "Access key ID",
"bucket": "Bucket name",
"endpoint_url": "Endpoint URL",
"secret_access_key": "Secret access key"
},
"data_description": {
"access_key_id": "Access key ID to connect to AWS S3 API",
"bucket": "Bucket must already exist and be writable by the provided credentials.",
"endpoint_url": "Endpoint URL provided to [Boto3 Session]({boto3_docs_url}). Region-specific [AWS S3 endpoints]({aws_s3_docs_url}) are available in their docs.",
"secret_access_key": "Secret access key to connect to AWS S3 API"
},
"title": "Add AWS S3 bucket"
}
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
}
},
"exceptions": {

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