Compare commits

..

62 Commits

Author SHA1 Message Date
Martin Hjelmare
c11c2856be Fix mutable object as default 2025-10-28 15:10:02 +01:00
Martin Hjelmare
939464836a test_progress_step_done_abort 2025-10-28 14:54:15 +01:00
Martin Hjelmare
ae72e93ce9 Add test parameter and case comments 2025-10-28 14:54:15 +01:00
Martin Hjelmare
cb54b1e4a7 Fix data_entry_flow recursion 2025-10-28 14:54:15 +01:00
Martin Hjelmare
866b1b5406 Test chaining progress steps 2025-10-28 14:54:15 +01:00
Martin Hjelmare
7e5293a699 Test progress step 2025-10-28 14:54:14 +01:00
Luca Angemi
ce93de7fc6 Add google sheet get service (#150133)
Co-authored-by: Norbert Rittel <norbert@rittel.de>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2025-10-28 14:21:51 +01:00
steinmn
03f339b3a3 Fix Translation error in Home Connect "Add application credentials"-step (#155233) 2025-10-28 14:13:55 +01:00
Allen Porter
6cfeeea1ba Bump python-roborock to 3.7.0 (#155336) 2025-10-28 14:09:11 +01:00
Robert Resch
ccbdaabe74 Add some Ecovacs lifespans entities (#155238) 2025-10-28 13:22:40 +01:00
puddly
dd22c78d11 Migrate ZHA config entries to derive unique_id from the Zigbee EPID (#154489) 2025-10-28 13:11:42 +01:00
WardZhou
1a732accdd Add support for Thread Integration to Display Icons for IKEA TBRs (#155299) 2025-10-28 13:01:58 +01:00
Erwin Douna
59d663ee6e Add integration type to DSMR Reader (#155325) 2025-10-28 12:44:38 +01:00
Erwin Douna
2442a96c27 Portainer add integration type (#155324) 2025-10-28 12:44:06 +01:00
Erwin Douna
f69de99501 Add integration type to tado (#155327) 2025-10-28 12:43:23 +01:00
Brett Adams
8ce9238f7a Handle cpd_enabled error in Tessie (#155322) 2025-10-28 12:42:53 +01:00
OzGav
2fe697486d Fix volume level of Music Assistant group players (#155259)
Co-authored-by: Artur Pragacz <49985303+arturpragacz@users.noreply.github.com>
2025-10-28 12:41:35 +01:00
Erwin Douna
0bd25dc254 Add integration type to downloader (#155328) 2025-10-28 12:40:46 +01:00
Erwin Douna
ed6af953af Add integration type to melcloud (#155330) 2025-10-28 12:39:04 +01:00
Erwin Douna
84f65c3f77 Add integration type to fastdotcom (#155329) 2025-10-28 12:37:41 +01:00
Erwin Douna
77c024fcdd SMA add integration type (#155323) 2025-10-28 12:44:38 +02:00
Shay Levy
27570138e7 Fix Switcher ConfigEntry typing (#155320) 2025-10-28 10:34:51 +01:00
Robert Resch
96f84b2b99 Sort homeassistant json files (#155285) 2025-10-28 10:33:10 +01:00
Sab44
28bee6d1aa Fix unique IDs and migrate v1 entries (#155319) 2025-10-28 10:07:37 +01:00
Mike Degatano
c9d68ddd5c Add progress reporting for addon and core update entities (#153268)
Co-authored-by: Stefan Agner <stefan@agner.ch>
2025-10-28 08:54:02 +01:00
Fredrik Erlandsson
ac6dddc895 Daikin improve config flow dialog message (#155202)
Co-authored-by: Dave T <17680170+davet2001@users.noreply.github.com>
2025-10-28 00:02:15 -07:00
Samuel Xiao
f7e5dc7637 Add Presence Sensor support to Switchbot Cloud (#155309) 2025-10-28 07:33:21 +01:00
Michael Hansen
1a5f431485 Bump hassil to 3.3.0 (#155301) 2025-10-28 05:46:04 +01:00
Erwin Douna
faa04755e2 Portainer bugfix add button platform (#155305) 2025-10-27 21:53:10 +00:00
Åke Strandberg
76584161a6 Bump pymiele to v0.5.6 (#155266)
Co-authored-by: Josef Zweck <josef@zweck.dev>
Co-authored-by: Robert Resch <robert@resch.dev>
2025-10-27 21:45:28 +00:00
Shay Levy
103b121868 Enhance Switcher config flow tests (#155292) 2025-10-27 20:22:29 +01:00
epenet
76a6b3cea6 Do not exclude "repr" from motionblinds snapshots (#155271) 2025-10-27 20:41:05 +02:00
Michael Hansen
87e7fe6e37 Add custom (external) wake words (#152919) 2025-10-27 11:15:56 -07:00
G Johansson
c782489973 Fix Nord Pool sensor resolution for next/previous price (#155119) 2025-10-27 17:32:27 +00:00
Åke Strandberg
c9dbc1458c Set icon for myuplink DM sensor (#155274) 2025-10-27 18:17:28 +01:00
Robert Resch
d4a33611f0 Bump prettier to 3.6.2 (#155281) 2025-10-27 18:16:13 +01:00
mkmer
f028b7ab6e Bump AIOSomecomfort to 0.0.35 (#155265) 2025-10-27 18:13:33 +01:00
J. Diego Rodríguez Royo
86a9df761a Bump aiohomeconnect to version 0.23.0 (#155269) 2025-10-27 18:10:28 +01:00
Petro31
e3359fb62d Fix template entity preview when templates error (#154029)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2025-10-27 16:53:36 +01:00
Petro31
84065767d1 Validate template binary sensor auto off has trigger (#153953) 2025-10-27 16:53:20 +01:00
Åke Strandberg
e7c60f573d Dont expose garbage entity in myuplink (#155278) 2025-10-27 16:40:06 +01:00
Thomas55555
a59847309a Sort strings in Husqvarna Automower (#155275) 2025-10-27 16:29:54 +01:00
Thomas55555
3c8ac20881 Sort icons in Husqvarna Automower (#155276) 2025-10-27 16:29:03 +01:00
Erwin Douna
6394fdbc97 Add diagnostics to portainer (#153126)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2025-10-27 17:14:16 +02:00
epenet
a7a673d437 Use snapshot assertion in switcher_kis diagnostics test (#155273) 2025-10-27 17:11:56 +02:00
Ludovic BOUÉ
196d7bb8cf Add integration field to Matter water_heater_boost service (#155270) 2025-10-27 15:53:37 +01:00
Manu
ce5538e615 Refactor dynamic entity setup of Xbox integration (#155176) 2025-10-27 15:43:56 +01:00
epenet
6819b0ce5b Bump renault-api to 0.5.0 (#155263) 2025-10-27 15:42:54 +01:00
Petro31
91eb35d7cb Validate incorrect template trigger yaml (#153919) 2025-10-27 14:35:36 +01:00
Ville Skyttä
256615644c Update IQS dependency-transparency comment for huawei_lte (#155214) 2025-10-27 13:56:55 +01:00
Shay Levy
aff6cfb032 Set PARALLEL_UPDATES for Switcher (#155227) 2025-10-27 13:55:24 +01:00
DeerMaximum
a5d8c383c4 Add data description to flows for NINA (#155192) 2025-10-27 13:51:36 +01:00
Brandon Rothweiler
81df40e2b0 Update py-aosmith to 1.0.15 (#155169) 2025-10-27 13:51:06 +01:00
David Recordon
3e6ddda54e Improve Control4's initiation logging and exception handling (#155246) 2025-10-27 13:50:01 +01:00
Thomas55555
76c6b92910 Add remaining charging time to Husqvarna Automower (#154952) 2025-10-27 12:51:10 +01:00
Maikel Punie
f7db56a6b3 Remove dead code and fixed a typo (#155253) 2025-10-27 12:47:44 +02:00
Giovanni Cimolin da Silva
507645a60f Add support for tuya scene switches (#154821)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2025-10-27 11:47:13 +01:00
Marc Mueller
7c4406265a Update pytest warnings filter (#155252) 2025-10-27 11:43:37 +01:00
Manu
4e6bd48416 Abort add friend subentry flow for disabled config entry in PlayStation Network (#149784) 2025-10-27 11:19:11 +01:00
Erwin Douna
255b1efe81 Firefly III add budgets sensor (#155222) 2025-10-27 11:12:42 +01:00
Ludovic BOUÉ
afa5093d7a Update Matter boost duration description to specify units in seconds (#155185) 2025-10-27 09:48:23 +01:00
Jonathan Keslin
a43368675e Add thread and reaction support to Matrix (#147165)
Co-authored-by: Paarth Shah <mail@shahpaarth.com>
2025-10-27 09:21:28 +01:00
1441 changed files with 60448 additions and 57082 deletions

View File

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

24
.prettierrc.js Normal file
View File

@@ -0,0 +1,24 @@
/** @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 // Pyright is too pedantic for Home Assistant
"python.analysis.typeCheckingMode": "basic", "python.analysis.typeCheckingMode": "basic",
"[python]": { "[python]": {
"editor.defaultFormatter": "charliermarsh.ruff" "editor.defaultFormatter": "charliermarsh.ruff",
}, },
"[json][jsonc][yaml]": { "[json][jsonc][yaml]": {
"editor.defaultFormatter": "esbenp.prettier-vscode" "editor.defaultFormatter": "esbenp.prettier-vscode",
}, },
"json.schemas": [ "json.schemas": [
{ {
"fileMatch": ["homeassistant/components/*/manifest.json"], "fileMatch": ["homeassistant/components/*/manifest.json"],
// This value differs between working with devcontainer and locally, therefore this value should NOT be in sync! // 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",
} },
] ],
} }

View File

@@ -1,70 +1,70 @@
{ {
"config": { "config": {
"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)"
}
},
"reauth_confirm": {
"title": "[%key:component::abode::config::step::user::title%]",
"data": {
"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": { "abort": {
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" "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": {
"mfa": {
"data": {
"mfa_code": "MFA code (6-digits)"
},
"title": "Enter your MFA code for Abode"
},
"reauth_confirm": {
"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"
}
} }
}, },
"services": { "services": {
"capture_image": { "capture_image": {
"name": "Capture image",
"description": "Requests a new image capture from a camera device.", "description": "Requests a new image capture from a camera device.",
"fields": { "fields": {
"entity_id": { "entity_id": {
"name": "Entity", "description": "Entity ID of the camera to request an image from.",
"description": "Entity ID of the camera to request an image from." "name": "Entity"
} }
} },
"name": "Capture image"
}, },
"change_setting": { "change_setting": {
"name": "Change setting",
"description": "Changes an Abode system setting.", "description": "Changes an Abode system setting.",
"fields": { "fields": {
"setting": { "setting": {
"name": "Setting", "description": "Setting to change.",
"description": "Setting to change." "name": "Setting"
}, },
"value": { "value": {
"name": "Value", "description": "Value of the setting.",
"description": "Value of the setting." "name": "Value"
} }
} },
"name": "Change setting"
}, },
"trigger_automation": { "trigger_automation": {
"name": "Trigger automation",
"description": "Triggers an Abode automation.", "description": "Triggers an Abode automation.",
"fields": { "fields": {
"entity_id": { "entity_id": {
"name": "Entity", "description": "Entity ID of the automation to trigger.",
"description": "Entity ID of the automation to trigger." "name": "Entity"
} }
} },
"name": "Trigger automation"
} }
} }
} }

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,29 +1,29 @@
{ {
"config": { "config": {
"step": { "abort": {
"user": { "already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
"title": "Actron Air OAuth2 Authorization" "oauth2_error": "Failed to start OAuth2 flow"
},
"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."
}, },
"error": { "error": {
"oauth2_error": "Failed to start OAuth2 flow. Please try again later." "oauth2_error": "Failed to start OAuth2 flow. Please try again later."
}, },
"abort": { "progress": {
"oauth2_error": "Failed to start OAuth2 flow", "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."
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]" },
"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"
}
} }
} }
} }

View File

@@ -1,34 +1,34 @@
{ {
"config": { "config": {
"step": {
"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": { "abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "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_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.", "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%]" "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"
}
} }
} }
} }

View File

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

View File

@@ -1,35 +1,38 @@
{ {
"config": { "config": {
"step": { "abort": {
"user": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]",
"description": "Set up your AdGuard Home instance to allow monitoring and control.", "existing_instance_updated": "Updated existing configuration."
"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%]",
"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."
}
},
"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": { "error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
}, },
"abort": { "step": {
"existing_instance_updated": "Updated existing configuration.", "hassio_confirm": {
"already_configured": "[%key:common::config_flow::abort::already_configured_service%]" "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": {
"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%]",
"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."
}
} }
}, },
"entity": { "entity": {
"sensor": { "sensor": {
"average_processing_speed": {
"name": "Average processing speed"
},
"dns_queries": { "dns_queries": {
"name": "DNS queries" "name": "DNS queries"
}, },
@@ -42,94 +45,91 @@
"parental_control_blocked": { "parental_control_blocked": {
"name": "Parental control blocked" "name": "Parental control blocked"
}, },
"rules_count": {
"name": "Rules count"
},
"safe_browsing_blocked": { "safe_browsing_blocked": {
"name": "Safe browsing blocked" "name": "Safe browsing blocked"
}, },
"safe_searches_enforced": { "safe_searches_enforced": {
"name": "Safe searches enforced" "name": "Safe searches enforced"
},
"average_processing_speed": {
"name": "Average processing speed"
},
"rules_count": {
"name": "Rules count"
} }
}, },
"switch": { "switch": {
"protection": { "filtering": {
"name": "Protection" "name": "Filtering"
}, },
"parental": { "parental": {
"name": "Parental control" "name": "Parental control"
}, },
"safe_search": { "protection": {
"name": "Safe search" "name": "Protection"
},
"query_log": {
"name": "Query log"
}, },
"safe_browsing": { "safe_browsing": {
"name": "Safe browsing" "name": "Safe browsing"
}, },
"filtering": { "safe_search": {
"name": "Filtering" "name": "Safe search"
},
"query_log": {
"name": "Query log"
} }
} }
}, },
"services": { "services": {
"add_url": { "add_url": {
"name": "Add URL",
"description": "Adds a new filter subscription to AdGuard Home.", "description": "Adds a new filter subscription to AdGuard Home.",
"fields": { "fields": {
"name": { "name": {
"name": "[%key:common::config_flow::data::name%]", "description": "The name of the filter subscription.",
"description": "The name of the filter subscription." "name": "[%key:common::config_flow::data::name%]"
}, },
"url": { "url": {
"name": "[%key:common::config_flow::data::url%]", "description": "The filter URL to subscribe to, containing the filter rules.",
"description": "The filter URL to subscribe to, containing the filter rules." "name": "[%key:common::config_flow::data::url%]"
} }
} },
}, "name": "Add URL"
"remove_url": {
"name": "Remove URL",
"description": "Removes a filter subscription from AdGuard Home.",
"fields": {
"url": {
"name": "[%key:common::config_flow::data::url%]",
"description": "The filter subscription URL to remove."
}
}
},
"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": { "disable_url": {
"name": "Disable URL",
"description": "Disables a filter subscription in AdGuard Home.", "description": "Disables a filter subscription in AdGuard Home.",
"fields": { "fields": {
"url": { "url": {
"name": "[%key:common::config_flow::data::url%]", "description": "The filter subscription URL to disable.",
"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": { "refresh": {
"name": "Refresh",
"description": "Refreshes all filter subscriptions in AdGuard Home.", "description": "Refreshes all filter subscriptions in AdGuard Home.",
"fields": { "fields": {
"force": { "force": {
"name": "Force", "description": "Force update (bypasses AdGuard Home throttling), omit for a regular refresh.",
"description": "Force update (bypasses AdGuard Home throttling), omit for a regular refresh." "name": "Force"
} }
} },
"name": "Refresh"
},
"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": "Remove URL"
} }
} }
} }

View File

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

View File

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

View File

@@ -1,57 +1,57 @@
{ {
"config": { "config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"step": { "step": {
"user": { "user": {
"data": { "data": {
"api_key": "[%key:common::config_flow::data::api_key%]" "api_key": "[%key:common::config_flow::data::api_key%]"
} }
} }
},
"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": {
"tracking_number": {
"name": "Tracking number",
"description": "Tracking number for the new tracking."
},
"title": {
"name": "Title",
"description": "A custom title for the new tracking."
},
"slug": {
"name": "Slug",
"description": "Slug (carrier) of the new tracking."
}
}
},
"remove_tracking": {
"name": "Remove tracking",
"description": "Removes a tracking number from Aftership.",
"fields": {
"tracking_number": {
"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."
}
}
} }
}, },
"issues": { "issues": {
"deprecated_yaml_import_issue_cannot_connect": { "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.",
"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"
}
},
"services": {
"add_tracking": {
"description": "Adds a new tracking number to Aftership.",
"fields": {
"slug": {
"description": "Slug (carrier) of the new tracking.",
"name": "Slug"
},
"title": {
"description": "A custom title for the new tracking.",
"name": "Title"
},
"tracking_number": {
"description": "Tracking number for the new tracking.",
"name": "Tracking number"
}
},
"name": "Add tracking"
},
"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": "Remove tracking"
} }
} }
} }

View File

@@ -1,19 +1,19 @@
{ {
"services": { "services": {
"disable_alerts": {
"service": "mdi:bell-off"
},
"enable_alerts": {
"service": "mdi:bell-alert"
},
"snapshot": {
"service": "mdi:camera"
},
"start_recording": { "start_recording": {
"service": "mdi:record-rec" "service": "mdi:record-rec"
}, },
"stop_recording": { "stop_recording": {
"service": "mdi:stop" "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": { "config": {
"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."
}
}
},
"abort": { "abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]" "already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
}, },
"error": { "error": {
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"step": {
"user": {
"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"
}
} }
}, },
"services": { "services": {
"start_recording": { "disable_alerts": {
"name": "Start recording", "description": "Disables alerts.",
"description": "Enables continuous recording." "name": "Disable alerts"
},
"stop_recording": {
"name": "Stop recording",
"description": "Disables continuous recording."
}, },
"enable_alerts": { "enable_alerts": {
"name": "Enable alerts", "description": "Enables alerts.",
"description": "Enables alerts." "name": "Enable alerts"
},
"disable_alerts": {
"name": "Disable alerts",
"description": "Disables alerts."
}, },
"snapshot": { "snapshot": {
"name": "Snapshot", "description": "Takes a photo.",
"description": "Takes a photo." "name": "Snapshot"
},
"start_recording": {
"description": "Enables continuous recording.",
"name": "Start recording"
},
"stop_recording": {
"description": "Disables continuous recording.",
"name": "Stop recording"
} }
} }
} }

View File

@@ -1,52 +1,52 @@
{ {
"services": { "services": {
"generate_data": { "generate_data": {
"name": "Generate data",
"description": "Uses AI to run a task that generates data.", "description": "Uses AI to run a task that generates data.",
"fields": { "fields": {
"task_name": { "attachments": {
"name": "Task name", "description": "List of files to attach for multi-modal AI analysis.",
"description": "Name of the task." "name": "Attachments"
},
"instructions": {
"name": "Instructions",
"description": "Instructions on what needs to be done."
}, },
"entity_id": { "entity_id": {
"name": "Entity ID", "description": "Entity ID to run the task on. If not provided, the preferred entity will be used.",
"description": "Entity ID to run the task on. If not provided, the preferred entity will be used." "name": "Entity ID"
},
"instructions": {
"description": "Instructions on what needs to be done.",
"name": "Instructions"
}, },
"structure": { "structure": {
"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.",
"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"
}, },
"attachments": { "task_name": {
"name": "Attachments", "description": "Name of the task.",
"description": "List of files to attach for multi-modal AI analysis." "name": "Task name"
} }
} },
"name": "Generate data"
}, },
"generate_image": { "generate_image": {
"name": "Generate image",
"description": "Uses AI to generate image.", "description": "Uses AI to generate image.",
"fields": { "fields": {
"task_name": { "attachments": {
"name": "Task name", "description": "List of files to attach for using as references.",
"description": "Name of the task." "name": "Attachments"
},
"instructions": {
"name": "Instructions",
"description": "Instructions that explains the image to be generated."
}, },
"entity_id": { "entity_id": {
"name": "Entity ID", "description": "Entity ID to run the task on.",
"description": "Entity ID to run the task on." "name": "Entity ID"
}, },
"attachments": { "instructions": {
"name": "Attachments", "description": "Instructions that explains the image to be generated.",
"description": "List of files to attach for using as references." "name": "Instructions"
},
"task_name": {
"description": "Name of the task.",
"name": "Task name"
} }
} },
"name": "Generate image"
} }
} }
} }

View File

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

View File

@@ -1,19 +1,5 @@
{ {
"config": { "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": { "abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
@@ -24,6 +10,20 @@
"error": { "error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"unknown": "[%key:common::config_flow::error::unknown%]" "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": { "entity": {
@@ -36,14 +36,25 @@
} }
}, },
"number": { "number": {
"led_bar_brightness": {
"name": "LED bar brightness"
},
"display_brightness": { "display_brightness": {
"name": "Display brightness" "name": "Display brightness"
},
"led_bar_brightness": {
"name": "LED bar brightness"
} }
}, },
"select": { "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": { "configuration_control": {
"name": "Configuration source", "name": "Configuration source",
"state": { "state": {
@@ -51,13 +62,6 @@
"local": "Local" "local": "Local"
} }
}, },
"display_temperature_unit": {
"name": "Display temperature unit",
"state": {
"c": "Celsius",
"f": "Fahrenheit"
}
},
"display_pm_standard": { "display_pm_standard": {
"name": "Display PM standard", "name": "Display PM standard",
"state": { "state": {
@@ -65,11 +69,18 @@
"us_aqi": "US AQI" "us_aqi": "US AQI"
} }
}, },
"display_temperature_unit": {
"name": "Display temperature unit",
"state": {
"c": "Celsius",
"f": "Fahrenheit"
}
},
"led_bar_mode": { "led_bar_mode": {
"name": "LED bar mode", "name": "LED bar mode",
"state": { "state": {
"off": "[%key:common::state::off%]",
"co2": "[%key:component::sensor::entity_component::carbon_dioxide::name%]", "co2": "[%key:component::sensor::entity_component::carbon_dioxide::name%]",
"off": "[%key:common::state::off%]",
"pm": "Particulate matter" "pm": "Particulate matter"
} }
}, },
@@ -92,37 +103,14 @@
"360": "[%key:component::airgradient::entity::select::nox_index_learning_time_offset::state::360%]", "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%]" "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": { "sensor": {
"total_volatile_organic_component_index": { "co2_automatic_baseline_calibration_days": {
"name": "VOC index" "name": "Carbon dioxide automatic baseline calibration"
}, },
"nitrogen_index": { "display_brightness": {
"name": "NOx index" "name": "[%key:component::airgradient::entity::number::display_brightness::name%]"
},
"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": { "display_pm_standard": {
"name": "[%key:component::airgradient::entity::select::display_pm_standard::name%]", "name": "[%key:component::airgradient::entity::select::display_pm_standard::name%]",
@@ -131,26 +119,6 @@
"us_aqi": "[%key:component::airgradient::entity::select::display_pm_standard::state::us_aqi%]" "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": { "display_temperature_unit": {
"name": "[%key:component::airgradient::entity::select::display_temperature_unit::name%]", "name": "[%key:component::airgradient::entity::select::display_temperature_unit::name%]",
"state": { "state": {
@@ -158,8 +126,40 @@
"f": "[%key:component::airgradient::entity::select::display_temperature_unit::state::f%]" "f": "[%key:component::airgradient::entity::select::display_temperature_unit::state::f%]"
} }
}, },
"display_brightness": { "led_bar_brightness": {
"name": "[%key:component::airgradient::entity::number::display_brightness::name%]" "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%]"
} }
}, },
"switch": { "switch": {

View File

@@ -1,30 +1,23 @@
{ {
"config": { "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": { "abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_location%]", "already_configured": "[%key:common::config_flow::abort::already_configured_location%]",
"wrong_location": "[%key:component::airly::config::error::wrong_location%]" "wrong_location": "[%key:component::airly::config::error::wrong_location%]"
} },
}, "error": {
"system_health": { "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]",
"info": { "wrong_location": "No Airly measuring stations in this area."
"can_reach_server": "Reach Airly server", },
"requests_remaining": "Remaining allowed requests", "step": {
"requests_per_day": "Allowed requests per day" "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}"
}
} }
}, },
"entity": { "entity": {
@@ -38,11 +31,18 @@
} }
}, },
"exceptions": { "exceptions": {
"update_error": {
"message": "An error occurred while retrieving data from the Airly API for {entry}: {error}"
},
"no_station": { "no_station": {
"message": "An error occurred while retrieving data from the Airly API for {entry}: no measuring stations in this area" "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"
} }
} }
} }

View File

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

View File

@@ -1,15 +1,7 @@
{ {
"config": { "config": {
"step": { "abort": {
"user": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
"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": { "error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
@@ -17,16 +9,15 @@
"invalid_location": "No results found for that location, try changing the location or station radius.", "invalid_location": "No results found for that location, try changing the location or station radius.",
"unknown": "[%key:common::config_flow::error::unknown%]" "unknown": "[%key:common::config_flow::error::unknown%]"
}, },
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
}
},
"options": {
"step": { "step": {
"init": { "user": {
"data": { "data": {
"radius": "Station radius (miles)" "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}"
} }
} }
}, },
@@ -43,5 +34,14 @@
} }
} }
} }
},
"options": {
"step": {
"init": {
"data": {
"radius": "Station radius (miles)"
}
}
}
} }
} }

View File

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

View File

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

View File

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

View File

@@ -1,49 +1,49 @@
{ {
"config": { "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}", "flow_title": "{name}",
"step": { "step": {
"bluetooth_confirm": {
"description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]"
},
"user": { "user": {
"description": "[%key:component::bluetooth::config::step::user::description%]",
"data": { "data": {
"address": "[%key:common::config_flow::data::device%]" "address": "[%key:common::config_flow::data::device%]"
}, },
"data_description": { "data_description": {
"address": "The Airthings devices discovered via Bluetooth." "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": { "entity": {
"sensor": { "sensor": {
"radon_1day_avg": { "ambient_noise": {
"name": "Radon 1-day average" "name": "Ambient noise"
},
"radon_longterm_avg": {
"name": "Radon longterm average"
},
"radon_1day_level": {
"name": "Radon 1-day level"
},
"radon_longterm_level": {
"name": "Radon longterm level"
}, },
"illuminance": { "illuminance": {
"name": "[%key:component::sensor::entity_component::illuminance::name%]" "name": "[%key:component::sensor::entity_component::illuminance::name%]"
}, },
"ambient_noise": { "radon_1day_avg": {
"name": "Ambient noise" "name": "Radon 1-day average"
},
"radon_1day_level": {
"name": "Radon 1-day level"
},
"radon_longterm_avg": {
"name": "Radon longterm average"
},
"radon_longterm_level": {
"name": "Radon longterm level"
} }
} }
} }

View File

@@ -9,13 +9,13 @@
}, },
"step": { "step": {
"user": { "user": {
"title": "Set up your AirTouch 4 connection details.",
"data": { "data": {
"host": "[%key:common::config_flow::data::host%]" "host": "[%key:common::config_flow::data::host%]"
}, },
"data_description": { "data_description": {
"host": "The hostname or IP address of your AirTouch controller." "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": { "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": { "step": {
"user": { "user": {
"data": { "data": {
"host": "[%key:common::config_flow::data::host%]" "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": { "entity": {
@@ -21,8 +21,8 @@
"state_attributes": { "state_attributes": {
"fan_mode": { "fan_mode": {
"state": { "state": {
"turbo": "Turbo", "intelligent_auto": "Intelligent Auto",
"intelligent_auto": "Intelligent Auto" "turbo": "Turbo"
} }
} }
} }

View File

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

View File

@@ -1,54 +1,44 @@
{ {
"config": { "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": { "step": {
"geography_by_coords": { "geography_by_coords": {
"title": "Configure a geography",
"description": "Use the AirVisual cloud API to monitor a latitude/longitude.",
"data": { "data": {
"api_key": "[%key:common::config_flow::data::api_key%]", "api_key": "[%key:common::config_flow::data::api_key%]",
"latitude": "[%key:common::config_flow::data::latitude%]", "latitude": "[%key:common::config_flow::data::latitude%]",
"longitude": "[%key:common::config_flow::data::longitude%]" "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": { "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": { "data": {
"api_key": "[%key:common::config_flow::data::api_key%]", "api_key": "[%key:common::config_flow::data::api_key%]",
"city": "City", "city": "City",
"state": "State", "country": "[%key:common::config_flow::data::country%]",
"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%]"
}, },
"reauth_confirm": { "reauth_confirm": {
"title": "Re-authenticate AirVisual",
"data": { "data": {
"api_key": "[%key:common::config_flow::data::api_key%]" "api_key": "[%key:common::config_flow::data::api_key%]"
} },
"title": "Re-authenticate AirVisual"
}, },
"user": { "user": {
"title": "Configure AirVisual", "description": "Pick what type of AirVisual data you want to monitor.",
"description": "Pick what type of AirVisual data you want to monitor." "title": "Configure AirVisual"
}
},
"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"
}
} }
} }
}, },
@@ -67,19 +57,29 @@
"pollutant_level": { "pollutant_level": {
"state": { "state": {
"good": "Good", "good": "Good",
"hazardous": "Hazardous",
"moderate": "Moderate", "moderate": "Moderate",
"unhealthy": "Unhealthy", "unhealthy": "Unhealthy",
"unhealthy_sensitive": "Unhealthy for sensitive groups", "unhealthy_sensitive": "Unhealthy for sensitive groups",
"very_unhealthy": "Very unhealthy", "very_unhealthy": "Very unhealthy"
"hazardous": "Hazardous"
} }
} }
} }
}, },
"issues": { "issues": {
"airvisual_pro_migration": { "airvisual_pro_migration": {
"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}.",
"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%]"
}
} }
} }
} }

View File

@@ -1,40 +1,40 @@
{ {
"config": { "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": { "step": {
"reauth_confirm": { "reauth_confirm": {
"description": "[%key:component::airvisual_pro::config::step::user::description%]",
"data": { "data": {
"password": "[%key:common::config_flow::data::password%]" "password": "[%key:common::config_flow::data::password%]"
} },
"description": "[%key:component::airvisual_pro::config::step::user::description%]"
}, },
"user": { "user": {
"description": "The password can be retrieved from the AirVisual Pro's UI.",
"data": { "data": {
"ip_address": "[%key:common::config_flow::data::host%]", "ip_address": "[%key:common::config_flow::data::host%]",
"password": "[%key:common::config_flow::data::password%]" "password": "[%key:common::config_flow::data::password%]"
}, },
"data_description": { "data_description": {
"ip_address": "The hostname or IP address of your AirVisual Pro device." "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": { "entity": {
"sensor": { "sensor": {
"pm01": {
"name": "PM0.1"
},
"outdoor_air_quality_index": { "outdoor_air_quality_index": {
"name": "Outdoor air quality index" "name": "Outdoor air quality index"
},
"pm01": {
"name": "PM0.1"
} }
} }
} }

View File

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

View File

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

View File

@@ -1,34 +1,34 @@
{ {
"config": { "config": {
"step": {
"pick_implementation": {
"title": "[%key:common::config_flow::title::oauth2_pick_implementation%]"
},
"reauth_confirm": {
"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": { "abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]", "already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "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_error": "[%key:common::config_flow::abort::oauth2_error%]",
"oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]", "oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]",
"oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]", "oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]",
"oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]", "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%]", "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.", "user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]",
"cloud_not_enabled": "Please make sure you run Home Assistant with `{default_config}` enabled in your configuration.yaml." "wrong_account": "You are authenticated with a different account than the one set up. Please authenticate with the configured account."
}, },
"create_entry": { "create_entry": {
"default": "[%key:common::config_flow::create_entry::authenticated%]" "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%]"
}
} }
} }
} }

View File

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

View File

@@ -1,5 +1,4 @@
{ {
"title": "Alarm control panel",
"device_automation": { "device_automation": {
"action_type": { "action_type": {
"arm_away": "Arm {entity_name} away", "arm_away": "Arm {entity_name} away",
@@ -10,24 +9,24 @@
"trigger": "Trigger {entity_name}" "trigger": "Trigger {entity_name}"
}, },
"condition_type": { "condition_type": {
"is_triggered": "{entity_name} is triggered",
"is_disarmed": "{entity_name} is disarmed",
"is_armed_home": "{entity_name} is armed home",
"is_armed_away": "{entity_name} is armed away", "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_night": "{entity_name} is armed night",
"is_armed_vacation": "{entity_name} is armed vacation" "is_armed_vacation": "{entity_name} is armed vacation",
"is_disarmed": "{entity_name} is disarmed",
"is_triggered": "{entity_name} is triggered"
}, },
"extra_fields": { "extra_fields": {
"code": "Code", "code": "Code",
"for": "[%key:common::device_automation::extra_fields::for%]" "for": "[%key:common::device_automation::extra_fields::for%]"
}, },
"trigger_type": { "trigger_type": {
"triggered": "{entity_name} triggered",
"disarmed": "{entity_name} disarmed",
"armed_home": "{entity_name} armed home",
"armed_away": "{entity_name} armed away", "armed_away": "{entity_name} armed away",
"armed_home": "{entity_name} armed home",
"armed_night": "{entity_name} armed night", "armed_night": "{entity_name} armed night",
"armed_vacation": "{entity_name} armed vacation" "armed_vacation": "{entity_name} armed vacation",
"disarmed": "{entity_name} disarmed",
"triggered": "{entity_name} triggered"
} }
}, },
"entity_component": { "entity_component": {
@@ -35,106 +34,34 @@
"name": "[%key:component::alarm_control_panel::title%]", "name": "[%key:component::alarm_control_panel::title%]",
"state": { "state": {
"armed": "Armed", "armed": "Armed",
"disarmed": "Disarmed",
"armed_home": "Armed home",
"armed_away": "Armed away", "armed_away": "Armed away",
"armed_custom_bypass": "Armed custom bypass",
"armed_home": "Armed home",
"armed_night": "Armed night", "armed_night": "Armed night",
"armed_vacation": "Armed vacation", "armed_vacation": "Armed vacation",
"armed_custom_bypass": "Armed custom bypass",
"pending": "Pending",
"arming": "Arming", "arming": "Arming",
"disarmed": "Disarmed",
"disarming": "Disarming", "disarming": "Disarming",
"pending": "Pending",
"triggered": "Triggered" "triggered": "Triggered"
}, },
"state_attributes": { "state_attributes": {
"code_format": {
"name": "Code format",
"state": {
"text": "Text",
"number": "Number"
}
},
"changed_by": { "changed_by": {
"name": "Changed by" "name": "Changed by"
}, },
"code_arm_required": { "code_arm_required": {
"name": "Code for arming", "name": "Code for arming",
"state": { "state": {
"true": "Required", "false": "Not required",
"false": "Not required" "true": "Required"
}
},
"code_format": {
"name": "Code format",
"state": {
"number": "Number",
"text": "Text"
} }
}
}
}
},
"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%]"
} }
} }
} }
@@ -143,5 +70,78 @@
"code_arm_required": { "code_arm_required": {
"message": "Arming requires a code but none was given for {entity_id}." "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": { "config": {
"step": { "abort": {
"user": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
"title": "Choose AlarmDecoder protocol", },
"data": { "create_entry": {
"protocol": "Protocol" "default": "Successfully connected to AlarmDecoder."
}
},
"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": { "error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"unknown": "[%key:common::config_flow::error::unknown%]" "unknown": "[%key:common::config_flow::error::unknown%]"
}, },
"create_entry": { "step": {
"default": "Successfully connected to AlarmDecoder." "protocol": {
}, "data": {
"abort": { "device_baudrate": "Device baud rate",
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]" "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"
}
} }
}, },
"options": { "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": { "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": { "init": {
"title": "Configure AlarmDecoder",
"description": "What would you like to edit?",
"data": { "data": {
"edit_selection": "Edit" "edit_selection": "Edit"
} },
}, "description": "What would you like to edit?",
"arm_settings": { "title": "Configure AlarmDecoder"
"title": "[%key:component::alarmdecoder::options::step::init::title%]",
"data": {
"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"
}
}, },
"zone_details": { "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": { "data": {
"zone_name": "Zone name",
"zone_type": "Zone type",
"zone_rfid": "RF serial",
"zone_loop": "RF loop", "zone_loop": "RF loop",
"zone_name": "Zone name",
"zone_relayaddr": "Relay address", "zone_relayaddr": "Relay address",
"zone_relaychan": "Relay channel" "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%]"
},
"zone_select": {
"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%]"
} }
},
"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": { "services": {
"alarm_keypress": { "alarm_keypress": {
"name": "Key press",
"description": "Sends custom keypresses to the alarm.", "description": "Sends custom keypresses to the alarm.",
"fields": { "fields": {
"keypress": { "keypress": {
"name": "[%key:component::alarmdecoder::services::alarm_keypress::name%]", "description": "String to send to the alarm panel.",
"description": "String to send to the alarm panel." "name": "[%key:component::alarmdecoder::services::alarm_keypress::name%]"
} }
} },
"name": "Key press"
}, },
"alarm_toggle_chime": { "alarm_toggle_chime": {
"name": "Toggle chime",
"description": "Sends the alarm the toggle chime command.", "description": "Sends the alarm the toggle chime command.",
"fields": { "fields": {
"code": { "code": {
"name": "Code", "description": "Code to toggle the alarm control panel chime with.",
"description": "Code to toggle the alarm control panel chime with." "name": "Code"
} }
} },
"name": "Toggle chime"
} }
} }
} }

View File

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

View File

@@ -1,47 +1,12 @@
{ {
"common": { "common": {
"data_code": "One-time password (OTP code)", "data_code": "One-time password (OTP code)",
"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.", "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.",
"device_id_description": "The ID of the device to send the command to." "device_id_description": "The ID of the device to send the command to."
}, },
"config": { "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": { "abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_service%]", "already_configured": "[%key:common::config_flow::abort::already_configured_service%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
@@ -55,15 +20,50 @@
"cannot_retrieve_data": "Unable to retrieve data from Amazon. Please try again later.", "cannot_retrieve_data": "Unable to retrieve data from Amazon. Please try again later.",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"unknown": "[%key:common::config_flow::error::unknown%]" "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": { "entity": {
"notify": { "notify": {
"speak": {
"name": "Speak"
},
"announce": { "announce": {
"name": "Announce" "name": "Announce"
},
"speak": {
"name": "Speak"
} }
}, },
"switch": { "switch": {
@@ -72,34 +72,24 @@
} }
} }
}, },
"services": { "exceptions": {
"send_sound": { "cannot_connect_with_error": {
"name": "Send sound", "message": "Error connecting: {error}"
"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."
}
}
}, },
"send_text_command": { "cannot_retrieve_data_with_error": {
"name": "Send text command", "message": "Error retrieving data: {error}"
"description": "Sends a text command to a device", },
"fields": { "device_serial_number_missing": {
"text_command": { "message": "Device serial number missing: {device_id}"
"name": "Alexa text command", },
"description": "The text command to send." "entry_not_loaded": {
}, "message": "Entry not loaded: {entry}"
"device_id": { },
"name": "Device", "invalid_device_id": {
"description": "[%key:component::alexa_devices::common::device_id_description%]" "message": "Invalid device ID specified: {device_id}"
} },
} "invalid_sound_value": {
"message": "Invalid sound {sound} specified"
} }
}, },
"selector": { "selector": {
@@ -149,24 +139,34 @@
} }
} }
}, },
"exceptions": { "services": {
"cannot_connect_with_error": { "send_sound": {
"message": "Error connecting: {error}" "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"
}, },
"cannot_retrieve_data_with_error": { "send_text_command": {
"message": "Error retrieving data: {error}" "description": "Sends a text command to a device",
}, "fields": {
"device_serial_number_missing": { "device_id": {
"message": "Device serial number missing: {device_id}" "description": "[%key:component::alexa_devices::common::device_id_description%]",
}, "name": "Device"
"invalid_device_id": { },
"message": "Invalid device ID specified: {device_id}" "text_command": {
}, "description": "The text command to send.",
"invalid_sound_value": { "name": "Alexa text command"
"message": "Invalid sound {sound} specified" }
}, },
"entry_not_loaded": { "name": "Send text command"
"message": "Entry not loaded: {entry}"
} }
} }
} }

View File

@@ -1,5 +1,12 @@
{ {
"config": { "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}", "flow_title": "{name}",
"step": { "step": {
"discovery_confirm": { "discovery_confirm": {
@@ -14,37 +21,30 @@
}, },
"description": "Fill in Altruist IP address or hostname in your local network" "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": { "entity": {
"sensor": { "sensor": {
"co2": {
"name": "{sensor_name} CO2"
},
"humidity": { "humidity": {
"name": "{sensor_name} humidity" "name": "{sensor_name} humidity"
}, },
"pressure": {
"name": "{sensor_name} pressure"
},
"temperature": {
"name": "{sensor_name} temperature"
},
"noise_max": {
"name": "Maximum noise"
},
"noise_avg": { "noise_avg": {
"name": "Average noise" "name": "Average noise"
}, },
"co2": { "noise_max": {
"name": "{sensor_name} CO2" "name": "Maximum noise"
},
"pressure": {
"name": "{sensor_name} pressure"
}, },
"radiation": { "radiation": {
"name": "Radiation level" "name": "Radiation level"
},
"temperature": {
"name": "{sensor_name} temperature"
} }
} }
} }

View File

@@ -1,19 +1,5 @@
{ {
"entity": { "entity": {
"sensor": {
"general": {
"default": "mdi:transmission-tower"
},
"controlled_load": {
"default": "mdi:clock-outline"
},
"feed_in": {
"default": "mdi:solar-power"
},
"renewables": {
"default": "mdi:solar-power"
}
},
"binary_sensor": { "binary_sensor": {
"demand_window": { "demand_window": {
"default": "mdi:meter-electric", "default": "mdi:meter-electric",
@@ -21,6 +7,20 @@
"off": "mdi:meter-electric-outline" "off": "mdi:meter-electric-outline"
} }
} }
},
"sensor": {
"controlled_load": {
"default": "mdi:clock-outline"
},
"feed_in": {
"default": "mdi:solar-power"
},
"general": {
"default": "mdi:transmission-tower"
},
"renewables": {
"default": "mdi:solar-power"
}
} }
}, },
"services": { "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": { "exceptions": {
"channel_not_found": {
"message": "There is no {channel_type} channel at this site."
},
"integration_not_found": { "integration_not_found": {
"message": "Config entry \"{target}\" not found in registry." "message": "Config entry \"{target}\" not found in registry."
}, },
"not_loaded": { "not_loaded": {
"message": "{target} is not loaded." "message": "{target} is not loaded."
},
"channel_not_found": {
"message": "There is no {channel_type} channel at this site."
} }
}, },
"selector": { "selector": {
"channel_type": { "channel_type": {
"options": { "options": {
"general": "General",
"controlled_load": "Controlled load", "controlled_load": "Controlled load",
"feed_in": "Feed-in" "feed_in": "Feed-in",
"general": "General"
} }
} }
},
"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": { "last_rain": {
"default": "mdi:water" "default": "mdi:water"
}, },
"lightning_distance": {
"default": "mdi:lightning-bolt"
},
"lightning_strikes_per_day": { "lightning_strikes_per_day": {
"default": "mdi:lightning-bolt" "default": "mdi:lightning-bolt"
}, },
"lightning_strikes_per_hour": { "lightning_strikes_per_hour": {
"default": "mdi:lightning-bolt" "default": "mdi:lightning-bolt"
}, },
"lightning_distance": {
"default": "mdi:lightning-bolt"
},
"wind_direction": { "wind_direction": {
"default": "mdi:compass-outline" "default": "mdi:compass-outline"
} }

View File

@@ -1,42 +1,30 @@
{ {
"config": { "config": {
"step": { "abort": {
"user": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
"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": { "error": {
"no_stations_found": "Did not find any stations in the selected region." "no_stations_found": "Did not find any stations in the selected region."
}, },
"abort": { "step": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]" "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"
}
} }
}, },
"entity": { "entity": {
"sensor": { "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": { "absolute_pressure": {
"name": "Absolute pressure" "name": "Absolute pressure"
}, },
"relative_pressure": {
"name": "Relative pressure"
},
"daily_rain": { "daily_rain": {
"name": "Daily rain" "name": "Daily rain"
}, },
@@ -52,21 +40,33 @@
"last_rain": { "last_rain": {
"name": "Last rain" "name": "Last rain"
}, },
"lightning_distance": {
"name": "Lightning distance"
},
"lightning_strikes_per_day": { "lightning_strikes_per_day": {
"name": "Lightning strikes per day" "name": "Lightning strikes per day"
}, },
"lightning_strikes_per_hour": { "lightning_strikes_per_hour": {
"name": "Lightning strikes per hour" "name": "Lightning strikes per hour"
}, },
"lightning_distance": {
"name": "Lightning distance"
},
"max_daily_gust": { "max_daily_gust": {
"name": "Max daily gust" "name": "Max daily gust"
}, },
"monthly_rain": { "monthly_rain": {
"name": "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": { "uv_index": {
"name": "UV index" "name": "UV index"
}, },

View File

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

View File

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

View File

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

View File

@@ -1,47 +1,25 @@
{ {
"config": { "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": { "abort": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"unknown": "[%key:common::config_flow::error::unknown%]" "unknown": "[%key:common::config_flow::error::unknown%]"
}, },
"error": { "error": {
"no_integrations_selected": "You must select at least one integration to track" "no_integrations_selected": "You must select at least one integration to track"
} },
},
"options": {
"step": { "step": {
"init": { "user": {
"data": { "data": {
"tracked_addons": "[%key:component::analytics_insights::config::step::user::data::tracked_addons%]", "tracked_addons": "Add-ons",
"tracked_integrations": "[%key:component::analytics_insights::config::step::user::data::tracked_integrations%]", "tracked_custom_integrations": "Custom integrations",
"tracked_custom_integrations": "[%key:component::analytics_insights::config::step::user::data::tracked_custom_integrations%]" "tracked_integrations": "Integrations"
}, },
"data_description": { "data_description": {
"tracked_addons": "[%key:component::analytics_insights::config::step::user::data_description::tracked_addons%]", "tracked_addons": "Select the add-ons you want to track",
"tracked_integrations": "[%key:component::analytics_insights::config::step::user::data_description::tracked_integrations%]", "tracked_custom_integrations": "Select the custom integrations you want to track",
"tracked_custom_integrations": "[%key:component::analytics_insights::config::step::user::data_description::tracked_custom_integrations%]" "tracked_integrations": "Select the integrations you want to track"
} }
} }
},
"abort": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"error": {
"no_integrations_selected": "[%key:component::analytics_insights::config::error::no_integrations_selected%]"
} }
}, },
"entity": { "entity": {
@@ -56,5 +34,27 @@
"name": "Total reported integrations" "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": { "torch": {
"default": "mdi:white-balance-sunny" "default": "mdi:white-balance-sunny"
}, },
"whitebalance_lock": {
"default": "mdi:white-balance-auto"
},
"video_recording": { "video_recording": {
"default": "mdi:record-rec" "default": "mdi:record-rec"
},
"whitebalance_lock": {
"default": "mdi:white-balance-auto"
} }
} }
} }

View File

@@ -1,24 +1,24 @@
{ {
"config": { "config": {
"step": { "abort": {
"user": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
"data": {
"host": "[%key:common::config_flow::data::host%]",
"port": "[%key:common::config_flow::data::port%]",
"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": { "error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]"
}, },
"abort": { "step": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]" "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%]"
},
"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."
}
}
} }
} }
} }

View File

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

View File

@@ -1,112 +1,112 @@
{ {
"config": { "config": {
"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",
"device_class": "The type of device",
"port": "[%key:common::config_flow::data::port%]"
}
}
},
"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": { "abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"invalid_unique_id": "Impossible to determine a valid unique ID for the device" "invalid_unique_id": "Impossible to determine a valid unique ID for the device"
}
},
"options": {
"step": {
"init": {
"data": {
"apps": "Configure applications 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)"
}
},
"apps": {
"title": "Configure Android apps",
"description": "Configure application ID {app_id}",
"data": {
"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}",
"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": { "error": {
"invalid_det_rules": "Invalid state detection rules" "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%]",
"services": { "key_and_server": "Only provide ADB Key or ADB Server",
"adb_command": { "unknown": "[%key:common::config_flow::error::unknown%]"
"name": "ADB command", },
"description": "Sends an ADB command to an Android / Fire TV device.", "step": {
"fields": { "user": {
"command": { "data": {
"name": "Command", "adb_server_ip": "IP address of the ADB server (leave empty to not use)",
"description": "Either a key command or an ADB shell command." "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%]"
} }
} }
},
"download": {
"name": "Download",
"description": "Downloads a file from your Android / Fire TV device to your Home Assistant instance.",
"fields": {
"device_path": {
"name": "Device path",
"description": "The filepath on the Android / Fire TV device."
},
"local_path": {
"name": "Local path",
"description": "The filepath on your Home Assistant instance."
}
}
},
"upload": {
"name": "Upload",
"description": "Uploads a file from your Home Assistant instance to an Android / Fire TV device.",
"fields": {
"device_path": {
"name": "[%key:component::androidtv::services::download::fields::device_path::name%]",
"description": "[%key:component::androidtv::services::download::fields::device_path::description%]"
},
"local_path": {
"name": "[%key:component::androidtv::services::download::fields::local_path::name%]",
"description": "[%key:component::androidtv::services::download::fields::local_path::description%]"
}
}
},
"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": { "exceptions": {
"failed_send": { "failed_send": {
"message": "Failed to send command {cmd}" "message": "Failed to send command {cmd}"
} }
},
"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",
"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": {
"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)"
},
"description": "Configure detection rule for application ID {rule_id}",
"title": "Configure Android state detection rules"
}
}
},
"services": {
"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": "ADB command"
},
"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"
},
"local_path": {
"description": "The filepath on your Home Assistant instance.",
"name": "Local path"
}
},
"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": {
"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%]"
},
"local_path": {
"description": "[%key:component::androidtv::services::download::fields::local_path::description%]",
"name": "[%key:component::androidtv::services::download::fields::local_path::name%]"
}
},
"name": "Upload"
}
} }
} }

View File

@@ -1,42 +1,11 @@
{ {
"config": { "config": {
"flow_title": "{name}", "abort": {
"step": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"user": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"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.", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]",
"data": { "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]",
"host": "[%key:common::config_flow::data::host%]" "unique_id_mismatch": "Please ensure you reconfigure against the same device."
},
"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": { "error": {
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
@@ -44,41 +13,42 @@
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"unknown": "[%key:common::config_flow::error::unknown%]" "unknown": "[%key:common::config_flow::error::unknown%]"
}, },
"abort": { "flow_title": "{name}",
"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": { "step": {
"init": { "pair": {
"data": { "data": {
"apps": "Configure applications list", "pin": "[%key:common::config_flow::data::pin%]"
"enable_ime": "Enable IME"
}, },
"data_description": { "data_description": {
"apps": "Here you can define the list of applications, specify names and icons that will be displayed in the UI.", "pin": "Pairing code displayed on the Android TV device."
"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." },
} "description": "Enter the pairing code displayed on the Android TV ({name})."
}, },
"apps": { "reauth_confirm": {
"title": "Configure Android apps", "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.",
"description": "Configure application ID {app_id}", "title": "[%key:common::config_flow::title::reauth%]"
},
"reconfigure": {
"data": { "data": {
"app_name": "Application name", "host": "[%key:common::config_flow::data::host%]"
"app_id": "Application ID",
"app_icon": "Application icon",
"app_delete": "Check to delete this application"
}, },
"data_description": { "data_description": {
"app_name": "Name of the application as you would like it to be displayed in Home Assistant.", "host": "The hostname or IP address of the Android TV device."
"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", "description": "Update the IP address of this previously configured Android TV device."
"app_delete": "Check this box to delete the application from the list." },
} "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"
} }
} }
}, },
@@ -93,6 +63,36 @@
"message": "Invalid media type: {media_type}" "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": { "selector": {
"apps": { "apps": {
"options": { "options": {

View File

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

View File

@@ -1,19 +1,19 @@
{ {
"config": { "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": { "error": {
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"unknown": "[%key:common::config_flow::error::unknown%]" "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": { "entity": {
@@ -21,39 +21,39 @@
"cook_time": { "cook_time": {
"name": "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": { "cook_time_remaining": {
"name": "Cook time remaining" "name": "Cook time remaining"
}, },
"heater_temperature": { "heater_temperature": {
"name": "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": { "triac_temperature": {
"name": "Triac temperature" "name": "Triac temperature"
}, },

View File

@@ -1,5 +1,12 @@
{ {
"config": { "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": { "step": {
"user": { "user": {
"data": { "data": {
@@ -7,13 +14,6 @@
"port": "[%key:common::config_flow::data::port%]" "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": { "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": { "step": {
"user": { "user": {
"data": { "data": {
"api_key": "[%key:common::config_flow::data::api_key%]" "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": { "config_subentries": {
"conversation": { "conversation": {
"initiate_flow": { "abort": {
"user": "Add conversation agent", "entry_not_loaded": "Cannot add things while the configuration is disabled.",
"reconfigure": "Reconfigure conversation agent" "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]"
}, },
"entry_type": "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": { "step": {
"set_options": { "set_options": {
"data": { "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%]", "name": "[%key:common::config_flow::data::name%]",
"prompt": "[%key:common::config_flow::data::prompt%]", "prompt": "[%key:common::config_flow::data::prompt%]",
"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", "recommended": "Recommended model settings",
"temperature": "Temperature",
"thinking_budget": "Thinking budget", "thinking_budget": "Thinking budget",
"user_location": "Include home location",
"web_search": "Enable web search", "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": { "data_description": {
"prompt": "Instruct how the LLM should respond. This can be a template.", "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.", "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": "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, "config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/aosmith", "documentation": "https://www.home-assistant.io/integrations/aosmith",
"iot_class": "cloud_polling", "iot_class": "cloud_polling",
"requirements": ["py-aosmith==1.0.14"] "requirements": ["py-aosmith==1.0.15"]
} }

View File

@@ -1,28 +1,28 @@
{ {
"config": { "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": { "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": { "user": {
"data": { "data": {
"email": "[%key:common::config_flow::data::email%]", "email": "[%key:common::config_flow::data::email%]",
"password": "[%key:common::config_flow::data::password%]" "password": "[%key:common::config_flow::data::password%]"
}, },
"description": "Please enter your A. O. Smith credentials." "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": { "entity": {
@@ -30,19 +30,19 @@
"hot_water_plus_level": { "hot_water_plus_level": {
"name": "Hot Water+ level", "name": "Hot Water+ level",
"state": { "state": {
"off": "[%key:common::state::off%]",
"level1": "Level 1", "level1": "Level 1",
"level2": "Level 2", "level2": "Level 2",
"level3": "Level 3" "level3": "Level 3",
"off": "[%key:common::state::off%]"
} }
} }
}, },
"sensor": { "sensor": {
"hot_water_availability": {
"name": "Hot water availability"
},
"energy_usage": { "energy_usage": {
"name": "Energy usage" "name": "Energy usage"
},
"hot_water_availability": {
"name": "Hot water availability"
} }
} }
} }

View File

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

View File

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

View File

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

View File

@@ -1,74 +1,74 @@
{ {
"config": { "config": {
"flow_title": "{name} ({type})", "abort": {
"step": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"user": { "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
"title": "Set up a new Apple TV", "backoff": "Device does not accept pairing requests at this time (you might have entered an invalid PIN code too many times), try again later.",
"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.", "device_did_not_pair": "No attempt to finish pairing process was made from the device.",
"data": { "device_not_found": "Device was not found during discovery, please try adding it again.",
"device_input": "[%key:common::config_flow::data::device%]" "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.",
"restore_device": { "no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]",
"title": "Device reconfiguration", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]",
"description": "Reconfigure this device to restore its functionality." "setup_failed": "Failed to set up device.",
}, "unknown": "[%key:common::config_flow::error::unknown%]"
"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": { "error": {
"no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]",
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "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%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]", "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%]"
"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.", "flow_title": "{name} ({type})",
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "step": {
"unknown": "[%key:common::config_flow::error::unknown%]", "confirm": {
"setup_failed": "Failed to set up device.", "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!",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "title": "Confirm adding Apple TV"
"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." "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": {
"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"
}
} }
}, },
"options": { "options": {
"step": { "step": {
"init": { "init": {
"description": "Configure general device settings",
"data": { "data": {
"start_off": "Do not turn device on when starting Home Assistant" "start_off": "Do not turn device on when starting Home Assistant"
} },
"description": "Configure general device settings"
} }
} }
} }

View File

@@ -1,5 +1,11 @@
{ {
"config": { "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": { "step": {
"user": { "user": {
"data": { "data": {
@@ -10,12 +16,6 @@
"port": "Usually 7000 or 8000" "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": { "entity": {
@@ -25,96 +25,96 @@
} }
}, },
"humidifier": { "humidifier": {
"humidifier": {
"name": "[%key:component::humidifier::title%]"
},
"dehumidifier": { "dehumidifier": {
"name": "[%key:component::humidifier::entity_component::dehumidifier::name%]" "name": "[%key:component::humidifier::entity_component::dehumidifier::name%]"
},
"humidifier": {
"name": "[%key:component::humidifier::title%]"
} }
}, },
"select": { "select": {
"air_cleaning_event": { "air_cleaning_event": {
"name": "Air cleaning event", "name": "Air cleaning event",
"state": { "state": {
"off": "[%key:common::state::off%]", "allergies": "Allergies (24 hour)",
"event_clean": "Event clean (3 hour)", "event_clean": "Event clean (3 hour)",
"allergies": "Allergies (24 hour)" "off": "[%key:common::state::off%]"
} }
}, },
"air_cleaning_mode": { "air_cleaning_mode": {
"name": "Air cleaning mode", "name": "Air cleaning mode",
"state": { "state": {
"off": "[%key:common::state::off%]", "automatic": "Automatic",
"constant_clean": "Constant clean", "constant_clean": "Constant clean",
"automatic": "Automatic" "off": "[%key:common::state::off%]"
} }
}, },
"fresh_air_event": { "fresh_air_event": {
"name": "Fresh air event", "name": "Fresh air event",
"state": { "state": {
"off": "[%key:common::state::off%]",
"3hour": "3 hour event", "3hour": "3 hour event",
"24hour": "24 hour event" "24hour": "24 hour event",
"off": "[%key:common::state::off%]"
} }
}, },
"fresh_air_mode": { "fresh_air_mode": {
"name": "Fresh air mode", "name": "Fresh air mode",
"state": { "state": {
"off": "[%key:common::state::off%]", "automatic": "[%key:component::aprilaire::entity::select::air_cleaning_mode::state::automatic%]",
"automatic": "[%key:component::aprilaire::entity::select::air_cleaning_mode::state::automatic%]" "off": "[%key:common::state::off%]"
} }
} }
}, },
"sensor": { "sensor": {
"indoor_humidity_controlling_sensor": { "air_cleaning_status": {
"name": "Indoor humidity controlling sensor" "name": "Air cleaning status",
}, "state": {
"outdoor_humidity_controlling_sensor": { "idle": "[%key:common::state::idle%]",
"name": "Outdoor humidity controlling sensor" "off": "[%key:common::state::off%]",
}, "on": "[%key:common::state::on%]"
"indoor_temperature_controlling_sensor": { }
"name": "Indoor temperature controlling sensor"
},
"outdoor_temperature_controlling_sensor": {
"name": "Outdoor temperature controlling sensor"
}, },
"dehumidification_status": { "dehumidification_status": {
"name": "Dehumidification status", "name": "Dehumidification status",
"state": { "state": {
"idle": "[%key:common::state::idle%]", "idle": "[%key:common::state::idle%]",
"on": "[%key:common::state::on%]", "off": "[%key:common::state::off%]",
"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%]"
} }
}, },
"humidification_status": { "humidification_status": {
"name": "Humidification status", "name": "Humidification status",
"state": { "state": {
"idle": "[%key:common::state::idle%]", "idle": "[%key:common::state::idle%]",
"on": "[%key:common::state::on%]", "off": "[%key:common::state::off%]",
"off": "[%key:common::state::off%]" "on": "[%key:common::state::on%]"
} }
}, },
"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": { "ventilation_status": {
"name": "Ventilation status", "name": "Ventilation status",
"state": { "state": {
"idle": "[%key:common::state::idle%]", "idle": "[%key:common::state::idle%]",
"on": "[%key:common::state::on%]", "off": "[%key:common::state::off%]",
"off": "[%key:common::state::off%]" "on": "[%key:common::state::on%]"
}
},
"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,5 +1,11 @@
{ {
"config": { "config": {
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]"
},
"step": { "step": {
"user": { "user": {
"data": { "data": {
@@ -10,39 +16,29 @@
"port": "The integration will default to 8050, if not set, which should be suitable for most installs" "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": { "entity": {
"binary_sensor": { "binary_sensor": {
"off_grid_status": {
"name": "Off-grid status"
},
"dc_1_short_circuit_error_status": { "dc_1_short_circuit_error_status": {
"name": "DC 1 short circuit error status" "name": "DC 1 short circuit error status"
}, },
"dc_2_short_circuit_error_status": { "dc_2_short_circuit_error_status": {
"name": "DC 2 short circuit error status" "name": "DC 2 short circuit error status"
}, },
"off_grid_status": {
"name": "Off-grid status"
},
"output_fault_status": { "output_fault_status": {
"name": "Output fault status" "name": "Output fault status"
} }
}, },
"number": {
"max_output": {
"name": "Max output"
}
},
"sensor": { "sensor": {
"total_power": {
"name": "Total power"
},
"total_power_p1": {
"name": "Power of P1"
},
"total_power_p2": {
"name": "Power of P2"
},
"lifetime_production": { "lifetime_production": {
"name": "Total lifetime production" "name": "Total lifetime production"
}, },
@@ -60,11 +56,15 @@
}, },
"today_production_p2": { "today_production_p2": {
"name": "Production of today from P2" "name": "Production of today from P2"
} },
}, "total_power": {
"number": { "name": "Total power"
"max_output": { },
"name": "Max output" "total_power_p1": {
"name": "Power of P1"
},
"total_power_p2": {
"name": "Power of P2"
} }
}, },
"switch": { "switch": {

View File

@@ -13,9 +13,9 @@
"wi_fi_strength": { "wi_fi_strength": {
"default": "mdi:wifi", "default": "mdi:wifi",
"state": { "state": {
"high": "mdi:wifi-strength-4",
"low": "mdi:wifi-strength-1", "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": { "config": {
"step": { "abort": {
"user": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
"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": { "error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"unknown": "[%key:common::config_flow::error::unknown%]" "unknown": "[%key:common::config_flow::error::unknown%]"
}, },
"abort": { "step": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]" "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"
}
} }
}, },
"entity": { "entity": {
@@ -27,21 +27,21 @@
"salt_left_side_percentage": { "salt_left_side_percentage": {
"name": "Salt left side percentage" "name": "Salt left side percentage"
}, },
"salt_right_side_percentage": {
"name": "Salt right side percentage"
},
"salt_left_side_time_remaining": { "salt_left_side_time_remaining": {
"name": "Salt left side time remaining" "name": "Salt left side time remaining"
}, },
"salt_right_side_percentage": {
"name": "Salt right side percentage"
},
"salt_right_side_time_remaining": { "salt_right_side_time_remaining": {
"name": "Salt right side time remaining" "name": "Salt right side time remaining"
}, },
"wi_fi_strength": { "wi_fi_strength": {
"name": "Wi-Fi strength", "name": "Wi-Fi strength",
"state": { "state": {
"high": "[%key:common::state::high%]",
"low": "[%key:common::state::low%]", "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": { "entity": {
"sensor": { "sensor": {
"radiation_total": { "radiation_rate": {
"default": "mdi:radioactive" "default": "mdi:radioactive"
}, },
"radiation_rate": { "radiation_total": {
"default": "mdi:radioactive" "default": "mdi:radioactive"
}, },
"radon_concentration": { "radon_concentration": {

View File

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

View File

@@ -1,25 +1,25 @@
{ {
"config": { "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": { "abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "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.", "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.", "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." "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": { "entity": {
@@ -28,8 +28,8 @@
"state": { "state": {
"error": "[%key:common::state::error%]", "error": "[%key:common::state::error%]",
"green": "Green", "green": "Green",
"yellow": "Yellow", "red": "Red",
"red": "Red" "yellow": "Yellow"
} }
} }
} }

View File

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

View File

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

View File

@@ -15,8 +15,8 @@
"vad_sensitivity": { "vad_sensitivity": {
"name": "Finished speaking detection", "name": "Finished speaking detection",
"state": { "state": {
"default": "Default",
"aggressive": "Aggressive", "aggressive": "Aggressive",
"default": "Default",
"relaxed": "Relaxed" "relaxed": "Relaxed"
} }
} }
@@ -24,14 +24,14 @@
}, },
"issues": { "issues": {
"assist_in_progress_deprecated": { "assist_in_progress_deprecated": {
"title": "{integration_name} in progress binary sensors are deprecated",
"fix_flow": { "fix_flow": {
"step": { "step": {
"confirm_disable_entity": { "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." "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": { "announce": {
"service": "mdi:bullhorn" "service": "mdi:bullhorn"
}, },
"start_conversation": {
"service": "mdi:forum"
},
"ask_question": { "ask_question": {
"service": "mdi:microphone-question" "service": "mdi:microphone-question"
},
"start_conversation": {
"service": "mdi:forum"
} }
} }
} }

View File

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

View File

@@ -1,93 +1,12 @@
{ {
"title": "Assist satellite",
"entity_component": { "entity_component": {
"_": { "_": {
"name": "Assist satellite", "name": "Assist satellite",
"state": { "state": {
"idle": "[%key:common::state::idle%]", "idle": "[%key:common::state::idle%]",
"listening": "Listening", "listening": "Listening",
"responding": "Responding", "processing": "Processing",
"processing": "Processing" "responding": "Responding"
}
}
},
"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."
}
} }
} }
}, },
@@ -98,5 +17,86 @@
"sentences": "Sentences" "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,20 +1,23 @@
{ {
"entity": { "entity": {
"sensor": { "sensor": {
"cpu_core_usage": {
"default": "mdi:cpu-32-bit"
},
"cpu_usage": {
"default": "mdi:cpu-32-bit"
},
"devices_connected": { "devices_connected": {
"default": "mdi:router-network" "default": "mdi:router-network"
}, },
"download_speed": {
"default": "mdi:download-network"
},
"upload_speed": {
"default": "mdi:upload-network"
},
"download": { "download": {
"default": "mdi:download" "default": "mdi:download"
}, },
"upload": { "download_speed": {
"default": "mdi:upload" "default": "mdi:download-network"
},
"load_avg_15m": {
"default": "mdi:cpu-32-bit"
}, },
"load_avg_1m": { "load_avg_1m": {
"default": "mdi:cpu-32-bit" "default": "mdi:cpu-32-bit"
@@ -22,23 +25,20 @@
"load_avg_5m": { "load_avg_5m": {
"default": "mdi:cpu-32-bit" "default": "mdi:cpu-32-bit"
}, },
"load_avg_15m": { "memory_free": {
"default": "mdi:cpu-32-bit" "default": "mdi:memory"
},
"cpu_usage": {
"default": "mdi:cpu-32-bit"
},
"cpu_core_usage": {
"default": "mdi:cpu-32-bit"
}, },
"memory_usage": { "memory_usage": {
"default": "mdi:memory" "default": "mdi:memory"
}, },
"memory_free": {
"default": "mdi:memory"
},
"memory_used": { "memory_used": {
"default": "mdi:memory" "default": "mdi:memory"
},
"upload": {
"default": "mdi:upload"
},
"upload_speed": {
"default": "mdi:upload-network"
} }
} }
} }

View File

@@ -1,26 +1,8 @@
{ {
"config": { "config": {
"step": { "abort": {
"user": { "invalid_unique_id": "Impossible to determine a valid unique ID for the device",
"description": "Set required parameter to connect to your router", "no_unique_id": "A device without a valid unique ID is already configured. Configuration of multiple instances is not possible"
"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": { "error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
@@ -30,40 +12,66 @@
"ssh_not_file": "SSH key file not found", "ssh_not_file": "SSH key file not found",
"unknown": "[%key:common::config_flow::error::unknown%]" "unknown": "[%key:common::config_flow::error::unknown%]"
}, },
"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": {
"step": { "step": {
"init": { "legacy": {
"data": { "data": {
"consider_home": "Seconds to wait before considering a device away", "mode": "Router operating mode"
"track_unknown": "Track unknown / unnamed devices", },
"interface": "The interface that you want statistics from (e.g. eth0, eth1 etc)", "description": "Set required parameters to connect to your router"
"dnsmasq": "The location of the dnsmasq.leases file in the router", },
"require_ip": "Devices must have IP (for access point mode)" "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": { "entity": {
"sensor": { "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": { "devices_connected": {
"name": "Devices connected" "name": "Devices connected"
}, },
"download_speed": {
"name": "Download speed"
},
"upload_speed": {
"name": "Upload speed"
},
"download": { "download": {
"name": "Download" "name": "Download"
}, },
"upload": { "download_speed": {
"name": "Upload" "name": "Download speed"
},
"last_boot": {
"name": "Last boot"
},
"load_avg_15m": {
"name": "Average load (15 min)"
}, },
"load_avg_1m": { "load_avg_1m": {
"name": "Average load (1 min)" "name": "Average load (1 min)"
@@ -71,52 +79,44 @@
"load_avg_5m": { "load_avg_5m": {
"name": "Average load (5 min)" "name": "Average load (5 min)"
}, },
"load_avg_15m": { "memory_free": {
"name": "Average load (15 min)" "name": "Memory free"
},
"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": { "memory_usage": {
"name": "Memory usage" "name": "Memory usage"
}, },
"memory_free": {
"name": "Memory free"
},
"memory_used": { "memory_used": {
"name": "Memory used" "name": "Memory used"
}, },
"last_boot": { "upload": {
"name": "Last boot" "name": "Upload"
},
"upload_speed": {
"name": "Upload speed"
}, },
"uptime": { "uptime": {
"name": "Uptime" "name": "Uptime"
} }
} }
}, },
"options": {
"step": {
"init": {
"data": {
"consider_home": "Seconds to wait before considering a device away",
"dnsmasq": "The location of the dnsmasq.leases file in the router",
"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"
}
}
}
},
"selector": { "selector": {
"protocols": { "protocols": {
"options": { "options": {
"https": "HTTPS",
"http": "HTTP", "http": "HTTP",
"https": "HTTPS",
"ssh": "SSH", "ssh": "SSH",
"telnet": "Telnet" "telnet": "Telnet"
} }

View File

@@ -1,23 +1,23 @@
{ {
"config": { "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": { "step": {
"user": { "user": {
"description": "Connect to the device",
"data": { "data": {
"host": "[%key:common::config_flow::data::host%]", "host": "[%key:common::config_flow::data::host%]",
"port": "[%key:common::config_flow::data::port%]" "port": "[%key:common::config_flow::data::port%]"
}, },
"data_description": { "data_description": {
"host": "The hostname or IP address of the Atag device." "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,39 +1,33 @@
{ {
"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": { "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": { "step": {
"pick_implementation": { "pick_implementation": {
"title": "[%key:common::config_flow::title::oauth2_pick_implementation%]",
"data": { "data": {
"implementation": "[%key:common::config_flow::data::implementation%]" "implementation": "[%key:common::config_flow::data::implementation%]"
}, },
"data_description": { "data_description": {
"implementation": "[%key:common::config_flow::description::implementation%]" "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": { "entity": {
@@ -55,11 +49,6 @@
"name": "[%key:component::camera::title%]" "name": "[%key:component::camera::title%]"
} }
}, },
"sensor": {
"operator": {
"name": "Operator"
}
},
"event": { "event": {
"doorbell": { "doorbell": {
"state_attributes": { "state_attributes": {
@@ -79,6 +68,17 @@
} }
} }
} }
},
"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,28 +1,18 @@
{ {
"title": "NOAA Aurora Sensor",
"config": { "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": { "abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_service%]" "already_configured": "[%key:common::config_flow::abort::already_configured_service%]"
}, },
"error": { "error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"unknown": "[%key:common::config_flow::error::unknown%]" "unknown": "[%key:common::config_flow::error::unknown%]"
} },
},
"options": {
"step": { "step": {
"init": { "user": {
"data": { "data": {
"forecast_threshold": "Threshold (%)" "latitude": "[%key:common::config_flow::data::latitude%]",
"longitude": "[%key:common::config_flow::data::longitude%]",
"name": "[%key:common::config_flow::data::name%]"
} }
} }
} }
@@ -38,5 +28,15 @@
"name": "Visibility" "name": "Visibility"
} }
} }
} },
"options": {
"step": {
"init": {
"data": {
"forecast_threshold": "Threshold (%)"
}
}
}
},
"title": "NOAA Aurora Sensor"
} }

View File

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

View File

@@ -1,37 +1,34 @@
{ {
"config": { "config": {
"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)",
"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"
},
"abort": { "abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "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." "no_serial_ports": "No com ports found. The integration needs a valid RS485 device to communicate."
},
"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"
},
"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"
}
} }
}, },
"entity": { "entity": {
"sensor": { "sensor": {
"grid_voltage": { "alarm": {
"name": "Grid voltage" "name": "Alarm status"
}, },
"grid_current": { "grid_current": {
"name": "Grid current" "name": "Grid current"
}, },
"alarm": { "grid_voltage": {
"name": "Alarm status" "name": "Grid voltage"
},
"power_output": {
"name": "Power output"
}, },
"i_leak_dcdc": { "i_leak_dcdc": {
"name": "DC-DC leak current" "name": "DC-DC leak current"
@@ -39,11 +36,14 @@
"i_leak_inverter": { "i_leak_inverter": {
"name": "Inverter leak current" "name": "Inverter leak current"
}, },
"total_energy": { "power_output": {
"name": "Total energy" "name": "Power output"
}, },
"r_iso": { "r_iso": {
"name": "Isolation resistance" "name": "Isolation resistance"
},
"total_energy": {
"name": "Total energy"
} }
} }
} }

View File

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

View File

@@ -1,86 +1,86 @@
{ {
"config": { "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": { "abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]", "already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
"no_services_found": "No services were found for this account", "no_services_found": "No services were found for this account",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
} },
}, "error": {
"options": { "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": { "step": {
"init": { "reauth_confirm": {
"title": "[%key:component::aussie_broadband::config::step::service::title%]",
"data": { "data": {
"services": "[%key:component::aussie_broadband::config::step::service::data::services%]" "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%]"
} }
} }
},
"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": { "entity": {
"sensor": { "sensor": {
"billing_cycle_length": {
"name": "Billing cycle length"
},
"billing_cycle_remaining": {
"name": "Billing cycle remaining"
},
"data_used": { "data_used": {
"name": "Data used" "name": "Data used"
}, },
"downloaded": { "downloaded": {
"name": "Downloaded" "name": "Downloaded"
}, },
"uploaded": { "international_calls": {
"name": "Uploaded" "name": "International calls"
},
"national_calls": {
"name": "National calls"
}, },
"mobile_calls": { "mobile_calls": {
"name": "Mobile calls" "name": "Mobile calls"
}, },
"international_calls": { "national_calls": {
"name": "International calls" "name": "National calls"
},
"sms_sent": {
"name": "SMS sent"
},
"voicemail_calls": {
"name": "Voicemail calls"
}, },
"other_calls": { "other_calls": {
"name": "Other calls" "name": "Other calls"
}, },
"billing_cycle_length": { "sms_sent": {
"name": "Billing cycle length" "name": "SMS sent"
}, },
"billing_cycle_remaining": { "uploaded": {
"name": "Billing cycle remaining" "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%]"
} }
} }
} }

View File

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

View File

@@ -1,8 +1,25 @@
{ {
"config": { "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": { "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": { "user": {
"description": "Connect to your Autarco account, to get information about your sites.",
"data": { "data": {
"email": "[%key:common::config_flow::data::email%]", "email": "[%key:common::config_flow::data::email%]",
"password": "[%key:common::config_flow::data::password%]" "password": "[%key:common::config_flow::data::password%]"
@@ -10,71 +27,54 @@
"data_description": { "data_description": {
"email": "The email address of your Autarco account.", "email": "The email address of your Autarco account.",
"password": "The password 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%]"
}, },
"data_description": { "description": "Connect to your Autarco account, to get information about your sites."
"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": { "entity": {
"sensor": { "sensor": {
"flow_now": { "charged_month": {
"name": "Flow now" "name": "Charged month"
},
"state_of_charge": {
"name": "State of charge"
},
"discharged_today": {
"name": "Discharged today"
},
"discharged_month": {
"name": "Discharged month"
},
"discharged_total": {
"name": "Discharged total"
}, },
"charged_today": { "charged_today": {
"name": "Charged today" "name": "Charged today"
}, },
"charged_month": {
"name": "Charged month"
},
"charged_total": { "charged_total": {
"name": "Charged total" "name": "Charged total"
}, },
"power_production": { "discharged_month": {
"name": "Power production" "name": "Discharged month"
}, },
"energy_production_today": { "discharged_today": {
"name": "Energy production today" "name": "Discharged today"
},
"discharged_total": {
"name": "Discharged total"
}, },
"energy_production_month": { "energy_production_month": {
"name": "Energy production month" "name": "Energy production month"
}, },
"energy_production_today": {
"name": "Energy production today"
},
"energy_production_total": { "energy_production_total": {
"name": "Energy production total" "name": "Energy production total"
}, },
"flow_now": {
"name": "Flow now"
},
"out_ac_energy_total": {
"name": "Energy AC output total"
},
"out_ac_power": { "out_ac_power": {
"name": "Power AC output" "name": "Power AC output"
}, },
"out_ac_energy_total": { "power_production": {
"name": "Energy AC output total" "name": "Power production"
},
"state_of_charge": {
"name": "State of charge"
} }
} }
} }

View File

@@ -1,52 +1,52 @@
{ {
"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."
}
}
},
"exceptions": { "exceptions": {
"user_not_found": {
"message": "User not found"
},
"username_already_exists": { "username_already_exists": {
"message": "Username \"{username}\" already exists" "message": "Username \"{username}\" already exists"
}, },
"username_not_normalized": { "username_not_normalized": {
"message": "Username \"{new_username}\" is not normalized. Please make sure the username is lowercase and does not contain any whitespace." "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": { "issues": {
"homeassistant_provider_not_normalized_usernames": { "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.",
"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": {
"notify": {
"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"
},
"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"
} }
} }
} }

View File

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

View File

@@ -2,7 +2,6 @@
"common": { "common": {
"validation_failed_title": "Automation {name} failed to set up" "validation_failed_title": "Automation {name} failed to set up"
}, },
"title": "Automation",
"entity_component": { "entity_component": {
"_": { "_": {
"name": "[%key:component::automation::title%]", "name": "[%key:component::automation::title%]",
@@ -37,69 +36,70 @@
}, },
"issues": { "issues": {
"service_not_found": { "service_not_found": {
"title": "{name} uses an unknown action",
"fix_flow": { "fix_flow": {
"step": { "step": {
"confirm": { "confirm": {
"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.",
"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": "{name} uses an unknown action"
}, },
"validation_failed_actions": { "validation_failed_actions": {
"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.",
"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%]"
}, },
"validation_failed_blueprint": { "validation_failed_blueprint": {
"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.",
"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%]"
}, },
"validation_failed_conditions": { "validation_failed_conditions": {
"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.",
"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%]"
}, },
"validation_failed_schema": { "validation_failed_schema": {
"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.",
"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%]"
}, },
"validation_failed_triggers": { "validation_failed_triggers": {
"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.",
"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%]"
} }
}, },
"services": { "services": {
"turn_on": { "reload": {
"name": "[%key:common::action::turn_on%]", "description": "Reloads the automation configuration.",
"description": "Enables an automation." "name": "[%key:common::action::reload%]"
},
"turn_off": {
"name": "[%key:common::action::turn_off%]",
"description": "Disables an automation.",
"fields": {
"stop_actions": {
"name": "Stop actions",
"description": "Stops currently running actions."
}
}
}, },
"toggle": { "toggle": {
"name": "[%key:common::action::toggle%]", "description": "Toggles (enable / disable) an automation.",
"description": "Toggles (enable / disable) an automation." "name": "[%key:common::action::toggle%]"
}, },
"trigger": { "trigger": {
"name": "Trigger",
"description": "Triggers the actions of an automation.", "description": "Triggers the actions of an automation.",
"fields": { "fields": {
"skip_condition": { "skip_condition": {
"name": "Skip conditions", "description": "Defines whether or not the conditions will be skipped.",
"description": "Defines whether or not the conditions will be skipped." "name": "Skip conditions"
} }
} },
"name": "Trigger"
}, },
"reload": { "turn_off": {
"name": "[%key:common::action::reload%]", "description": "Disables an automation.",
"description": "Reloads the automation configuration." "fields": {
"stop_actions": {
"description": "Stops currently running actions.",
"name": "Stop actions"
}
},
"name": "[%key:common::action::turn_off%]"
},
"turn_on": {
"description": "Enables an automation.",
"name": "[%key:common::action::turn_on%]"
} }
} },
"title": "Automation"
} }

View File

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

View File

@@ -1,12 +1,29 @@
{ {
"config": { "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": { "step": {
"cloud": { "cloud": {
"description": "You must register for an Awair developer access token at: {url}",
"data": { "data": {
"access_token": "[%key:common::config_flow::data::access_token%]", "access_token": "[%key:common::config_flow::data::access_token%]",
"email": "[%key:common::config_flow::data::email%]" "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": { "local": {
"description": "Follow [these instructions]({url}) on how to enable the Awair Local API.\n\nSelect **Submit** when done." "description": "Follow [these instructions]({url}) on how to enable the Awair Local API.\n\nSelect **Submit** when done."
@@ -18,48 +35,31 @@
} }
}, },
"reauth_confirm": { "reauth_confirm": {
"description": "Please re-enter your Awair developer access token.",
"data": { "data": {
"access_token": "[%key:common::config_flow::data::access_token%]", "access_token": "[%key:common::config_flow::data::access_token%]",
"email": "[%key:common::config_flow::data::email%]" "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": { "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": { "menu_options": {
"cloud": "Connect via the cloud", "cloud": "Connect via the cloud",
"local": "Connect locally (preferred)" "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": { "entity": {
"sensor": { "sensor": {
"dew_point": {
"name": "Dew point"
},
"score": { "score": {
"name": "Score" "name": "Score"
}, },
"sound_level": { "sound_level": {
"name": "Sound level" "name": "Sound level"
},
"dew_point": {
"name": "Dew point"
} }
} }
} }

View File

@@ -1,21 +1,7 @@
{ {
"config": { "config": {
"step": { "abort": {
"user": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
"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": { "error": {
"cannot_connect": "[%key:component::aws_s3::exceptions::cannot_connect::message%]", "cannot_connect": "[%key:component::aws_s3::exceptions::cannot_connect::message%]",
@@ -23,8 +9,22 @@
"invalid_credentials": "[%key:component::aws_s3::exceptions::invalid_credentials::message%]", "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." "invalid_endpoint_url": "Invalid endpoint URL. Please make sure it's a valid AWS S3 endpoint URL."
}, },
"abort": { "step": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]" "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"
}
} }
}, },
"exceptions": { "exceptions": {

View File

@@ -37,28 +37,28 @@
], ],
"zeroconf": [ "zeroconf": [
{ {
"type": "_axis-video._tcp.local.",
"properties": { "properties": {
"macaddress": "00408c*" "macaddress": "00408c*"
} },
"type": "_axis-video._tcp.local."
}, },
{ {
"type": "_axis-video._tcp.local.",
"properties": { "properties": {
"macaddress": "accc8e*" "macaddress": "accc8e*"
} },
"type": "_axis-video._tcp.local."
}, },
{ {
"type": "_axis-video._tcp.local.",
"properties": { "properties": {
"macaddress": "b8a44f*" "macaddress": "b8a44f*"
} },
"type": "_axis-video._tcp.local."
}, },
{ {
"type": "_axis-video._tcp.local.",
"properties": { "properties": {
"macaddress": "e82725*" "macaddress": "e82725*"
} },
"type": "_axis-video._tcp.local."
} }
] ]
} }

View File

@@ -1,28 +1,5 @@
{ {
"config": { "config": {
"flow_title": "{name} ({host})",
"step": {
"user": {
"description": "Set up an Axis device",
"data": {
"host": "[%key:common::config_flow::data::host%]",
"username": "[%key:common::config_flow::data::username%]",
"password": "[%key:common::config_flow::data::password%]",
"port": "[%key:common::config_flow::data::port%]",
"protocol": "Protocol"
},
"data_description": {
"host": "The hostname or IP address of the Axis device.",
"username": "The user name you set up on your Axis device. It is recommended to create a user specifically for Home Assistant."
}
}
},
"error": {
"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%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]"
},
"abort": { "abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"link_local_address": "Link local addresses are not supported", "link_local_address": "Link local addresses are not supported",
@@ -30,6 +7,29 @@
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]",
"reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]", "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]",
"unique_id_mismatch": "The serial number of the device does not match the previous serial number" "unique_id_mismatch": "The serial number of the device does not match the previous serial number"
},
"error": {
"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%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]"
},
"flow_title": "{name} ({host})",
"step": {
"user": {
"data": {
"host": "[%key:common::config_flow::data::host%]",
"password": "[%key:common::config_flow::data::password%]",
"port": "[%key:common::config_flow::data::port%]",
"protocol": "Protocol",
"username": "[%key:common::config_flow::data::username%]"
},
"data_description": {
"host": "The hostname or IP address of the Axis device.",
"username": "The user name you set up on your Axis device. It is recommended to create a user specifically for Home Assistant."
},
"description": "Set up an Axis device"
}
} }
}, },
"options": { "options": {

View File

@@ -1,14 +1,20 @@
{ {
"config": { "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%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"step": { "step": {
"user": { "user": {
"title": "Set up Azure Data Explorer",
"description": "Enter connection details",
"data": { "data": {
"cluster_ingest_uri": "Cluster ingestion URI",
"authority_id": "Authority ID", "authority_id": "Authority ID",
"client_id": "Client ID", "client_id": "Client ID",
"client_secret": "Client secret", "client_secret": "Client secret",
"cluster_ingest_uri": "Cluster ingestion URI",
"database": "Database name", "database": "Database name",
"table": "Table name", "table": "Table name",
"use_queued_ingestion": "Use queued ingestion" "use_queued_ingestion": "Use queued ingestion"
@@ -16,16 +22,10 @@
"data_description": { "data_description": {
"cluster_ingest_uri": "Ingestion URI of the cluster", "cluster_ingest_uri": "Ingestion URI of the cluster",
"use_queued_ingestion": "Must be enabled when using ADX free cluster" "use_queued_ingestion": "Must be enabled when using ADX free cluster"
} },
"description": "Enter connection details",
"title": "Set up Azure Data Explorer"
} }
},
"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_device%]"
} }
} }
} }

View File

@@ -1,32 +1,32 @@
{ {
"config": { "config": {
"flow_title": "{project_url}", "abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
},
"error": { "error": {
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
"project_error": "Could not get project info." "project_error": "Could not get project info."
}, },
"flow_title": "{project_url}",
"step": { "step": {
"user": {
"data": {
"organization": "Organization",
"project": "Project",
"personal_access_token": "Personal Access Token (PAT)"
},
"description": "Set up an Azure DevOps instance to access your project. A Personal Access Token is only required for a private project.",
"title": "Add Azure DevOps project"
},
"reauth_confirm": { "reauth_confirm": {
"data": { "data": {
"personal_access_token": "[%key:component::azure_devops::config::step::user::data::personal_access_token%]" "personal_access_token": "[%key:component::azure_devops::config::step::user::data::personal_access_token%]"
}, },
"description": "Authentication failed for {project_url}. Please enter your current credentials.", "description": "Authentication failed for {project_url}. Please enter your current credentials.",
"title": "Reauthentication" "title": "Reauthentication"
},
"user": {
"data": {
"organization": "Organization",
"personal_access_token": "Personal Access Token (PAT)",
"project": "Project"
},
"description": "Set up an Azure DevOps instance to access your project. A Personal Access Token is only required for a private project.",
"title": "Add Azure DevOps project"
} }
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
} }
}, },
"entity": { "entity": {

View File

@@ -1,47 +1,47 @@
{ {
"config": { "config": {
"step": { "abort": {
"user": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]",
"title": "Set up Azure Event Hub", "cannot_connect": "Connecting with the credentials from the configuration.yaml failed, please remove from yaml and use the config flow.",
"data": { "unknown": "Connecting with the credentials from the configuration.yaml failed with an unknown error, please remove from yaml and use the config flow."
"event_hub_instance_name": "Event Hub instance name",
"use_connection_string": "Use connection string"
}
},
"conn_string": {
"title": "Connection string method",
"description": "Please enter the connection string for: {event_hub_instance_name}",
"data": {
"event_hub_connection_string": "Event Hub connection string"
}
},
"sas": {
"title": "SAS credentials method",
"description": "Please enter the SAS (shared access signature) credentials for: {event_hub_instance_name}",
"data": {
"event_hub_namespace": "Event Hub namespace",
"event_hub_sas_policy": "Event Hub SAS policy",
"event_hub_sas_key": "Event Hub SAS key"
}
}
}, },
"error": { "error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"unknown": "[%key:common::config_flow::error::unknown%]" "unknown": "[%key:common::config_flow::error::unknown%]"
}, },
"abort": { "step": {
"already_configured": "[%key:common::config_flow::abort::already_configured_service%]", "conn_string": {
"cannot_connect": "Connecting with the credentials from the configuration.yaml failed, please remove from yaml and use the config flow.", "data": {
"unknown": "Connecting with the credentials from the configuration.yaml failed with an unknown error, please remove from yaml and use the config flow." "event_hub_connection_string": "Event Hub connection string"
},
"description": "Please enter the connection string for: {event_hub_instance_name}",
"title": "Connection string method"
},
"sas": {
"data": {
"event_hub_namespace": "Event Hub namespace",
"event_hub_sas_key": "Event Hub SAS key",
"event_hub_sas_policy": "Event Hub SAS policy"
},
"description": "Please enter the SAS (shared access signature) credentials for: {event_hub_instance_name}",
"title": "SAS credentials method"
},
"user": {
"data": {
"event_hub_instance_name": "Event Hub instance name",
"use_connection_string": "Use connection string"
},
"title": "Set up Azure Event Hub"
}
} }
}, },
"options": { "options": {
"step": { "step": {
"init": { "init": {
"title": "Options for Azure Event Hub.",
"data": { "data": {
"send_interval": "Interval between sending batches to the hub." "send_interval": "Interval between sending batches to the hub."
} },
"title": "Options for Azure Event Hub."
} }
} }
} }

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